Language Test

Language Test

Welcome to Language Test!

コンテストについて

このコンテストは、言語のアップデートテスト用コンテストです

コンテストの流れ

コンテストの流れは、以下のようになります。
  1. 問題ボタンから好きな問題を1問開き、解き方を考えます。
  2. 解き方が思いついたら、ソースコードを書きます。思いつかない場合は、他の問題を見ても問題ありません。
  3. 正しいソースコードが書けたと思ったら、解答ボタンを選択し、問題及び言語を選択し、ソースコードを貼り付け、提出します。
  4. 解答ボタンより、自分の解答を確認すると、ソースコードに対するジャッジ結果が表示されます。ACと表示されれば正解、それ以外は不正解となります。なお、WJと表示されている場合は、ジャッジ待ちの状態ですので、定期的に更新ボタンを押しながら、暫くお待ちください。
  5. 正解だった場合は、次の問題へ挑戦しましょう。不正解だった場合は、また同じ問題に挑戦しても、別の問題を解いてみても構いません。
  6. コンテストが終了すると、結果に応じて、順位表にて自分の順位が確認閲覧出来ます。なお、コンテスト中でも、途中経過を確認することは可能です。

メニューについて

なお、上メニューバーの各ボタンの機能は、以下の通りです。
  • トップ: 現在閲覧中のページです。
  • 問題: コンテストの問題の閲覧ができます。
  • 提出: コンテストの問題に対する、解答ソースコードを提出することが出来ます。
  • 質問: コンテスト全体、および各問題に対して、コンテスト中に質問し、その回答を閲覧することが出来ます。
  • 解答: 今までに自分が提出した解答を閲覧することができます。また、コンテスト終了後には他の参加者の解答状況を閲覧することが出来ます。
  • 順位表: 現在のコンテストの順位表が閲覧できます。

実行環境

更新履歴

  • 2017/04/25
    • Kotlinの実行時オプションを変更してスタックサイズを追加しました
  • 2017/02/15
    • いくつかの言語においてコンパイラのバージョンが上がりました
    • C++においてC++03用のコンパイラオプションを追加しました
  • 2016/09/10
    • スタックサイズを問題によらず固定にしたことに伴いJavaの実行時オプションを変更してスタックサイズを追記しました
  • 2016/04/27
    • Fortran 2008としてコンパイルされるように拡張子を.fから.f08に変更しました
  • 2016/03/31
    • C/C++言語のGCCのコンパイルオプションを変更しました
      • C言語用コンパイルオプション: -std=c11 を -std=gnu11 に変更
      • C++言語用コンパイルオプション: -std=c++14 を -std=gnu++1y に変更
    • Swiftのバージョンを上げました
      • 2.2-SNAPSHOT-2016-02-08-a を swift-2.2-RELEASE にアップデート
    • Swiftのコアライブラリを追加しました
      • Swift用のコアライブラリは開発版であり動作の保証はされません
  • 2016/03/18
    • Objective-C用にGNUStepをインストールしました
    • これに伴いコンパイルオプションを変更しています
  • 2016/03/16
    • Unlambdaの実行コマンドの変更を行いました

現時点で判明している問題

現在以下の問題がわかっています。 これらの問題に関してわかる方は以下のシートにご記入くださいますようお願い致します。
https://docs.google.com/spreadsheets/d/1X5Yk5PiGx-Otm1JaHpQQzQhEIPj8trofLTkphKX43s0/edit?usp=sharing
  • Objective-Cは必要なパッケージなどがわからなかったため動かない可能性があります(GNUStepなどは入れていません)
    2016/03/18 更新:GNUStepを入れました、これに伴いObjective-C用GCC/Clang両方のコンパイルオプションを変更しました
  • PHP/PHP7/Perl/Perl6/Rubyはコンパイル時のシンタックスチェックエラーが発生してもそのまま実行を行います(これは仕様です)
  • MoonScriptはコンパイルは行いますが、実行時にはコンパイル結果を使わず直接MoonScriptを実行します。これはMoonScriptのコンパイル結果であるLuaを実行するときの適切なコマンドラインオプションがわからないためです。

コンパイラオプション/実行時オプション

