自作プログラミング言語

C言語

C言語のデバッグにLLDBを使ってみた

C言語のデバッグにLLDBを実際に使いながら、ブレークポイントやステップ実行、変数・メモリ・スタックフレームの確認方法を解説。最後に自作コンパイラ「五右衛門」のデバッグも試します。
C言語

【入門】プログラミング言語を自作する方法⑩|配列の実装とリファクタリング

プログラミング言語を作ってみた⑩。今回は自作言語「五右衛門」に配列を実装しました。配列の構文追加からAST生成、名前解決と型チェック、バイトコード生成、VMでの配列管理・要素の読み書きまで詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑨|関数の実装

プログラミング言語を作ってみた⑨。今回は自作言語「五右衛門」に関数を実装しました。関数のパースやASTの生成、名前解決と型チェック、バイトコード生成、VMでの関数呼び出しや再帰処理について詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑧|型システムと型チェックの実装

プログラミング言語を作ってみた⑧。今回は自作言語「五右衛門」に型システムと型チェックを実装しました。静的型付けを採用した五右衛門の型定義やASTへの型情報の付与、名前解決と連携した型チェック、文字列の出力処理について詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑦|Parserのリファクタリングと名前解決の実装

プログラミング言語を作ってみた⑦。今回は自作言語「五右衛門」のParserをリファクタリングし、名前解決を実装しました。ASTを活用したParser・名前解決・コード生成の責務分離や、シンボルテーブルを使った変数の解決について詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑥|変数スコープを実装する

プログラミング言語を作ってみた⑥。今回は自作言語「五右衛門」に変数スコープを実装しました。グローバル変数・ローカル変数のスコープ管理、コンパイラの実装、VMでのローカル変数管理の仕組みを詳しく解説します。
C言語

【入門】プログラミング言語を自作する方法⑤|for文・AST・自動テストでコンパイラを改善

プログラミング言語を作ってみた⑤。前回の続きです。今回は自作言語「五右衛門」にfor文を実装するとともに、AST(抽象構文木)の導入と自動テストを追加しました。コンパイラの設計改善や品質向上について解説します。
C言語

【入門】プログラミング言語を自作する方法④|if文・while文を実装して制御構文を作る

プログラミング言語を作ってみた④。前回の続きです。今回は自作言語「五右衛門」に if文・while文を実装しました。2パスコンパイルとバックパッチを用いて、JZやJMPによる制御構文を実現します。
C言語

【入門】プログラミング言語を自作する方法③|変数として値を保持から出力まで

プログラミング言語を作ってみた③前回の続きです。今回は五右衛門に変数と出力機能を実装しました。プログラミング言語らしくなってきました。再帰下降構文解析 を用いることで、計算をスマートにパースすることができました。
C言語

【入門】プログラミング言語を自作する方法②|トークナイザを実装して文字列を分解する(C言語)

プログラミング言語を作ってみた②前回の続きです。今回はトークンナイザを実装して、分解をしました。トークンナイザを作ることにより、前回の文字列検索から可読性がかなり上がったと思います。