後輩がRustで言語を実装していた話


後輩の@maikiichanが言語を作っていた。
仕様や動機など、聞いたことをまとめた。

lisp-by-rust

これはなに?

Lisp風言語のRust実装。

名前は?

考えるのが面倒、とのこと

デプロイ

TravisCIを使い、GitHubにあるtrustのテンプレートを利用して、
CLI上でタグを付けるコマンドを打つだけで自動的にリリースしてくれる環境にした。後述の参考記事にはなかった独自の部分。
設定がちょっと大変だったが、超便利。

具体的には、

  • デプロイ
  • 各環境ごとのバイナリファイル自動生成
  • /releases配下に配置

仕様

  • 数値計算
  • 関数定義
  • 変数使える
  • ファイルからの読み込み可能

使い方

実行ファイルを使う場合

  1. リリースページから、環境に合ったファイルをダウンロード(ex. Mac環境の場合はx86_64-apple-darwin.tar.gz
  2. 解凍して実行ファイルから起動する

こんな感じで計算できる。
演算子を最初に書く、美しい「前置形式」。

クローンする場合

Rustの実行環境が必要:はじめる

起動

CLI上で叩く

cargo run

ファイル読み込み

runコマンドの後にファイルパスを指定すると、ファイルを読み込んで実行できる

cargo run /path/to/file

作った動機

できないこと

  • 文字列を結合すると落ちる
  • 文字列は泥臭い実装が必要で、それをしたくない+現状のコードの倍の量になるので省いた

参考文献