Skip to content

sotarokashiuchi/C_Compiler_for_C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C_Compiler_for_C

プログラム実行方法

// 全てのテストケースを実行
make debug

// 特定のテストケースを実行
make debug "FN=<file name>"

// 2kmccをコンパイルし、2kmccでデフォルトのプログラムをコンパイル、実行
make 2kmcc

// 2kmccをコンパイルし、2kmccに指定のプログラムコードをコンパイルしてもらい、実行
make 2kmcc "CODE=<program code>"

sozysozbot/2kmccとはセキュリティ・キャンプ講師のhsjoihsさんが作成したC言語で書かれた、自作Cコンパイラです。hsjoihsさんから許可をもらいテストケースとして使用させていただいています。ありがとうございます。そのため./testcase/2kmcc_1.cのライセンスは複製元である、sozysozbot/2kmccのリポジトリに従います。

  • (2023/06/22)1:整数1個をコンパイルする言語の作成
  • (2023/06/22)2:加減算のできるコンパイラの作成
  • (2023/06/24)3:トークナイザを導入
  • (2023/06/27)4:エラーメッセージを改良
  • (2023/06/28)5:四則演算のできる言語の作成
  • (2023/07/12)6:単項プラスと単項マイナス
  • (2023/07/17)7: 比較演算子
  • (2023/07/17)8: ファイル分割とMakefileの変更
  • (2023/07/20)9:1文字のローカル変数
  • (2023/07/21)10:複数文字のローカル変数
  • (2023/07/21)11:return文
  • (2023/07/29)12: 制御構文を足す
  • (2023/07/30)13: ブロック
  • (2023/08/01)14: 関数の呼び出しに対応する
  • (2023/08/05)15: 関数の定義に対応する
  • (2023/08/05)16: 単項&と単項*
  • (2023/08/08)17: 暗黙の変数定義を廃止して、intというキーワードを導入する
  • (2023/08/08)18: ポインタ型を導入する
  • (2023/08/09)19: ポインタの加算と減算を実装する
  • (2023/08/09)20: sizeof演算子
  • (2023/08/10)21: 配列を実装する
  • (2023/08/27)22: 配列の添字を実装する
  • (2023/09/19)23: グローバル変数を実装する
  • (2023/09/02)24: 文字型を実装する
  • (2023/09/22)25: 文字列リテラルを実装する
  • (2023/09/22)26: 入力をファイルから読む
  • (2023/09/22)27: 行コメントとブロックコメント
  • (2023/08/27)28: テストをCで書き直す

compilerbook を補佐する資料 by hsjoihsさん

  • (2023/09/23)29: 複合代入演算子
  • (2023/10/03)30: インクリメント・デクリメント
  • (2023/10/07)31: 型名に対してのsizeof
  • (2023/10/10)32: ローカル変数の初期化式
  • (2023/10/07)33: for文 Part2
  • (2023/10/09)34: &&, ||, !
  • (2023/10/10)35: 型、レジスタ、汎整数拡張
  • (2023/10/11)36: 文字リテラル
  • (2023/10/11)37: ヌルポインタ定数

闇雲に進む

  • (2023/10/15)38: 簡易版structを実装
  • (2023/10/15)39: アロー演算子を実装
  • (2023/10/17)40: void型の実装
  • (2023/10/26)41: 文字定数の拡張表記の実装
  • (2023/10/28)42: struct実装(関数の引数、戻り値)
  • (2023/10/29)43: 空文
  • (2023/11/01)44: プロトタイプ宣言実装
  • (2023/11/07)45: 負の数実装
  • (2023/11/07)46: 2kmccコンパイル完了
  • (2024/02/21)47: switch文
  • 48: break文
  • 49: continue文

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published