プログラミング入門

英語そのままでコードが書ける!自作プログラミング言語「EPL」の仕組みを解説

「プログラミングって、英語みたいな記号ばかりで読みづらい…」そんな気持ち、一度は感じたことありますよね。

そんな悩みに正面から向き合ったプロジェクトが話題になっています。その名も EPL(English Programming Language) ——コードがまるで英語の文章のように書ける、自作プログラミング言語です 🎉

EPLってどんな言語?

programming language code
programming language code / Photo by Leonid Altman via Pexels

EPLは、セミコロンも波括弧も矢印演算子も一切なし。コードを見ると、こんな感じです。

name = "Abneesh"
age = 20
scores = [95, 87, 92]

If age is greater than 18 then
    Say "Welcome, " + name
Otherwise
    Say "Access denied"
End

For each score in scores
    Say score
End

どうですか? 「If age is greater than 18 then」 って、もはや普通の英語ですよね。プログラミング未経験の人に見せても「なんとなく意味わかる!」と感じてもらえるはずです。

ポイントをまとめるとこんな感じです 👇

  • セミコロン不要:文末に「;」を書く必要なし
  • 波括弧不要:ブロックは End で閉じるだけ
  • 条件文が自然な英語is greater than がそのまま使える
  • 出力は Sayprint() じゃなくて Say
  • ネイティブバイナリにコンパイル:インタープリタ実行ではなく本格的なコンパイラ

技術的な仕組みはどうなってる?

「英語で書けるだけじゃないの?」と思った方、そこが面白いポイントです。

EPLは ネイティブバイナリへのコンパイル に対応しています。つまり、スクリプト言語のように毎回インタープリタを挟むのではなく、機械語レベルまで変換して実行できるんです。

イメージとしては——

  • 英語っぽい構文 → 字句解析(Lexer) でトークンに分解
  • トークン → 構文解析(Parser) で構文木(AST)を生成
  • AST → コード生成 でネイティブバイナリに変換

「むずかしそう」に見えますが、こうした言語処理の流れはPythonやCと変わりません。EPLはそのパイプラインを英語の文法ルールに合わせて自作した、というわけです 💡

これって何が嬉しいの?


EPLの面白さは技術的な挑戦だけじゃありません。「プログラミングの入り口を下げる」 という視点がとても刺激的です。

たとえば、プログラミングを学び始めたばかりの方が一番つまずくのって、構文エラーですよね。{ を忘れた、; を忘れた……そういうミスがEPLではそもそも起こりません。

もちろん実用言語としての普及はこれからですが、「自分でプログラミング言語を作る」 という発想自体が、コンパイラやインタープリタの仕組みを学ぶ最高の教材になりますよね。

まとめ

EPLは「英語そのままでコードが書ける」というシンプルなアイデアを、コンパイラ技術で本格的に実現した自作プログラミング言語です。構文のシンプルさだけでなく、字句解析・構文解析・コード生成 という言語処理の基礎も自然に学べる面白いプロジェクトです。

「自分だけの言語を作ってみたい」と思ったあなた、まずはEPLのソースコードを覗いてみるのが一番の近道かもしれません。ぜひ参考にして、コンパイラ自作への第一歩を踏み出してみてください 🚀

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です