新卒の永山です。 昨今、SNSではなぜかシェルを作ることに関する言及が盛んに行われています。 そこで、本記事ではシェルの実装に関する理解を深めることを目的に簡単なシェル「nosh」*1 をインクリメンタルに作成したいと思います。 完成した実装は以下のリポジトリで公開しています。 github.com 実装にはD言語を用います (この記事はD言語の布教も兼ねています)。 D言語について 0. 処理系の概形 1. プロジェクトの作成 2. 最も簡単なREPL 2.1. 入力の取得 2.2. 入力の分割 2.3. コマンドの実行 3. モジュールの分割 3.1. 字句解析器 3.2. 構文解析器 3.3. 評価器 4. パイプ演算子の実装 4.1. 字句解析器・構文解析器の拡張 4.2. 評価器の拡張 まとめ We are hiring! D言語について D言語 はC/C++風の親しみやすいシン