Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyCompiler

下向き構文解析法(再帰下降構文解析)を用いたC言語実装のコンパイラ

概要

大学の授業や自習でコンパイラの仕組みを学ぶために実装したコンパイラです。PL/0 系の独自言語を対象とし、字句解析・構文解析・シンボルテーブル管理の基本的な処理を C 言語で実装しています。

技術スタック

  • 言語: C
  • ビルドツール: GCC

機能

  • ソースファイルの読み込み・字句解析(トークナイズ)
  • 下向き構文解析(再帰下降法)によるコンパイル処理
  • シンボルテーブル管理(変数・定数・関数・パラメータ)
  • スコープ(ブロック)のネスト対応
  • エラー検出と診断メッセージ出力

対象言語の予約語: begin, end, if, then, while, do, return, func, var, const, odd, write, writeln

使い方 / 動かし方

ビルド

gcc -o myComp main.c getSource.c compile.c table.c

実行

./myComp

実行するとファイル名の入力を求められるので、コンパイル対象のソースファイル名を入力してください。

ファイル名を入力してください
> sample.pl0
コンパイル開始
==== コンパイル処理完了 ====
コンパイル成功

ファイル構成

ファイル 役割
main.c エントリーポイント。ファイル名を受け取りコンパイル処理を呼び出す
getSource.c/h 字句解析器。ソースファイルをトークン列に変換する
compile.c/h 構文解析器。トークン列を下向き解析でコンパイルする
table.c/h シンボルテーブル。変数・関数の名前とアドレスを管理する

状態

学習目的の実装 / 開発停止

コンパイラの基本的な構造(字句解析・構文解析・シンボルテーブル管理)を学ぶために作成したもので、コード生成フェーズは未実装です。授業・学習用のリポジトリとして保存されています。

About

下向き構文解析法を用いた、コンパイラ

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages