プログラミング言語の動作が気になったときに
プログラミングをしていて、プログラミング言語の動作を確認したくなったことはありませんか。例えば、C++で複数の変数を一度に初期化したいと考えたとします。そして確かこんな書き方ができたはずと、int a, b = 7;
のような書き方を思いついたとします。しかしこれが期待通りに動くのか不安です。そういうときに役に立つのがIdeoneです。
Ideoneとは
Ideoneは様々なプログラミング言語をブラウザ上で実行できるWebサービスです。
画面はこんな感じになっています。
C、C++、C#、Perl、Ruby、Python、Java、JavaScriptのような有名どころはもちろん、マイナーな言語もかなりの数対応しています。
Ideoneを使う
先ほどのint a, b = 7;
をIdeoneで試してみます。まずはプログラミング言語がJavaになっているのでそれをC++にします。言語リストにC++がいくつかありますが、C++03で試したい場合はC++、C++5.1、C++4.3.2のどれかを選びます。それぞれコンパイラ(またはそのバージョン)が違います。C++11以降の機能を有効にして試したい場合はC++14を選びます。
コードを入力したら、「Run」ボタンを押します。するとページが切り替わり実行結果画面になります。
実行結果画面
実行結果画面ではプログラムのビルドに成功したのかどうかと、標準出力の結果が表示されます。
このコードの出力結果は0, 7
になりました。int a, b = 7;
という書き方では最初の変数a
が初期化されないようですね。Ideoneで記述したソースコードを変更するにはfork
を選びます。edit
でもいいのですが、editだと出力が見づらいと個人的に感じるのでforkの方をよく使っています。
先ほどのコードをint a =7, b = 7;
のような書き方に変更して、実行すると出力結果は7, 7
になりました。複数の変数を初期化するにはこのように記述する必要があることがわかりました。
動作確認だけでなく、コードの共有にも便利
Ideoneはちょっとした動作確認だけではなく、Twitterやブログなどでのコードの共有にも便利です。Ideoneに記述したコードを共有するにはIdeoneの実行結果画面のURLを使います。先ほどの実行結果はこのURL「http://ideone.com/cax3Y4」から見ることができます。このようにIdeoneの実行結果は誰でも見れるようになっているので、公開されたらまずいものは記述しないようにしましょう。ただし、設定で非公開にすることもできるようです。ちなみにこのURLはいつまで有効なのかというと、IdeoneのFAQによると「永遠に」とのことです。
また、実行結果画面にはIdeoneのページを埋め込むためのHTMLコードが画面右側に表示されます。例えばこんなコードです。
<script src="http://ideone.com/e.js/cax3Y4" type="text/javascript" ></script>
これをhtmlに埋め込むことで、ブログの記事などにも使うことができます。
↓埋め込むとこんな感じになります
(おまけ)Ideoneの対応言語一覧
※IdeoneのFAQからコピペしたものです。
- Ada
- Assembler
- AWK (gawk)
- AWK (mawk)
- Bash
- bc
- Brainf**k
- C
- C#
- C++
- C++ 4.3.2
- C++ 5.1
- C++14
- C99 strict
- CLIPS
- Clojure
- COBOL
- COBOL 85
- CoffeeScript
- Common Lisp (clisp)
- D
- D (dmd)
- Elixir
- Erlang
- F#
- Factor
- Falcon
- Fantom
- Forth
- Fortran
- Go
- Groovy
- Haskell
- Icon
- Intercal
- Java
- Java7
- JavaScript (rhino)
- JavaScript (spidermonkey)
- Lua
- Nemerle
- Nice
- Nim
- Node.js
- Objective-C
- Ocaml
- Octave
- Oz
- Pascal (fpc)
- Pascal (gpc)
- Perl
- Perl 6
- PHP
- PicoLisp
- Pike
- Prolog (gnu)
- Prolog (swi)
- Python
- Python (Pypy)
- Python 3
- R
- Ruby
- Rust
- Scala
- Scheme (chicken)
- Scheme (guile)
- Smalltalk
- SQL
- Tcl
- Text
- Unlambda
- VB.NET
- Whitespace
類似サービス
Ideoneと同じようなWebサービスの1つにWandboxというものもあります。こちらはC++を実行する際に、コンパイラとしてClang,GCCをバージョンごとに指定でき、Boostも使用できるなど、C++関連の充実度が高いものになっています。