quartz-research-note/content/mimiumグローバル環境評価について.md

33 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2024-07-23 14:42
---
#mimium #memo
本当は関数の呼び出しをグローバル環境で許可するのはだるいのでやりたくないが、利便性を考えると欲しい
そうすると、あらゆるグローバルに定義された変数を参照する関数がクロージャになってしまう
グローバル環境で確保される変数の領域だけは別扱いにするべき?
importとか考え出したらグローバル環境は特別あつかいした方が良さそうだけど、現状では別にいいのか
---
## 「弱い正規化」を導入しよう
IFCで発表した操作的意味論では、delayやfeedのステップごとに実行までを定義した。
しかし、delayとfeedをそれ以上簡約しない値だと捉えると、ラムダを全部評価すれば正規系として[[Faust]]のSignal APIに変換できる形になる。
また、それに加えて入出力で関数をパラメーターに取ったり返却するものだけをあらかじめ簡約すれば、それを命令型に変換した時に可読性をキープすることもできるCコードにするとか
VMでクロージャを評価した結果が関数クロージャのインスタンスだった場合、それをラムダに戻すことは可能か upvalueで名前の情報失ってるから無理か