2021-11-04: Quine 書いてた
やったこと
Quine
Nelua という言語がある。
Lua の構文をベースに、全体的に厳格にしたりいくつかの機能を追加したりして、コンパイルするようにした言語、っぽい。
コンパイルはC言語経由みたい。
あと、レコードという機能で構造体みたいなのが宣言できる。
全体的に厳格な Lua っぽくて感触は悪くない。
あと GC とか切ったりもできるっぽい。
一応システムプログラミング言語と言っているだけのことはある。
というわけで Quine を書いた。
https://github.com/MakeNowJust/quine/blob/49d54ce7d8470bcfce7df231e6c96596971e78b6/quine.nelua
ちなみに Lua の Quine は動作しなかった。
変数宣言が必須なのと、string.format での %q がサポートされてないっぽい。
その辺りを考えた結果、折角なので Lua の文字列リテラル使いたいなぁ、と思ってこんな風になった。
なお io.printf は Lua には無いもよう。
Luau という言語がある。
Lua に静的型付けのアノテーションを書けるようにした言語。
ようするに TypeScript みたいな感じっぽい。
Roblox という会社で開発されていて、実際に結構使っているみたい。
VM は Lua のものをちょっと改造したやつで、型チェック部分は自前っぽい。
ぶっちゃけ Lua の Quine 動くよなぁと思いながら、適当に型アノテーションとかを追加して Quine を書いた。
拡張子は .lua で被ってるし、別言語ってほどでもないのかもしれない。
https://github.com/MakeNowJust/quine/blob/cd834451bc296953940dea524e82e51c379fef83/quine.luau.lua
ミリシタ
Emergence Vibe 折り返し。
とりあえず5万ptかなぁ。
それ以上はあとで考えよう。