2016-10-12 11 views
0

私は自分の知識をC++で拡張しています。自分自身に挑戦する手段として、またカジュアルスクリプトなどに使うプロジェクトとして独自のスクリプト言語を書いていきたいと思っています。これに関するstackoverflowの古い記事を見ましたが、誰かが新しいソースの例などを与えることができるかどうか疑問に思っていましたか?一言で言えばスクリプト言語の作成?

+0

本当に、独自のスクリプト言語を書いてください。これは、かすかな心のためではありません。インターネットで「コンパイラ設計理論」と「コンピュータ言語理論」を検索してください。レクサー、パーサー、通訳を書く必要があります。学校では、これは1年間のコースになる可能性があります。がんばろう! –

+0

投票を閉じる - 広すぎる。言語を書くための指示は、1つの質問の回答セクションに収まらない。このトピックにはすでに1000冊の帳簿があります。「コンパイラデザインブックAho」を検索します。「AHO」はしばしば「ドラゴンブック」と呼ばれます。 –

答えて

2

は、あなたは、すべてのコマンドとその構文を定義する必要がありますあなたの言語
を定義します。
これらを定義したら、構文パターンでグループ化できます。

デザインレクサー
レクサー言語要素の入力をスキャンし、トークンに変換する部分です。トークンは、パーサーに送られます。

デザインパーサー
パーサーは、その順序やパラメータの数としてトークンを評価する部分です。

デザイン通訳
インタプリタは、パーサからの出力を実行部分です。
コンピュータの非常に高いレベルのモデルと考えるべきです。たとえば、変数、レジスタ、入力、出力、数学命令などが必要になりますか?

複雑なインタープリタはBASIC言語インタープリタ(またはVisual BASIC)です。 Javaには、バイトコードを解釈するJVMがあります。 LISPインタプリタもあります。

入手できる場合は、Pythonインタプリタのソースコードを確認してください。

また、GNUおよびCLanguageコンパイラのソースコードを確認してください。

コンパイラとインタプリタは、通常、開発チームのチームによって作成されます(開発時間を短縮するため)。このプロジェクトに長い時間を費やす準備をしてください。

+0

年が経過し、C++をカウントしています。私はそれが何年もの間何かを見て嫌いだ。 – user4581301

関連する問題