1 unstable release

0.0.1 Aug 16, 2019

#1684 in #language

AGPL-3.0-or-later

505KB
4K SLoC

The Language

pipeline status

位於 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.mdbuilder-containers/docker/Dockerfile

.git/config

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	precomposeunicode = true
[remote "origin"]
	url = git@gitlab.com:the-language/the-language.git
	fetch = +refs/heads/*:refs/remotes/origin/*
	pushurl = git@gitlab.com:the-language/the-language.git
	pushurl = git@github.com:the-language/the-language.git
[branch "master"]
	remote = origin
	merge = refs/heads/master

實驗性特性

  • 使能否實現一個總是停機的解釋器成為未解決的數學問題
  • ...

使能否實現一個總是停機的解釋器成為未解決的數學問題

  • 直覺上還能描述所有可计算算法。但和Turing机不等价。
  • :頂層是類似cons null等東西的表達式的定義同The Little Typer一書中的定義。
  • 解釋沒有值:允許解釋器解釋一部分或全部沒有值表達式爲某種錯誤錯誤是一種)。要求儘量減小(這個儘量還沒被精確定義)被解釋沒有值表達式的大小。
  • 沒有值解釋沒有值任意次以後,如果不繼續解釋沒有值,不能化簡爲任何表達式。含有有沒有值無法判定的情況。
  • 一次解釋沒有值可以解釋任意個表達式
  • 暫時沒有不可判定的情況。上面的"含有有沒有值無法判定的情況。"暫時沒有用處。
  • 每一層eval都沒有判定這個eval本身一個表達式是否沒有值的函數。只判定被解釋的表達式在某個狀態下(解釋沒有值任意次以後)是否沒有值

可以接受的後果

  • 一個表達式可能有多個合理的。比如(letrec ([x (car y)] [y (car x)]) x)

No runtime deps