Skip to content

takerumimata/go_interpreter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go_interpreter

Go 言語で作るインタプリタ

Grammer

以下のような C 言語ライクな構文を持つなんちゃってプログラミング言語を自作する

let x = 10;
let y = 15;

let add = fn(a, b) {
    return a + b;
};

[要加筆]

  • 変数束縛: let
  • return 文: return

let 文と return 文を覗くと全てが式として評価される設計になっている。 識別子も式

add(2, 3) - 5;
!ture;
5 * 5;
4 * 3;

Limitation

インタプリタが対応していないこと

  • マルチバイト文字(monkey は ASCII 文字のみに対応)
    • l.ch を byte から rune に変更しなければならない。1文字を読み込むことがやや複雑になってしまう
  • 整数以外の数字
    • 簡単なものをまずは作る。今後の課題(ブログのネタにでもしよう)

Thanks

I appreciate you sharing knowledge, Thorsten Ball and Yoji Shidara. Before reading this book, I couldn't imagine I can write interpreter by myself. Thanks a lot!

About

Go言語で作るインタプリタ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages