エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
23日目: [コンパイラ] シンボルテーブル - しかくいさんかく
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
23日目: [コンパイラ] シンボルテーブル - しかくいさんかく
この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の23日目の記事です。 昨... この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の23日目の記事です。 昨日は抽象構文木を作った。 これをアセンブラコードに変換できればコンパイラは完成だ。 変換の手順は、抽象構文木の最上段のPROGRAMノードから出発し、各ノードをニーモニックに置き換えていけばよい。 今日はその中で宣言系に関するノードを扱う。 やりたいこと 今日のサンプルコード(昨日までとは少し違う) int g; int func(int a); int func(int a) { int c; c = 3; return a+c; } の抽象構文木は以下のようになる。 着色したノードは宣言系のノードだ。 水色は宣言のノード 緑色は型と名前のノード 具体的には int型のグローバル変数gの宣言 int型の関数funcのプロトタイプ宣言 int型の関数funcの宣言 関