後輩がRustで言語を実装していた話
後輩の@maikiichanが言語を作っていた。
仕様や動機など、聞いたことをまとめた。
lisp-by-rust
これはなに?
Lisp風言語のRust実装。
名前は?
考えるのが面倒、とのこと
デプロイ
TravisCIを使い、GitHubにあるtrustのテンプレートを利用して、
CLI上でタグを付けるコマンドを打つだけで自動的にリリースしてくれる環境にした。後述の参考記事にはなかった独自の部分。
設定がちょっと大変だったが、超便利。
具体的には、
- デプロイ
- 各環境ごとのバイナリファイル自動生成
-
/releases
配下に配置
仕様
- 数値計算
- 関数定義
- 変数使える
- ファイルからの読み込み可能
使い方
実行ファイルを使う場合
-
リリースページから、環境に合ったファイルをダウンロード(ex. Mac環境の場合は
x86_64-apple-darwin.tar.gz
)
- 解凍して実行ファイルから起動する
実行ファイルを使う場合
-
リリースページから、環境に合ったファイルをダウンロード(ex. Mac環境の場合は
x86_64-apple-darwin.tar.gz
) - 解凍して実行ファイルから起動する
こんな感じで計算できる。
演算子を最初に書く、美しい「前置形式」。
クローンする場合
Rustの実行環境が必要:はじめる
起動
CLI上で叩く
cargo run
ファイル読み込み
runコマンドの後にファイルパスを指定すると、ファイルを読み込んで実行できる
cargo run /path/to/file
作った動機
-
LISP in Two Days with Rustの記事を見て、自分でもやってみた。
できないこと
- 文字列を結合すると落ちる
- 文字列は泥臭い実装が必要で、それをしたくない+現状のコードの倍の量になるので省いた
参考文献
- 文字列を結合すると落ちる
- 文字列は泥臭い実装が必要で、それをしたくない+現状のコードの倍の量になるので省いた
参考文献
Author And Source
この問題について(後輩がRustで言語を実装していた話), 我々は、より多くの情報をここで見つけました https://qiita.com/yama-t/items/06ea07e1d2095235d277著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .