mcic

2.2 Lexical Analysis

二章まで終了。正規表現のお話。 ここまでは特に難しいところは無い。後でコーディングしてみようかと思う。

インタプリタ実装

シンボルテーブルは超手抜きで書いた。 struct symbol_entry { char* symbol; int value; }; typedef struct symbol_entry Entry; Entry* table = 0; void InterpInit() { const int size = 1024*sizeof(*table); if (!table) table = checked_malloc(size);…

maxargの答えあわせとちょっとした表示関数

なんかややこしい木を構成しようとすると、 A_stm prog2(void) { return A_CompoundStm( A_AssignStm("a", A_OpExp(A_NumExp(5), A_plus, A_NumExp(3))), // a = 5 + 3 A_CompoundStm( A_AssignStm( "b", // b = A_EseqExp( // (..., ...) A_PrintStm( // pr…

1.Introduction : Exercise 1

とりあえずこうしたけど、直すとこはありそう。ゴテゴテつけたのは次の Exercise、インタプリタをにらんで。 #無駄になったりして。 int max(int a, int b) { return a > b? a: b; } int maxexps(A_exp e) { switch (e->kind) { case A_idExp: case A_numEx…

1. Introduction

気合入れてかからないと迷宮に陥りそうなので、出力しながら勉強するメソッドで行こうと思います。 Modules and Interfaces 一般的なコンパイラのモジュール構造について。 モジュール分割することでコンポーネントの再利用を可能にする。 ターゲットマシン…

Modern Compiler Implementation in C読み始め。

少し余裕が出てきたので読み始めた。Introにも書いてあるけど、Part Iは基本的にコンパイラの各フェーズに一章分を割り当てて順に説明しているっぽい。 Part I Fundamentals of Compilation 1.Introduction 2.Lexical Analysis 3.Parsing 4.Abstract Syntax …