ホーム » スタッフ » 斉藤徹 » 実験(斉藤) » コンパイラ技術と関数電卓プログラム

コンパイラ技術と関数電卓プログラム

  • コンパイラの技術と関数電卓プログラム(1)
    • 再帰下降パーサによる構文解析(LL法)による電卓プログラム作成
    • 補助資料:コンパイラの技術と関数電卓プログラム(1-2) 
    • 課題
      • 複数桁の数字が使えること。
      • 式中に空白が使えること。
      • 何らかの演算子を追加すること。
        • (例) %,単項演算子のマイナスなど
      • 演算子が左結合か右結合か確認すること。
      • オプション課題
        • 変数が使えること。
          (変数名は1文字のA-Zといったもので良い)
    • 拡張課題
      • 電卓計算をするのではなく、コンパイラとして機械語の命令生成をしたい。
      • 本物の機械語を生成するのは面倒なので、Cコンパイラ用の機械語っぽい命令を出力。
      • 想定するCPUアーキテクチャは、スタックマシン, レジスタマシンのどちらか
        • reg-machine.c , reg-machine.h
        • stack-machine.c , stack-machine.h
        • 機械語として実行する処理の内容は必要に応じて書き換えていい。
        • 5+3*2を入力したら (stack-machineの場合)
          • PUSH_I(5); PUSH_I(3); PUSH_I(2); MUL(); ADD(); を生成し、
          • 結果を stack-machine.h に保存し、
          • gcc stack-machine.c でコンパイルし、
          • ./a.out で結果を確認する。11が出力できたら成功!!
    • レポート内容
      • コンパイラ技術の概要、課題(1)の説明・最終的なBNF記法・ソース・動作検証、考察
      • 前半レポート提出先
  • コンパイラの技術と関数電卓プログラム(2)