Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

オンラインコンパイラ ideone の利用方法について #ideone #codeiq

概要

オンラインコンパイラ ideone の利用方法について

ideone

このドキュメントの目的

このドキュメントは CodeIQ の解答手段として、
オンラインコンパイラ ideone の利用方法を説明するためのものです。
今後、私が出題する問題ページから ideone に関する説明のために利用します。

※他の出題者の方も、 ideone の説明のためにこのページをご利用いただいても構いません。
また、このページをコピーして自分の使いやすいように改変していただいても構いません。

ideone とは?

ideone(アイディーイーワン)は、ブラウザでプログラムを入力すると実行結果を出力してくれる
多言語対応オンラインコンパイラです。

2015/03/02 現在 68 の言語(同一言語のバージョン違いを含む) に対応しています。
言語のリストの中には Text がありますが、これはプログラム言語ではなく、メモ帳として
ideone を利用する際に使うものです。

ideone を利用することで、自分が実行環境をもたない言語のプログラムを実行することができます。
また、実行結果を 一意な URL で保存できるため、結果を他人と簡単に共有することができます。
ちょっとしたプログラムなら外出先でスマートフォンから実行することも可能です。

ideone の基本的な利用法

f:id:tbpg:20150303010650p:plain

  • 全体公開する場合( Public )は、地球のアイコンを選択します

f:id:tbpg:20150303001555p:plain

  • URLを知っている人にだけアクセスを許す場合( Secret )はメガネのアイコンを選択します ※CodeIQ の解答で ideone を利用する場合はこちらを選択します

f:id:tbpg:20150303001601p:plain

  • リストボックスから言語を選択します

f:id:tbpg:20150303001614p:plain

  • コード入力欄 にコードを入力し, Run ボタンを押下します Ruby で hello, world してみます。

f:id:tbpg:20150303010704p:plain

  • 実行結果が表示されます。URL が付与されるので、URL を他人と共有できます プログラム・実行結果のステータス・標準入力・標準出力が表示されます

f:id:tbpg:20150303010712p:plain

※実際に下記 URL からキャプチャ画像の実行結果にアクセスできます

http://ideone.com/L3egvn

CodeIQ の出題時に Ideone を解答条件にする理由

前提

前提として、 CodeIQ の採点は 出題者本人が 1人で 行っています。
挑戦者が 100 人以上、というような場合にも対応できるようにしておかないと破たんします。
ほとんどの出題者が CodeIQ の出題とは別に本業の開発も抱えており、限られた時間の中で出題・採点しています。

出題者によっては、ある程度採点を自動化していると思いますが、
挑戦者のちょっとした提出フォーマットの不備にも対応するため 半自動 + 手動 で採点している出題者が多いと思います。
(どのみち選択問題以外については自動採点とは別にプログラムの中身をコードレビューのような視点で確認することになる。)

Ideone を利用する理由

  • 多数の言語に対応可能な問題にするため
    • 挑戦の間口を広げ、多くの方に楽しんでいただく
      • 「この問題面白そうなのに、 Java しか受け付けてないのか・・・」というケースを無くす
    • 採点者が自身で多数の言語の採点環境を用意するのは困難
  • 各解答者の環境に依存しない採点が可能( 言語のバージョンやOS限定の挙動の違いの影響を受けない )
    • 出題者と解答者が同じ環境であることを前提にできる

その他補足

  • ideone の障害によって実行結果が失われる場合があります。 ideone で実行・保存したプログラムは個人でも履歴管理しておくことを推奨します。
  • ideone にユーザー登録することで、 API などより便利な機能を利用可能になります。