/mc-lang-2

セキュリティミニキャンプ2019山梨 MC言語講義 第二回事前課題

Primary LanguageC++

ミニキャン言語(MC)講義 第二回事前課題

第一回事前課題では、数字と二項演算子のみからなるexpressionをコンパイルし、オブジェクトファイルを得ました。第二回事前課題では、関数定義と関数呼び出しを実装し、C++のmain関数とMC言語で生成したオブジェクトファイルをリンクし、ELFファイルを作り実行します。

2.1 識別子をトークナイズする

lexer.hTODO 2.1に詳細が書いてあり、これを終えるとtest1.mcが正常にコンパイルできるようになります。

2.2 識別子をパースしよう

parser.hTODO 2.2に詳細が書いてあります。

2.3 関数のシグネチャをパースしよう

parser.hTODO 2.3に詳細が書いてあります。2.2, 2.3を終えるとtest2.mcが正常にコンパイルできるようになります。

2.4 引数のcodegenを実装してみよう

codegen.hTODO 2.4に詳細が書いてあり、これを終えるとtest3.mcが正常にコンパイルできるようになります。

2.5 関数呼び出しのcodegenを実装してみよう

codegen.hTODO 2.5に詳細が書いてあり、これを終えるとtest4.mcが正常にコンパイルできるようになります。

2.6 C++を用いてELFファイルを作り、 実行してみよう

main.cppというファイルを用いてMC言語で作られたオブジェクトファイルにリンクし、main関数から実行結果を表示します。

./mc test/test4.mc
clang++ main.cpp output.o -o main
./main

main関数内のcoutにより正常に結果が表示されていれば大丈夫です。

課題は以上になります。お疲れ様でした!