4
2

More than 3 years have passed since last update.

AtCoder 新ジャッジシステム(主にKotlin)

Last updated at Posted at 2020-04-07

AtCoderの新環境

先日、AtCoder社より、下記のツイートがありました。

 
そこで、現/新の「コードテスト」ページで選択できる言語を比較してみました。1 2

サポート言語(バージョン)

バージョアップとともに言語自体の追加もなされたようです。知らない言語も多くあります。

# 現環境 新環境
1 Ada2012 (GNAT 9.2.1)
2 Awk (mawk 1.3.3) Awk (GNU Awk 4.1.4)
3 Bash (GNU bash v4.3.11) Bash (5.0.11)
4 bc (1.07.1)
5 Brainfuck (bf 20041219) Brainfuck (bf 20041219)
6 C (Clang 3.8.0) C (Clang 10.0.0)
7 C (GCC 5.4.1) C (GCC 9.2.1)
8 C# (.NET Core 3.1.201)
9 C# (Mono-csc 3.5.0)
10 C# (Mono 4.6.2.0) C# (Mono-mcs 6.8.0.105)
11 C++ (Clang 3.8.0) C++ (Clang 10.0.0)
12 C++ (GCC 5.4.1) C++ (GCC 9.2.1)
13 C++14 (Clang 3.8.0)
14 C++14 (GCC 5.4.1)
15 Ceylon (1.2.1)
16 Clojure (1.8.0) Clojure (1.10.1.536)
17 COBOL - Fixed (OpenCOBOL 1.1.0) COBOL - Fixed (OpenCOBOL 1.1.0)
18 COBOL - Free (OpenCOBOL 1.1.0) COBOL - Free (OpenCOBOL 1.1.0)
19 Common Lisp (SBCL 1.1.14) Common Lisp (SBCL 2.0.3)
20 Crystal (0.20.5) Crystal (0.33.0)
21 Cython (0.29.16)
22 D (DMD64 v2.070.1) D (DMD 2.091.0)
23 D (GDC 4.9.4) D (GDC 9.2.1)
24 D (LDC 0.17.0) D (LDC 1.20.1)
25 Dart (2.7.2)
26 Dash (0.5.8)
27 dc (1.4.1)
28 Elixir (1.10.2)
29 Erlang (22.3)
30 F# (.NET Core 3.1.201)
31 F# (Mono 4.0) F# (Mono 10.2.3)
32 Forth (gforth 0.7.3)
33 Fortran (gfortran v4.8.4) Fortran(GNU Fortran 9.2.1)
34 Go (1.6) Go (1.14.1)
35 Haskell (GHC 7.10.3) Haskell (GHC 8.8.3)
36 Haxe (4.0.3); Java
37 Haxe (4.0.3); js
38 Java7 (OpenJDK 1.7.0)
39 Java8 (OpenJDK 1.8.0) Java (OpenJDK 1.8.0)
40 Java (OpenJDK 11.0.6)
41 JavaScript (node.js v5.12) JavaScript (Node.js 12.16.1)
42 Julia (0.5.0) Julia (1.4.0)
43 Kotlin (1.0.0) Kotlin (1.3.71)
44 Lua (5.3.2) Lua (Lua 5.3.5)
45 LuaJIT (2.0.4) Lua (LuaJIT 2.1.0)
46 MoonScript (0.5.0)
47 Nim (0.13.0) Nim (1.0.6)
48 Objective-C (Clang3.8.0) Objective-C (Clang 10.0.0)
49 Objective-C (GCC 5.3.0)
50 OCaml (4.02.3) OCaml (4.10.0)
51 Octave (4.0.2) Octave (5.2.0)
52 Pascal (FPC 2.6.2) Pascal (FPC 3.0.4)
53 Perl (v5.18.2) Perl (5.26.1)
54 Perl6 (rakudo-star 2016.01)
55 PHP (5.6.30)
56 PHP7 (7.0.15) PHP (7.4.4)
57 Prolog (SWI-Prolog 8.0.3)
58 PyPy2 (5.6.0) PyPy2 (7.3.0)
59 PyPy3 (2.4.0) PyPy3 (7.3.0)
60 Python2 (2.7.6)
61 Python3 (3.4.3) Python (3.8.2)
62 Racket (7.6)
63 Raku (Rakudo 2020.02.1)
64 Ruby (2.3.3) Ruby (2.7.1)
65 Rust (1.15.1) Rust (1.42.0)
66 Scala (2.11.7) Scala (2.13.1)
67 Scheme (Gauche 0.9.3.3) Scheme (Gauche 0.9.9)
68 Sed (GNU sed 4.2.2) Sed (4.4)
69 Standard ML (MLton 20100608) Standard ML (MLton 20130715)
70 Swift (swift-2.2-RELEASE) Swift (5.2.1)
71 Text (cat) Text (cat 8.28)
72 TypeScript (2.1.6) TypeScript (3.8)
73 Unlambda (0.1.3) Unlambda (2.0.0)
74 Vim (8.2.0460)
75 Visual Basic (Mono 4.0.1) Visual Basic (.NET Core 3.1.101)
76 Zsh (5.4.2)

