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
でインストールしてから実行します.