位於 https://gitlab.com/the-language/the-language
- 标识
TheLanguage
https://the-language.gitlab.io/the-language/
可以用./builder-containers/docker/run.sh或者zaoqi/the-language-builder以在Docker中编译。
Docker Hub: https://hub.docker.com/r/zaoqi/the-language-builder
- 編譯
./make.sh - 測試
./test.sh
見core/pure/README.md或builder-containers/docker/Dockerfile
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
precomposeunicode = true
[remote "origin"]
url = [email protected]:the-language/the-language.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = [email protected]:the-language/the-language.git
pushurl = [email protected]:the-language/the-language.git
[branch "master"]
remote = origin
merge = refs/heads/master
- 使
能否實現一個總是停機的解釋器成為未解決的數學問題 ...
- 直覺上還能描述所有可计算算法。但和Turing机不等价。
值:頂層是類似consnull等東西的表達式。值的定義同The Little Typer一書中的定義。解釋沒有值:允許解釋器解釋一部分或全部沒有值的表達式爲某種錯誤(錯誤是一種值)。要求儘量減小(這個儘量還沒被精確定義)被解釋沒有值的表達式的大小。沒有值:解釋沒有值任意次以後,如果不繼續解釋沒有值,不能化簡爲任何值的表達式。含有有沒有值無法判定的情況。- 一次
解釋沒有值可以解釋任意個表達式。 - 暫時沒有不可判定的情況。上面的"含有
有沒有值無法判定的情況。"暫時沒有用處。 - 每一層
eval都沒有判定這個eval本身一個表達式是否沒有值的函數。只判定被解釋的表達式在某個狀態下(解釋沒有值任意次以後)是否沒有值。
- 一個
表達式可能有多個合理的值。比如(letrec ([x (car y)] [y (car x)]) x)