1 个不稳定版本

0.0.1 2019年8月16日

#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)

无运行时依赖