2012-04-20 6 views
0

同じ言語で実行コードの機能を持つScriptCodeというスクリプト言語があるとします。データ実行の実装方法(スクリプトソースコードの場合と同じように)

//このficticiusプログラムは、単純な定数コードを実行します。

main() 
{ 
    ScriptCode sc=new ScriptCode ("print \"Hello\""); 

    execute(sc); 

    print (" world"); 
} 

//このficticiusプログラムは、10個のプログラムをstdinから読み込んですべて実行します。

main() 
{ 

    ScriptCode programs[10] 

    String input; 

    for(int i=0;i<10; i++) 
     { 
      input =readInput(); 
      program[i] = new ScriptCode(input); 
     } 


    for(SriptCode p : programs) 
     execute(p); 

} 

質問です:

"ScriptCode" どの既存のプログラム言語をだろうか? または この種のソフトウェアはどのように実装できますか?

(私はそれが唯一の選択肢をLISPていない願っていますが、もしそうなら..私はそれに直面しなければならない。)

おかげ

答えて

3

executeルーチンは、伝統的にはevalと呼ばれています。 wikipedia article on evalには、JavaScript、ActionScript、Lisp、Perl、PHP、Lua、PostScript、Python、D、ColdFusion、REALbasic、Ruby、Forth、VBScript、Visual Basic for Applications、およびSmalltalkを含む多くの言語がリストされています。 SQLは、以下のコメント(感謝)でも言及されています。

通常、実装では、言語自体と同じコードを使用して(重複を減らすために)使用します。翻訳された言語はインタプリタを呼び出し、コンパイルされた言語はコンパイラを呼び出す。インタープリタは、を解釈プログラムに含める必要がありますが、コンパイラはコンパイルされたものには含まれていないことが多いため、この機能はインタープリタ言語でより一般的です。

+0

あなたはのように、事実上すべてのSQL環境では、動的SQLをサポートし、そのリストにSQLを追加することができます。 – RBarryYoung

0

のようなもの:

#!/bin/bash 
# ohai, I'm bash, this is test 
i=3 
while ((i--)); do 
    read -ra prog 
    ${prog[@]} 
done 

は、コマンドを取得し、それを実行します。テストケース

$ bash test 
echo foo 
foo 
mpc play 
65daysofstatic - The Conspiracy of Seeds 
printf %s\n heh 
heh 

私は、ある程度は、ほとんどの解釈言語が適合すると思います。

入力がファイルの場合、単純なCプログラムであっても、コンパイルして実行ファイルを実行することもできます。

このゲームのルールは何ですか?

0

Smalltalkの答え:

コンパイラは評価する: '3 + 4' を

==> 7

関連する問題