Skip to content
セキュリティミニキャンプ2019山梨 MC言語講義 第二回事前課題
C++ Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
Makefile
README.md
main.cpp

README.md

ミニキャン言語(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により正常に結果が表示されていれば大丈夫です。

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

You can’t perform that action at this time.