AtCoder 言語アップデート 2024-2025 での変更点をまとめました。
使用できる言語等の詳細は Language Test 202505 の ルールのページ と、使用できる言語とライブラリの一覧 を見てください。
各言語での書き方は、Language Test 202505 の すべての提出 から提出を見てください。すべての言語処理系で少なくとも1つは AC した提出があります。クラス名などが決められた名前である必要がある言語もありますので、提出されたコードを参考にしてください。
新規 / 処理系変更 / 削除
利用可能な言語処理系の数は、従来の 90 個から 116個に増えています。
新規追加される言語
たくさん
- APL (GNU APL 1.9)
- Assembly MIPS O32 ABI (GNU assembler 2.42)
- A言語 (interpreter af48a2a)
- BASIC (FreeBASIC 1.10.1)
- Befunge93 (TBC 1.0)
- C23 (Clang 21.1.0)
- C3 (c3c 0.7.5)
- cLay (cLay 20250308-1 (GCC 15.2.0))
- Clojure (Clojure AOT 1.12.2)
- Clojure (ClojureScript 1.12.42 (Clojure 1.12.2 Node.js 22.19.0))
- Eiffel (Gobo Eiffel 22.01)
- Eiffel (Liberty Eiffel 07829e3)
- Emojicode 1.0 beta 2 (emojicodec 1.0 beta 2)
- Fish (fish 4.0.2)
- Fortran2018 (Flang 20.1.7)
- FORTRAN77 (GCC 14.2.0)
- Gleam (Gleam 1.12.0 (OTP 28.0.2))
- Go 1.18 (gccgo 15.2.0)
- C++ IOI-Style(GNU++20) (GCC 14.2.0)
- ISLisp (Easy-ISLisp 5.43)
- JavaScript (Bun 1.2.21)
- Jule (jule 0.1.6)
- Kuin (kuincl v.2021.8.17)
- Lazy K (irori v1.0.0)
- Lean (lean v4.22.0)
- Nim (Nim 2.2.4)
- Piet (your-diary/piet_programming_language 3.0.0) (PPM image)
- Pony (ponyc 0.59.0)
- Ruby 3.3 (truffleruby 25.0.0)
- Scheme (ChezScheme 10.2.0)
- Tcl (tclsh 9.0.1)
- Terra (Terra 1.2.0)
- TeX (tex 3.141592653)
- TypeScript 5.9 (tsc 5.9.2 (Bun 1.2.21))
- Uiua (uiua 0.16.2)
- Vala (valac 0.56.18)
- Verilog 2012 (Icarus Verilog 12.0)
- Veryl (veryl 0.16.4)
- WebAssembly (wabt 1.0.34 + iwasm 2.4.1)
- Python (Codon 0.19.3)
- Fix (1.1.0-alpha.12)
- SQL (DuckDB 1.3.2)
処理系が変更される言語
- Brainfuck
削除される言語
バージョンなどが統一されて削除される言語
- C++1
- C++17(gcc)
- C++17(Clang)
- C++20(gcc)
- C++20(Clang)
- Cobol2
- Cobol(Fixed)
- Emacs Lisp3
- Emacs Lisp(Byte Compile)
- Emacs Lisp(No Compile)
提案する人がいなくて、削除される言語
- jq
- Nibbles
- Cython
- Raku
- Sed
- Vim
- Visual Basic
- Zsh
各言語の概要
言語 ID 順に言語処理系の概要を見ていきます。
ヘッダーの書式は
| ID | 新規 / 既存 | 言語名 | 処理系 |
です。処理系の部分には公式サイトなどへのリンクをつけました。リンクは、インストールされているバージョンのものがすぐに見つかったものはそのバージョンのものになっています。
公式サイトのマニュアルは最新版用のものしかない場合もありますので、参照する際は注意してください。
| 6001 | 既存 | ><> | ><> (fishr 0.1.0)|
何も変更ありません。
| 6002 | 既存 | Ada | Ada 2022 (GNAT 15.2.0)|
バージョンが上がりました。 ライブラリがいくつか追加されました。
| 6003 | 新規 | APL | APL (GNU APL 1.9)|
新規に追加されました。記号を用いたコードが特徴的な配列指向の言語です。
| 6004 | 新規 | Assembly MIPS | Assembly MIPS O32 ABI (GNU assembler 2.42)|
新規に追加されました。qemu で実行されます。
| 6005 | 既存 | Assembly x64 | Assembly x64 (NASM 2.16.03)|
バージョンが上がりました。
| 6006 | 既存 | AWK | AWK (GNU awk 5.2.1)|
バージョンが上がりました。
| 6007 | 新規 | A言語 | A言語 (interpreter af48a2a)|
新規に追加されました。短いコードでプログラムを書くことができるジョーク言語です。
| 6008 | 既存 | Bash | Bash (bash 5.3)|
バージョンが上がりました。
| 6009 | 新規 | BASIC | BASIC (FreeBASIC 1.10.1)|
新規に追加されました。C 並に速い BASIC の処理系です。
| 6010 | 既存 | bc | bc (GNU bc 1.08.2)|
バージョンが上がりました。
| 6011 | 新規 | Befunge | Befunge93 (TBC 1.0)|
新規に追加されました。2次元で書く Esolang です。
| 6012 | 処理系変更 | Brainfuck | Brainfuck (Tritium 1.2.73)|
処理系が変更になりました。JIT コンパイルで高速(従来比10倍)な処理系です。
既存の処理系とは動作が異なる可能性があるので注意してください。
| 6013 | 新規 | C | C23 (Clang 21.1.0)|
新規に追加されました。前回の言語アップデートで削除されていたのが復活しました。
| 6014 | 既存 | C | C23 (GCC 14.2.0)|
バージョンが上がりました。
| 6015 | 既存 | C# | C# 13.0 (.NET 9.0.8)|
バージョンが上がりました。PublishReadyToRun
が false
になり、実行速度が少し速くなることが期待されます。プロジェクトのリストア方法が修正され、WJ の短縮が期待されます。
| 6016 | 既存 | C# | C# 13.0 (.NET Native AOT 9.0.8)|
バージョンが上がりました。プロジェクトのリストア方法が修正され、WJ の短縮が期待されます。
| 6017 | 既存 | C++ | C++23 (GCC 15.2.0)|
バージョンが上がりました。 ライブラリがいくつか追加されました。コンパイルオプションが変更されました。
詳細は 【非公式】[C++] AtCoder ジャッジアップデート (2024–2025) についてを参照してください。4
| 6018 | 新規 | C3 | C3 (c3c 0.7.5)|
新規に追加されました。C 言語のような文法で、C 言語の進化版言語です。C ABI と完全互換で、C の関数を簡単に呼び出すことができます。
公式サイトのドキュメントは最新版用なので、0.7.5 用のマニュアルは github のものを直接参照してください。
| 6019 | 既存 | Carp | Carp(Carp 0.5.5)|
何も変更ありません。
| 6020 | 新規 | cLay | cLay (cLay 20250308-1 (GCC 15.2.0))|
新規に追加されました。C++ とある程度互換性がある競技プログラミング用の言語です。競技プログラミングで使用されるアルゴリズムが組み込まれていて、簡潔に書くことができます。C++ 用のライブラリもインストールされていますが、C++ との互換性の問題で、すべてのライブラリが使えるわけではありません。
| 6021 | 既存 | Clojure | Clojure (babashka 1.12.208)|
バージョンが上がりました。
| 6022 | 既存 | Clojure | Clojure (clojure 1.12.2)|
バージョンが上がりました。ac-library-java が追加されました。
| 6023 | 新規 | Clojure | Clojure (Clojure AOT 1.12.2)|
新規に追加されました。AOT で起動時間が短縮されます。 ac-library-java も使えます。
| 6024 | 欠番 | Clojure | コンパイル時間超過のため取り下げ Clojure (Clojure Native 1.12.1+23.0.2)|
欠番です。
| 6025 | 新規 | Clojure | Clojure (ClojureScript 1.12.42 (Clojure 1.12.2 Node.js 22.19.0))|
新規に追加されました。Node.js で実行される Clojure です。起動時間が短縮されます。ac-library-js も使えます。
| 6026 | 既存 | COBOL | COBOL (Free) (GnuCOBOL 3.2)|
バージョンが上がりました。
| 6027 | 既存 | Common Lisp | Common Lisp (SBCL 2.5.8)|
バージョンが上がりました。ライブラリがいくつか追加されました。control stack の大きさが 256MB に増えました。
| 6028 | 既存 | Crystal | Crystal (Crystal 1.17.0)|
バージョンが上がりました。ライブラリがいくつか追加されました。
| 6029 | 既存 | Cyber | Cyber (Cyber v0.3)|
バージョンが上がりました。
公式サイトのドキュメントは master branch 用なので、0.3 用のマニュアルは github のものを直接参照してください。
| 6030 | 既存 | D | D (DMD 2.111.0)|
バージョンが上がりました。
| 6031 | 既存 | D | D (GDC 15.2)|
バージョンが上がりました。
| 6032 | 既存 | D | D (LDC 1.41.0)|
バージョンが上がりました。
| 6033 | 既存 | Dart | Dart (Dart 3.9.2)|
バージョンが上がりました。 ライブラリがたくさん追加されました。
| 6034 | 既存 | dc | dc 1.5.2 (GNU bc 1.08.2)|
バージョンが上がりました。
| 6035 | 既存 | ECLiPSe | ECLiPSe (ECLiPSe 7.1_13)|
コンパイルエラーを検出できるようになりました。
| 6036 | 新規 | Eiffel | Eiffel (Gobo Eiffel 22.01)|
新規に追加されました。オブジェクト指向の本で有名な言語です。
| 6037 | 新規 | Eiffel | Eiffel (Liberty Eiffel 07829e3)|
新規に追加されました。オブジェクト指向の本で有名な言語です。
| 6038 | 既存 | Elixir | Elixir (Elixir 1.18.4 (OTP 28.0.2))|
バージョンが上がりました。 ライブラリがいくつか追加されました。 実行方法が変更されて、起動時間が短くなりました。
| 6039 | 既存 | Emacs Lisp | Emacs Lisp(Native Compile)(GNU Emacs 29.4)|
バージョンが上がりました。
| 6040 | 新規 | Emojicode | Emojicode 1.0 beta 2 (emojicodec 1.0 beta 2)|
新規に追加されました。絵文字で書かれる言語です。
| 6041 | 既存 | Erlang | Erlang (Erlang 28.0.2)|
バージョンが上がりました。
| 6042 | 既存 | F# | F# 9.0 (.NET 9.0.8)|
バージョンが上がりました。ライブラリが追加されたり削除されたりしています。PublishReadyToRun
が false
になり、実行速度が少し速くなることが期待されます。プロジェクトのリストア方法が修正され、WJ の短縮が期待されます。
| 6043 | 既存 | Factor | Factor (Factor 0.100)|
バージョンが上がりました。スタックの大きさを100MBずつに設定しました。解ける問題が増えることが期待されます。
| 6044 | 新規 | Fish | Fish (fish 4.0.2)|
新規に追加されました。他のシェルより速いかも。
公式サイトのドキュメントは最新版用なので、4.0.2 用のマニュアルは github のものを直接参照してください。
| 6045 | 既存 | Forth | Forth (gforth 0.7.3)|
スタックの大きさを100MBずつに設定しました。解ける問題が増えることが期待されます。
| 6046 | 新規 | Fortran | Fortran2018 (Flang 20.1.7)|
新規に追加されました。ac-library-fortran も使えます。
| 6047 | 既存 | Fortran | Fortran2023 (GCC 14.2.0)|
バージョンが上がりました。ac-library-fortran が追加されました。
| 6048 | 新規 | FORTRAN77 | FORTRAN77 (GCC 14.2.0)|
新規に追加されました。 stdlib が使えます。
| 6049 | 新規 | Gleam | Gleam (Gleam 1.12.0 (OTP 28.0.2))|
新規に追加されました。 Erlang VM 上で動く静的型付けの関数型言語です。
| 6050 | 新規 | Go | Go 1.18 (gccgo 15.2.0)|
新規に追加されました。Go 1.18 ですが、generics は使えません。ac-library-go などのライブラリが利用できます。
| 6051 | 既存 | Go | Go (go 1.25.1)|
バージョンが上がりました。 ac-library-go などのライブラリが追加されました。
| 6052 | 既存 | Haskell | Haskell (GHC 9.8.4)|
バージョンが上がりました。 ac-library-hs などのライブラリが追加されました。詳細はHaskeller のための AtCoder 言語アップデート 2025 をご覧ください。
| 6053 | 既存 | Haxe | Haxe/JVM 4.3.7 (hxjava 4.2.0)|
バージョンが上がりました。 競プロ用のライブラリである wronganswer が追加されました。
| 6054 | 新規 | C++ | C++ IOI-Style(GNU++20) (GCC 14.2.0)|
新規に追加されました。 ライブラリが何も入っていない版です。
| 6055 | 新規 | ISLisp | ISLisp (Easy-ISLisp 5.43)|
新規に追加されました。ISO/IEC で標準化された Lisp 方言の処理系です。
| 6056 | 既存 | Java | Java24 (OpenJDK 24.0.2)|
バージョンが上がりました。ac-library-java などのライブラリが追加されました。
| 6057 | 新規 | JavaScript | JavaScript (Bun 1.2.21)|
新規に追加されました。 JavaScriptCore を使用している処理系です。ac-library-js などのライブラリが利用できます。
スタックの大きさを変更できず小さいままなので、再帰関数を使う際には注意が必要です。V8 と違って、末尾呼び出し最適化がサポートされているようです。
| 6058 | 既存 | JavaScript | JavaScript (Deno 2.4.5)|
バージョンが上がりました。 ac-library-js などのライブラリが追加されました。
| 6059 | 既存 | JavaScript | JavaScript (Node.js 22.19.0)|
バージョンが上がりました。 ac-library-js などのライブラリが追加されました。
| 6060 | 新規 | Jule | Jule (jule 0.1.6)|
新規に追加されました。Rust っぽい Go みたいな言語です。 C++ のライブラリをそのまま利用できます。 ac-library などの C++ 用のライブラリがインストールされています。
公式サイトのドキュメントは master branch 用なので、0.1.6 用のマニュアルは github のものを直接参照してください。
| 6061 | 既存 | Koka | Koka (koka v3.2.2)|
バージョンが上がりました。 std/core をあらかじめコンパイルしておくことで、WJ が短くなることが期待されます。
| 6062 | 既存 | Kotlin | Kotlin (Kotlin/JVM 2.2.10)|
バージョンが上がりました。 ac-library-java などのライブラリが追加されました。
| 6063 | 新規 | Kuin | Kuin (kuincl v.2021.8.17)|
新規に追加されました。
この記事が書かれた時点では、公式サイトの情報がすべて消えてしまっています。
マニュアルもありませんので、yukicoder の提出一覧で探すか、github にある Kuin のソースコード を読むなどして頑張ってください。
| 6064 | 新規 | Lazy K | Lazy K (irori v1.0.0)|
新規に追加されました。 関数型言語な Esolang です。
| 6065 | 新規 | Lean | Lean (lean v4.22.0)|
新規に追加されました。 定理証明ができるプログラミング言語処理系です。 mathlib などのライブラリも利用できます。 詳細はAtCoderでLeanを試す (1) を参照してください。
公式サイトのドキュメントは最新版用なので、4.22.0 用のマニュアルは github のものを直接参照してください。
| 6066 | 既存 | LLVM IR | LLVM IR (Clang 21.1.0)|
バージョンが上がりました。
| 6067 | 既存 | Lua | Lua (Lua 5.4.7)|
バージョンが上がりました。
| 6068 | 既存 | Lua | Lua (LuaJIT 2.1.1703358377)|
バージョンが上がりました。
| 6069 | 既存 | Mercury | Mercury (Mercury 22.01.8)|
バージョンが上がりました。
| 6070 | 欠番 | Mojo | ライセンスの問題で却下 |
欠番です。 残念ながら、ライセンスの問題で却下されてしまいました。
| 6071 | 既存 | Nim | Nim (Nim 1.6.20)|
バージョンが上がりました。 ライブラリがいくつか追加されました。gmp が使えない問題も修正されています。
| 6072 | 新規 | Nim | Nim (Nim 2.2.4)|
新規に追加されました。互換性の問題で、Nim 1.x のコードがそのままでは動かない場合もあるので、注意してください。
| 6073 | 既存 | OCaml | OCaml (ocamlopt 5.3.0)|
バージョンが上がりました。 ライブラリがいくつか追加されました。
| 6074 | 既存 | Octave | Octave (GNU Octave 10.2.0)|
バージョンが上がりました。
| 6075 | 既存 | Pascal | Pascal (fpc 3.2.2)|
コンパイルエラー時のメッセージからバナー表示が取り除かれて見やすくなりました。
| 6076 | 既存 | Perl | Perl (perl 5.38.2)|
バージョンが上がりました。
| 6077 | 既存 | PHP | PHP (PHP 8.4.12)|
バージョンが上がりました。JIT の方式が tracing
になりました。
| 6078 | 新規 | Piet | Piet (your-diary/piet_programming_language 3.0.0) (PPM image)|
新規に追加されました。画像でコードを書く Esolang です。PPM 形式で提出することでテキストとして画像を扱うことができます。
| 6079 | 新規 | Pony | Pony (ponyc 0.59.0)|
新規に追加されました。 オブジェクト指向・アクターモデル採用の言語です。
| 6080 | 既存 | PowerShell | PowerShell (PowerShell 7.5.2)|
バージョンが上がりました。
| 6081 | 既存 | Prolog | Prolog (SWI-Prolog 9.2.9)|
バージョンが上がりました。
| 6082 | 既存 | Python | Python (CPython 3.13.7)|
バージョンが上がりました。acl-cpp-python などのライブラリが追加されました。
| 6083 | 既存 | Python | Python (PyPy 3.11-v7.3.20)|
バージョンが上がりました。acl-cpp-python が追加されました。
実行速度に関する得手不得手が現行のバージョンとは違っているようですので、注意してください。
| 6084 | 既存 | R | R (GNU R 4.5.0)|
バージョンが上がりました。 ライブラリがいくつか追加されました。
| 6085 | 既存 | ReasonML | ReasonML (reson 3.16.0)|
バージョンが上がりました。
| 6086 | 新規 | Ruby | Ruby 3.3 (truffleruby 25.0.0)|
新規に追加されました。ruby 3.4.5
で利用できるライブラリの中で truffleruby
でもインストールできるものだけ追加されました。
| 6087 | 既存 | Ruby | Ruby 3.4 (ruby 3.4.5)|
バージョンが上がりました。 ライブラリがたくさん追加されました。Python と同様にコンパイル時に ONLINE_JUDGE
を引数にして空実行されるようになり、コンパイル時計算等ができるようになりました。
| 6088 | 既存 | Rust | Rust (rustc 1.89.0)|
バージョンが上がりました。ライブラリがいくつか追加されました。
| 6089 | 既存 | SageMath | SageMath (SageMath 10.7)|
バージョンが上がりました。
| 6090 | 既存 | Scala | Scala (Dotty 3.7.2)|
バージョンが上がりました。 ac-library-scala が追加されました。
| 6091 | 既存 | Scala | Scala 3.7.2 (Scala Native 0.5.8)|
バージョンが上がりました。 ac-library-scala
| 6092 | 新規 | Scheme | Scheme (ChezScheme 10.2.0)|
新規に追加されました。 速い Scheme の処理系です。SRFI がライブラリとして利用できます。
| 6093 | 既存 | Scheme | Scheme (Gauche 0.9.15)|
バージョンが上がりました。
| 6094 | 既存 | Seed7 | Seed7 (Seed7 3.5.0)|
バージョンが上がりました。
| 6095 | 既存 | Swift | Swift 6.2|
バージョンが上がりました。 swift-ac-library などのライブラリが追加されました。
| 6096 | 新規 | Tcl | Tcl (tclsh 9.0.1)|
新規に追加されました。 27年ぶりのメジャーアップデートです。
| 6097 | 新規 | Terra | Terra (Terra 1.2.0)|
新規に追加されました。 Lua と C が合体したような言語です。C 並に高速です。
| 6098 | 新規 | TeX | TeX (tex 3.141592653)|
新規に追加されました。 文書作成用の言語ですが、問題を解くことができます。
| 6099 | 既存 | Text | Text (cat 9.4)|
バージョンが上がりました。
| 6100 | 既存 | TypeScript | TypeScript 5.8 (Deno 2.4.5)|
バージョンが上がりました。 ac-library-js などのライブラリが追加されました。
| 6101 | 新規 | TypeScript | TypeScript 5.9 (tsc 5.9.2 (Bun 1.2.21))|
新規に追加されました。 JavaScriptCore を使用している処理系です。ac-library-js などのライブラリが利用できます。
スタックの大きさを変更できず小さいままなので、再帰関数を使う際には注意が必要です。V8 と違って、末尾呼び出し最適化がサポートされているようです。
| 6102 | 既存 | TypeScript | TypeScript 5.9 (tsc 5.9.2 (Node.js 22.19.0))|
バージョンが上がりました。 ac-library-js などのライブラリが追加されました。
| 6103 | 新規 | Uiua | Uiua (uiua 0.16.2)|
新規に追加されました。 暗黙的なスタック型の配列プログラミング言語です。
| 6104 | 既存 | Unison | Unison (Unison 0.5.47)|
バージョンが上がりました。
| 6105 | 既存 | V | V (0.4.10)|
バージョンが上がりました。
| 6106 | 新規 | Vala | Vala (valac 0.56.18)|
新規に追加されました。 C# のような文法で、GNOME の開発に使われている言語です。
| 6107 | 新規 | Verilog | Verilog 2012 (Icarus Verilog 12.0)|
新規に追加されました。 ハードウェア記述言語ですが、問題を解くことができます。
| 6108 | 新規 | Veryl | Veryl (veryl 0.16.4)|
新規に追加されました。 ハードウェア記述言語ですが、問題を解くことができます。
公式サイトのドキュメントは最新版用なので、0.16.4 用のマニュアルは github のものを直接参照してください。
| 6109 | 新規 | WebAssembly | WebAssembly (wabt 1.0.34 + iwasm 2.4.1)|
新規に追加されました。テキスト形式の WebAssembly で提出します。
| 6110 | 既存 | Whitespace | Whitespace (whitespacers 1.3.0)|
バージョンが上がりました。 いくつかバグが直っているようです。
| 6111 | 既存 | Zig | Zig (Zig 0.15.1)|
バージョンが上がりました。ac-library-zig などのライブラリが追加されました。 ziter は Zig 0.15 に対応していないので削除されました。
| 6112 | 既存 | なでしこ | なでしこ (cnako3 3.7.8 (Node.js 22.19.0))|
バージョンが上がりました。
公式サイトのドキュメントは最新版用なので、3.7.8 用のマニュアルは github のものを直接参照してください。
| 6113 | 既存 | プロデル | プロデル (mono版プロデル 2.0.1353)|
バージョンが上がりました。
| 6114 | 既存 | Julia | Julia (Julia 1.11.6)|
バージョンが上がりました。
| 6115 | 新規 | Python | Python (Codon 0.19.3)|
新規に追加されました。 Python のコードをネイティブなマシンコードにコンパイルすることにより、CPython の 10 倍から 100 倍の実行速度になります。 CPython で動くコードでもそのまま動かないことがあります。 ライブラリは CPython でインストールされているものと同じものがインストールされています。
詳細は 【Python高速化】AtCoderでCodonが使えるようになるぞー!をご覧ください。
公式サイトのドキュメントは最新版用なので、0.19.3 用のマニュアルは github のものを直接参照してください。
| 6116 | 既存 | C++ | C++23 (Clang 21.1.0)|
バージョンが上がりました。 ライブラリがいくつか追加されました。コンパイルオプションが変更されました。
詳細は 【非公式】[C++] AtCoder ジャッジアップデート (2024–2025) についてを参照してください。5
| 6117 | 新規 | Fix | Fix (1.1.0-alpha.12)|
新規に追加されました。 Rust っぽい Haskell のような純粋関数型言語です。競技プログラミング用の cp-library などのライブラリが利用できます。
| 6118 | 新規 | SQL | SQL (DuckDB 1.3.2)|
新規に追加されました。 標準入力からの読み込みができる処理系です。