Swift Evolutionへの第一歩!Swiftで挑むプログラミング言語自作入門 by ぺいた

iOSDC Japan 2025
レギュラートーク(20分)

Swift Evolutionへの第一歩!Swiftで挑むプログラミング言語自作入門

yjimpei_10 ぺいた yjimpei_10
3

Swift Evolutionを眺めているうちに、「言語ってどうやって作られてるんだろう?」と気になり、試しにSwiftでシンプルな言語を作ってみました。

今はAIがコードを書く時代になってきていますが、依然として言語の仕組みを理解し、自ら構造を設計できる力は変わらず重要だと感じています。

このセッションでは、Swiftで簡易的なプログラミング言語を自作したプロセスを、字句解析、構文解析、意味解析という基本ステップに沿って紹介します。
字句解析では、Swiftのenumを使ってトークンの種類を定義し、文字列を順に読み取って意味のある単位に分解する処理を組み立てました。構文解析では、indirect enumとstructで抽象構文木(AST)を表現し、演算や代入といった構文を再帰的に解析することで実現しました。意味解析では、Dictionaryを活用して変数名と型情報を管理し、スコープごとに構造を持たせながら、型の整合性や未定義変数の検出といったチェックを行う仕組みを構築しました。

発表の最後には、自作したミニ言語も軽くお見せします。素朴な言語ですが、作る過程で得られる学びは深く、きっとコードの書き方や読み方が変わるはずです。

Swift Evolutionは遠く見えて、実は足元から始められるのかもしれません。
一緒にその第一歩を踏み出してみませんか?