Chick開発ログ
こんにちは。Rustのリハビリをしている静カニです。 昨日の記事で現状の人間関係を大切にしたいと思ったので、 今となっては別の学校に通っている旧友二人…というかA君とC君を私の家に呼びました。まぁ普段から連絡取ってますし今日呼んだのも前々から決めていましたが。 で今日A君とやったのが自作言語の開発作業です。つまりこの記事はChickの開発ログです。
今まで
- 1月:同じメンバーでC君の家に集まり、その際にA君が「言語を自作したい」と発案
- 3月:JSにトランスパイルできるようにするという計画をしつつSpRamenScriptというorgを作成。
- 一昨日:C君の学校のイベントの帰り道でA君と会話。初学者向け言語にすることが決定
- 初学者の頃の苦労は忘れてしまったので親に聞いてみた。「エラーの原因が分かりにくい」といった意見が。
今日
とりあえずC君に習得できることを目標にすることになりました。初心者向けであることから言語名をChick(=ひよこ)にして仕様の検討を開始しました。決まった仕様は以下の通りです。
- main関数は不要
- 関数の定義は非インライン、インラインともにJSのfunctionキーワードを使ったもの風に
- セミコロンは任意にしていく方針
- 最初はコンパイラを書きやすいため必須に
- 変数定義時は
let使用 - リストは
let name[3] = [3, 1, 4,];というスタイルに - forやifはかなりRustに近い書き方
- 基本的な演算を実装
- 言語の根幹としての型を決定
- i8からu128までとf16からf128まで
- char型は人間にとっての1文字を表すように(「あ」をE3 81 81に分けずに扱う)
- short_char型は1バイトを表すように(u8とは出力時の挙動の違い)
詳細は仕様書を見てください。
この後字句解析を実装するのに欲しい型を実装して解散しました。
最後に
あと10分で寝る時間なのでこの辺でお暇させてください。