実行ファイル

イントロダクション

ここでは、実行準備、デバッグ、提出物の評価などに必要なファイルを設定する。 これには、スクリプトファイル、プログラムのテストファイル、データファイルなどがある。

実行やデバッグのためのデフォルトスクリプト

実行やデバッグのためのスクリプトファイルを設定しなかった場合、 システムは使用しているプログラミング言語を(ファイルの拡張子から)判定し、 あらかじめ定義されているスクリプトファイルを用いる。 次に示す表は、使用可能なプログラミング言語、ファイル名の拡張子、 スクリプトが準備されているか、スクリプトによりコンパイラ/インタプリタ/デバッガが使えるのかが示してある。
言語 ファイル名
拡張子
実行 デバッグ コンパイラ/
インタプリタ
コメント
Adaada, adb, adsXXgnat (Ada 2005)/gdb最初のファイルをメインとして扱う
CcXXgcc C99/gdbすべてのソースファイルをコンパイルする
C++cpp, CXXg++/gdbすべてのソースファイルをコンパイルする
C#csXXgmcs+mono/mdbすべてのソースファイルをコンパイルする
Fortranf, f77XXgfortran/gdbすべてのソースファイルをコンパイルする
HaskellhsXhugs最初のファイルを実行する
JavajavaXXjavac+java/jdbすべてのソースファイルをコンパイルする
メインファイルを指定する
Matlab/OctavemX-matlab, octave最初のファイルを実行する
描画後にvpl_replotを使用する
Pascalpas, pXXfpc or gpc/gdb最初のファイルをコンパイル(fpc)
すべてのソースファイルをコンパイル(gpc)
Perlperl, prlXXperl最初のファイルを実行する
PHPphpX-php5最初のファイルを実行する
Prologpl, proX-swipl最初のファイルを実行する
PythonpyXXpython最初のファイルを実行する
RubyrbXXruby最初のファイルを実行する
Schemescm, sX-mzscheme最初のファイルを実行する
Shell scriptshX-bash最初のファイルを実行する
SQLsqlX-sqlite3すべてのファイルを実行する
最初のファイルを実行する
VHDLvhd, vhdlX-ghdlすべてのファイルコンパイルするが、最初のファイルにMainメソッドがなければならない

自動評価

VPL1.4では、学生の提出物を評価する機能が導入された。 この機能により、学生のプログラムを実行し、決められた入力に対する出力を検査できる。 評価のためのケースを準備するには、"vpl_evaluate.cases"ファイルを準備する。

"vpl_evaluate.cases"ファイルは、次のような形式である。

汎用のファイル

新しいファイルは、"ファイルの追加"ボックスにファイル名を指定して"ファイルの追加"ボタンを押すことで追加できる。

既存のファイルをアップロードする場合には、"ファイルのアップロード"を使う。

すべての追加されたまたはアップロードされたファイルは編集可能であり、 次に示す3つの名前のスクリプトファイル以外は自由に名前を変更したり削除したりできる。

自作のrun, execute, evaluation

処理の準備のための3つのスクリプトファイルを設定できる。 これらの名前は決まっており、 vpl_run.sh(実行用)、 vpl_debug.sh(デバッグ用)、 vpl_evaluate.sh(評価用)である。

これらのスクリプトを実行したときには、 vpl_executionと言う名前のファイルを生成しなければならない。 このファイルは、実行可能ファイルか"#!/bin/sh "で始まるスクリプトファイルでなければならない。 このファイルを生成しないと、選択したアクションを実行できなくなる。

設定している活動が別の活動から「オプションのコピー」しているなら、 参照元の活動におけるファイルが自動的に追加される。 vpl_run.sh、vpl_debug.sh、vpl_evaluate.shファイルの内容は、 現在の活動から「オプションのコピー」のレベルが深い物から順に連結される。

最後に、vpl_environment.shファイルが自動的に追加される。 このスクリプトファイルには、提出物に関する情報が含まれている。 この情報は、環境変数として参照できる。

要求されたアクションが評価の場合、さらに次の変数が追加される。

評価結果

評価の出力が取り出され、可能であればコメントとして、提案された評価とともに表示される。 コメントは2つの方法で設定できる。 'Comment :=>>'で始まる行は、1行コメントとして取り扱われる。 '<|--'だけの行から'--|>'だけの行までの間は、 ブロックコメントとして扱われる。 評価は'Grade :=>>'で始まる最後の行から取り出される。