Kotlinの環境

私がメインで使用しているKotlinのバージョンも1.0.0から1.3.71にアップされるようです。
そこで、以下のコードを現/新の「コードテスト」ページで実行させ、実行環境を取得しました。1 2 3

fun main(arg: Array<String>) {
    var n = 0
    for ((k, v) in System.getProperties()) {
        n += 1
        if (n > 0) println("$n\t$k\t$v")
        //変数nを判定するのは、一回の実行で出力できる標準出力の出力量に制限があるため
    }
}

しかし、Kotlin自体のバージョンを実行環境から確認することはできませんでした。

# Key Kotlin 1.0.0 Kotlin 1.3.71
1 awt.toolkit sun.awt.X11.XToolkit sun.awt.X11.XToolkit
2 file.encoding UTF-8 UTF-8
3 file.encoding.pkg sun.io
4 file.separator / /
5 java.awt.graphicsenv sun.awt.X11GraphicsEnvironment sun.awt.X11GraphicsEnvironment
6 java.awt.printerjob sun.print.PSPrinterJob sun.print.PSPrinterJob
7 java.class.path /opt/kotlinc/lib/kotlin-runner.jar ./Main.jar
8 java.class.version 51 55
9 java.endorsed.dirs /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/endorsed
10 java.ext.dirs /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext
11 java.home /usr/lib/jvm/java-7-openjdk-amd64/jre /usr/lib/jvm/java-11-openjdk-amd64
12 java.io.tmpdir /tmp /tmp
13 java.library.path /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib /usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
14 java.runtime.name OpenJDK Runtime Environment OpenJDK Runtime Environment
15 java.runtime.version 1.7.0_121-b00 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
16 java.specification.name Java Platform API Specification Java Platform API Specification
17 java.specification.vendor Oracle Corporation Oracle Corporation
18 java.specification.version 1.7 11
19 java.vendor Oracle Corporation Ubuntu
20 java.vendor.url http://java.oracle.com/ https://ubuntu.com/
21 java.vendor.url.bug http://bugreport.sun.com/bugreport/ https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
22 java.version 1.7.0_121 11.0.6
23 java.version.date 2020/1/14
24 java.vm.compressedOopsMode 32-bit
25 java.vm.info mixed mode mixed mode, sharing
26 java.vm.name OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
27 java.vm.specification.name Java Virtual Machine Specification Java Virtual Machine Specification
28 java.vm.specification.vendor Oracle Corporation Oracle Corporation
29 java.vm.specification.version 1.7 11
30 java.vm.vendor Oracle Corporation Ubuntu
31 java.vm.version 24.121-b00 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
32 jdk.debug release
33 kotlin.home /opt/kotlinc
34 line.separator \n \n
35 os.arch amd64 amd64
36 os.name Linux Linux
37 os.version 3.13.0-108-generic 4.15.0-1063-aws
38 path.separator : :
39 sun.arch.data.model 64 64
40 sun.boot.class.path (長いので省略)
41 sun.boot.library.path /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64 /usr/lib/jvm/java-11-openjdk-amd64/lib
42 sun.cpu.endian little little
43 sun.cpu.isalist
44 sun.io.unicode.encoding UnicodeLittle UnicodeLittle
45 sun.java.command org.jetbrains.kotlin.runner.Main -classpath ./Main.jar MainKt MainKt -Xss256m
46 sun.java.launcher SUN_STANDARD SUN_STANDARD
47 sun.jnu.encoding UTF-8 UTF-8
48 sun.management.compiler HotSpot 64-Bit Tiered Compilers HotSpot 64-Bit Tiered Compilers
49 sun.os.patch.level unknown unknown
50 user.country US US
51 user.dir /imojudge /imojudge/sandbox
52 user.home /home/contestant /home/contestant
53 user.language en en
54 user.name contestant contestant
55 user.timezone

終わりに

Javaのバージョンが1.7.0から11.0.6にアップされ、Java11の新機能を使うことができるのか楽しみです。

また、Swift2.2から5.2.1にアップされるようです。もし4.1以上に上がったらKotlinから乗り換えようかと考えていた時もありましたので、こちらも楽しみです。

何かの参考になれば幸いです。以上

2020.4.13追記

予告されていた通り昨日(2020.4.12)のABC162から新環境に変わりました。そこで自分のKotlin(及びJava)の環境も新しくしました。

$ kotlin -version
Kotlin version 1.3.71-release-431 (JRE 11.0.6+10)

$ kotlinc -version
info: kotlinc-jvm 1.3.71 (JRE 11.0.6+10)

$ java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)


  1. 現環境の「コードテスト」ページはこちらです。 

  2. 新環境の「コードテスト」ページはこちらです。 

  3. プログラム実行時に得られる並びはこの表の並びとは異なります。表を見易くするために、Keyでソートしました。 

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2