1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ideoneで使える言語のバージョンとか調べてみた

Last updated at Posted at 2016-08-29

Ideoneを使うといろんなプログラミング言語を試す事ができます。Ideoneの"What is Ideone?"には以下のように書かれています。

Ideone is an online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.

Google翻訳すると「Ideoneは、あなたがソースコードをコンパイルし、60以上のプログラミング言語でそれをオンラインで実行することを可能にするオンラインコンパイラおよびデバッグツールです。」とのことです。

ちょっと興味があったので調べてみました。(注意)興味があったところしか調べていません。

(追記)この記事を投稿した後でFAQページの下の方にある「What programming languages are supported on Ideone?」に書いてあるって教えてもらいました。バージョンも変わると思うので、そっちの方が確実かなと思います。

制限

FAQには以下のように書かれていました。コンパイルは10秒以内、実行は5秒まで(ユーザは15秒)、使用できるメモリは256Mというところでしょうか。

  • compilation time: 10 seconds,
  • execution time: 5 seconds (for not logged in users) or 15 seconds (for registered users),
  • memory usage: 256 MB.

パフォーマンス

効率の悪いことで有名な再帰版のフィボナッチ数列をPython3の環境で実行してみました。以下のソースコードを入力し「Run」又は「ideone it!」ボタンをクリックします。ソースコードはPython Courseから引用したものです。

def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)

print(fib(30))

結果は以下のようになりました。fib(30)でfib関数は270万回くらい呼び出されているはずなので、パフォーマンスの目安にはなると思います。

Success	time: 0.32 memory: 9992 signal:0
832040

私の手元にあったPCで実行してみたところ以下のようになりましたので、私のPCの倍くらいは速そうです。

% time python3 fib.py
832040

real	0m0.708s
user	0m0.684s
sys	0m0.016s

Python3のバージョン

Pythonのバージョンは「3.4.3+」のようです。

import platform
print(platform.python_version())
結果
3.4.3+

Python3で使用できるモジュール

インストールされていて使用できるモジュールは標準のものだけかと思ったのですが、以下のプログラムを実行してみたところエラーなく実行できました。どうやら標準のみではなさそうです。

import numpy as np
print(np.array([[1, 2], [3, 4]]))
結果
[[1 2]
 [3 4]]

Smalltalk

使用できるのはGNUのSmalltalkのようです。GNU版は使ったことがないのと、そもそもSmalltalkで標準出力を扱ったことがないのでどうするんだ?と戸惑ったのですが、とりあえず知っているTranscript show: を使ってみたところ出力されました。

Transcript show: Smalltalk.Version.
結果
GNU Smalltalk version 3.2.4

「stdin」と「stdout」がFileStreamのインスタンスであるようですので、以下のように書くこともできそうです。

Smalltalk.Version printOn: stdout.

Rubyのバージョン

print RUBY_VERSION
結果
2.1.5

SQLのDBとバージョン

SELECT version();がエラーになった事がヒントになりました。色々と試していったところDBはSQLiteのようです。

SELECT sqlite_version();
結果
3.8.10.2

JavaScript

JavaScriptはrhino-1.7.7とspidermonkey 24.2を選択できるようです。以下のスクリプトはspidermonkeyで実行しています。

spidermonkey
print(version())
結果
185

ちょっと気になったのでPython3ときに試した再帰版のフィボナッチ数列を実行してみました。はっ、速い…JavaScriptってこんなに速かったんですね。正直驚きです。

spidermonkey
function fib(n) {
    if (n === 0) {
        return 0;
    } else if (n === 1) {
        return 1;
    } else {
        return fib(n-1) + fib(n-2);
    }
}
print(fib(30));
結果
Success	time: 0.02 memory: 30328 signal:0
832040

ちなにみにrhinoの環境で実行すると以下のような感じでした。

結果(rhino)
Success	time: 0.36 memory: 321920 signal:0
832040
1
3
3

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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?