機能を減らしてハードルを下げまくった、初心者・入門者(=自分)向けの、かんたん・素朴で割といいかげんな自作言語のコンパイラ vm2gol-v2 の移植です。
移植元の Ruby版のコンパイラ部分だけだと 1000行くらい、という素朴さ。
- ノリとしては zick さんの
LISP Implementation Advent Calendar : ATND
(2014年、 Wayback Machine )に近い感じ(のつもり)
- mal (Make a Lisp) の影響もちょっとあると思います
- 基本的にやっつけ、ものによっては殴り書きです。 動いたら(コンパイルできたら)そこで終わりで、気が向けば多少はきれいにしたりして、次の言語へGO。細かいことを気にしだすと無限に時間がかかるので割と意図的に気にしないようにしています。
- それぞれの言語に詳しくなることよりも、とにかく作って動かすことを優先しています
- 「その言語らしい書き方」にするようがんばらない。できる範囲で。気が向いたらやる。
- 「習うよりも慣れろ」スタイルで
- Java 以外はエディタ(Emacs)と print デバッグで。 ものによっては language server を併用。
記事 | リポジトリ | 日付 |
---|---|---|
Tcl | github | 2021-12-26 |
シェルスクリプト(Bashスクリプト) | github | 2021-12-20 |
なでしこ3 | github | 2021-12-13 |
Haskell | github | 2021-06-28 |
OCaml | github | 2021-06-26 |
Pascal | github | 2021-05-22 |
Julia | github | 2021-05-03 |
Rust | github | 2021-04-07 |
Crystal | github | 2021-03-27 |
Ruccola(セルフホスト) | github | 2021-02-21 |
Kotlin | github | 2021-01-14 |
Zig | github | 2021-01-07 |
LibreOffice Basic | github | 2020-12-14 |
Go | github | 2020-09-25 |
PHP | github | 2020-09-18 |
C♭ | github | 2020-09-13 |
Perl | github | 2020-09-08 |
C | github | 2020-09-06 |
Java | github | 2020-08-30 |
Dart | github | 2020-08-22 |
Python | github | 2020-08-19 |
TypeScript (Deno) | github | 2020-08-15 |
他の人が書いてくれたもの
他の人に使っていただけると、作った甲斐があった! という気持ちになりますね。ありがとうございます。
関連リポジトリ
他の人に使ってもらうことを意識した整備などはしていないですが、参考までに。
参考
- 2022-11-21 新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話