を入力、正しく実行できることを確認しなさい。12*3 + 3*4 - 10
をいれて正しく実行できることを確認しなさい。12*(3+13)-10
変数とプリント関数を持つ式を計算する言語の構文解析プログラムをyaccを用 いて作成しなさい。
構文規則は以下のものとする:
<variable>は、アルファベットからなるシンボルで、<nubmer>は数字の並びで、 各tokenはCと同様に空白で区切られているものとする。演算子の優先度を考慮 すること。<program> := {<statement> ';'}* <statement> := <assignment> | <print_statment> <assignment> := <variable> '=' <expression> <print_statemnt> := 'print' <expression> <expression> := <expression> <op> <expression> | <variable> | <nubmer> | '(' <expression>')' <variable> := {英字}* <nubmer> := {数字}* <op> := '+' | '-' | '*' | '/'
これは、Cのmainのみの機能がある言語である。例えば、以下のようなプ ログラムをかくことができる。
このプログラムを入力し、認識できることを確かめなさい。 なお、構文木は必ずしもつくらなくてもよい。x = 1+2; y = 100; z = (x+y)*10+34; print z+1;
課題3で作った数式を計算するプログラムのインタプリタを作成しなさい。 課題3にある例を入力し、正しく実行できることを確かめなさい。
講義(第4回、第5回)で説明したtiny Cで、8クイーン問題のプログラムを書き、 インタプリターを用いて、この問題を解きなさい。
以下のものを提出すること:
課題3で作った変数とプリント文がある数式を計算するプログラムを講義 (第6回)で説明したスタックマシンにコンパイルするプログラムを作成しなさ い。課題3にある例を入力し、正しく実行できることを確かめなさい。
課題3で作った変数とプリント文がある数式を計算するプログラムをx86にコン パイルするプログラムを作成しなさい。 課題3にある例を入力し、正しく実行できることを確かめなさい。
以下の2つの課題のどちらかを選択し、レポートを提出すること。
ヒント:
XMLのparserを製作し、簡単な文書のフォーマット機能を持つプログラム を書きなさい。
例えば、
<heading> introduction </heading> <p> This is sample introduction. </p> </enumerate> <heading> sample </heading> <p> <enumerate> <item> This is item a </item> <item> This is item b </item> <item> This is item c </item> </p>は、
INTRODUCTION This is sample. SAMPLE 1. This is item a 2. This is item b 3. This is item c仕様等は、自分で設計し、定めること。