言語コンパイルオプション実行コマンド
C++14 (GCC 5.4.1)g++ -std=gnu++1y -O2 -I/opt/boost/gcc/include -L/opt/boost/gcc/lib -o a.out Main.cppa.out
Bash (GNU bash v4.3.11)cat Main.sh | tr -d '\r' >a.outbash a.out
C (GCC 5.4.1)gcc -std=gnu11 -O2 -o a.out Main.c -lma.out
C (Clang 3.8.0)clang -O2 Main.c -o a.out -lma.out
C++ (GCC 5.4.1)g++ -std=gnu++03 -O2 -I/opt/boost/gcc/include -L/opt/boost/gcc/lib -o a.out Main.cppa.out
C++ (Clang 3.8.0)clang++ -I/usr/local/include/c++/v1 -L/usr/local/lib -I/opt/boost/clang/include -L/opt/boost/clang/lib -std=c++03 -stdlib=libc++ -O2 -o a.out Main.cppa.out
C++14 (Clang 3.8.0)clang++ -I/usr/local/include/c++/v1 -L/usr/local/lib -I/opt/boost/clang/include -L/opt/boost/clang/lib -std=c++14 -stdlib=libc++ -O2 -o a.out Main.cppa.out
C# (Mono 4.6.2.0)mcs -warn:0 -o+ -r:System.Numerics Main.csmono Main.exe
Clojure (1.8.0)echojava -cp /opt/clojure/clojure-1.8.0.jar clojure.main Main.clj
Common Lisp (SBCL 1.1.14)echosbcl --script Main.lisp
D (DMD64 v2.070.1)dmd -m64 -w -O -release -inline Main.dMain
D (LDC 0.17.0)ldc2 -O Main.d -of a.outa.out
D (GDC 4.9.4)gdc-4.9 -O2 -frelease -o a.out Main.da.out
Fortran (gfortran v4.8.4)gfortran -O2 -o a.out Main.f08a.out
Go (1.6)go build -o a.out Main.goa.out
Haskell (GHC 7.10.3)ghc -o a.out -O2 Main.hsa.out
Java7 (OpenJDK 1.7.0)/usr/lib/jvm/java-7-openjdk-amd64/bin/javac Main.java/usr/lib/jvm/java-7-openjdk-amd64/bin/java -Xss256M Main
Java8 (OpenJDK 1.8.0)/usr/lib/jvm/java-8-openjdk-amd64/bin/javac Main.java/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xss256M Main
JavaScript (node.js v5.12.0)echonode Main.js
OCaml (4.02.3)bash -c 'eval $(opam config env) ocamlfind ocamlopt -o a.out Main.ml -linkpkg -thread -package str,num,threads,batteries'a.out
Pascal (FPC 2.6.2)fpc -O2 -Sd -Sh -oa.out Main.pasa.out
Perl (v5.18.2)perl -W -c Main.plperl -X Main.pl
PHP (5.6.30)php5.6 -l Main.phpphp5.6 Main.php
Python2 (2.7.6)echopython -B Main.py
Python3 (3.4.3)echopython3 -B Main.py
Ruby (2.3.3)ruby2.3 --disable-gems -w -c Main.rbruby2.3 --disable-gems Main.rb
Scala (2.11.7)scalac -optimise Main.scalascala Main
Scheme (Gauche 0.9.3.3)echogosh Main.scm
Text (cat)cat Main.txt | tr -d '\r' >a.outcat a.out
Visual Basic (Mono 4.0.1)vbnc /noconfig /r:Accessibility.dll /r:System.dll /r:System.Data.dll /r:System.Xml.dll /r:System.Core.dll /r:System.Numerics.dll /r:System.Configuration.dll /r:System.Xml.dll /imports:System /imports:Microsoft.VisualBasic /OptionExplicit+ /removeintchecks+ /optimize+ /debug- Main.vbmono Main.exe
Objective-C (GCC 5.3.0)gcc -O2 Main.m -o a.out -lobjc -lgnustep-base -I/usr/include/GNUstep -fconstant-string-class=NSConstantStringa.out
Objective-C (Clang 3.8.0)clang -O2 Main.m -o a.out -lobjc -lgnustep-base -I/usr/lib/gcc/x86_64-linux-gnu/4.8/include/ -I/usr/include/GNUstep -fconstant-string-class=NSConstantStringa.out
Swift (swift-2.2-RELEASE)swiftc -o a.out Main.swifta.out
Rust (1.15.1)rustc -O -o a.out Main.rsa.out
Sed (GNU sed 4.2.2)cat Main.sed | tr -d '\r' >a.outsed -f a.out
Awk (mawk 1.3.3)cat Main.awk | tr -d '\r' >a.outawk -f a.out
Brainfuck (bf 20041219)cat Main.bf | tr -d '\r' >a.outbf a.out
Standard ML (MLton 20100608)mlton -output a.out Main.mla.out
PyPy2 (5.6.0)echopypy Main.py
PyPy3 (2.4.0)echopypy3 Main.py
Crystal (0.20.5)crystal build Main.crMain
F# (Mono 4.0)fsharpc Main.fsmono Main.exe
Unlambda (0.1.3)cat Main.unl | tr -d '\r' >a.outsh -c 'cat a.out - | unlambda'
Lua (5.3.2)luac -o luac.out Main.lualua luac.out
LuaJIT (2.0.4)luajit -O3 -b Main.lua luac.outluajit -O3 luac.out
MoonScript (0.5.0)moonc -o a.out Main.moonmoon Main.moon
Ceylon (1.2.1)ceylon compile --source=. Main.ceylonceylon run --run main default
Julia (0.5.0)echojulia Main.jl
Octave (4.0.2)echooctave --jit-compiler Main.m
Nim (0.13.0)nim c -d:release -o:a.out Main.nima.out
TypeScript (2.1.6)tsc Main.tsnode Main.js
Perl6 (rakudo-star 2016.01)perl6 -W -c Main.p6perl6 Main.p6
Kotlin (1.0.0)kotlinc Main.kt -include-runtime -d Main.jarkotlin -classpath Main.jar -J-Xss256M MainKt
PHP7 (7.0.15)php7.0 -l Main.phpphp7.0 Main.php

ライブラリ

対象言語ライブラリ名補足
C++(g++/clang++)Boostバージョン: 1.60.0
Python2numpyapt-get install python-numpy で入るもの
Python2scipyapt-get install python-scipy で入るもの
Python2? Python3?scikitsapt-get install python-scikits-learn で入るもの
Python3numpyapt-get install python3-numpy で入るもの
Python3scipyapt-get install python3-scipy で入るもの
SwiftFoundationバージョン: swift-2.2-SNAPSHOT-2016-01-11-a
SwiftXCTestバージョン: swift-2.2-SNAPSHOT-2016-01-11-a