インタプリタを簡単に作成できるプログラミング言語は何ですか?
-
22-07-2019 - |
質問
インタープリターを作成しやすい実際のプログラミング言語は何ですか?
"リアル"私にとっての言語とは、簡単な密教プログラミング言語。
(趣味のプロジェクトをやりたいので尋ねています。)
解決
SICPのMetacircular Evaluatorは、SchemeでSchemeインタープリターを作成するための演習です。これは一般的な初年度のCSプロジェクトです。
他のヒント
プログラミング用のインタプリタを書くのはとても簡単です 言語 Forth (方法を知っていれば-しかしそれは順調です) 文書化)。 Forthは実際の問題に使用されています 40年以上。
おそらく簡単すぎるかもしれませんが、その過程で多くを学ぶでしょう。
簡単な(オンライン)紹介は Leo Brodieの" Starting FORTH"の第9章。
オリジナルのWirth's Pascalは良い候補であり、パーサージェネレーターのデモとしてよく使用されます。その文法はLL(1)であり、それ以外はかなり厳密なので、解析は簡単です。機能面でも同様にかなり制限されています。
ただし、少しいじりたくなるかもしれません。ポインタを無視したいかもしれませんが、ファーストクラスの文字列をサポートしています。
フォース。 OKこのような小さなコアを持つことができる他の言語を考えるのは難しいです。多分、元のMcCarthy 1958 Lispで、関数は手動でコンパイルされました。
スキーム、または任意のLispバリアント。
大学のオペレーティングシステムクラスで、Db(D-flat)のインタープリターを作成しました。非常にシンプルで明確に定義されていました。
マークアップ構文言語、リランだと思います。 コードブロックは開始タグと終了タグの間に明確に描かれているため、構文構造により解析が容易になります。理論的には、コードを直接解析して実行するレベル1インタープリターを簡単に構築できます。
それは、私があなたが目指しているように見えるコンテキストで意味のあることをするマークアップ言語はそこにはないということです(あなたは自分で書きたいかもしれません)。次の最良の選択は、おそらく最小限の機能を備え、できれば手続き型プログラミングをサポートしない言語でしょう。 BASICのような言語は、レベル1のインタープリターを簡単に構築できるはずです。
次に最適なのは、おそらく初期のスクリプト言語で、多くの構文要素を提供せず、複雑さがかなり短かったでしょう。私は何も考えていません。
しかし、おそらく最も優れた選択肢は、独自の言語を設計することです。言語構文の深い知識があり、インタープリターで独自の言語構造とセマンティクスを支配できるため、インタープリターの構築が容易になります。
...
レベル1インタープリターの主張は、簡単にしたいと言ったからです。