Interface編集部
2021年2月号特集 3日目第1章 Pythonで構文解析や意味解析を体験
記事中のコマンドを抜粋して掲載します.
また躓きやすい注意点を上げておきます.
●Ubuntu 20.04.1 LTSをインストール
公式サイトからダウンロードしセットアップします.
(Ubuntu Linuxの詳細については,本誌の過去記事やウェブ上の情報を参考にしてください)
https://jp.ubuntu.com/download
●ClangコンパイラとLLVMをインストール
ターミナルを起動し,次のコマンドでインストールします.
$ sudo apt update
$ sudo bash -c “$(wget -O – https://apt.llvm.org/llvm.sh)”
●MicroCコンパイラの準備
次のコマンドで,ソース・コードをダウンロードします.
$ git clone https://github.com/kemusiro/microc-compiler.git
上記リポジトリには,この後に利用する次のファイルが含まれます.
・lexer.py
・parser.py
・analysis.py
・llvmgen.py
・sampleフォルダの中にfib.mcがあります.
●LLVM IRへのコンパイル
次のコマンドでコンパイルします.
$ cd microc-compiler
$ python3 microc.py sample/fib.mc
●実行ファイルの作成
次のコマンドで実行ファイルへ変換します.
$ cd sample
$ clang-11 fib.ll main-fib.c -o fib
● 10のフィボナッチ数を計算するMicroCのプログラムを実行
次のコマンドで実行します.
$ ./fib 10
55
●LLVMによる最適化を確認
MicroCで生成したLLVM IRファイルをLLVMで最適化してみます.
コマンドは次です.
注:誌面と変更点があります.fib2.ll → fib.ll
$ clang -S -emit-llvm fib.ll -O3 -o fib2-O3.ll
clangコマンドがインストールされていない場合は,
$ sudo apt install clang
でインストールしてから実行します.