我正在研究针对嵌入式设备(16KB左右的RAM)和低级系统编程(即内核模块)的lisp编译器的开发,这两者都需要复杂性保证和低级结构的访问。
即使我需要这些结构,我也不希望语言是“低级”,因为我想为用户提供仍然提供低级别保证的高级结构(即Lisp宏,支持方面)面向编程,逻辑或约束求解,以及功能范例等)。
我目前的思路是我需要:
我想知道我的推理是否合理 - 这样一个过程生成的代码是否能够在如此小的内存占用下运行?我不打算语言有一个运行时组件。
答案 0 :(得分:1)
Dale是C(/类C语言),但是用Lisp的语法和几个高级编译时功能(宏,类型推断,匿名函数,模块......)编写。没有什么会影响运行时间。)
PreScheme与从相反方向工作的目的地相同:它是Scheme的限制性方言,删除那些无法翻译的运行时功能1:1到C(例如continuation,一般尾调用,GC,运行时动态类型)。 PreScheme继续支持顶层的Scheme运行时功能,因为这可以移动到"编译时间"。 PreScheme是Scheme48的一部分,用于实现其运行时。
或者,如果主要关注的是空间但不一定是裸机性能,那么通常更容易将解释器缩小到非常小的尺寸; PICOBIT([1],[2])旨在以< 7Kb的速度运行,同时提供相当完整的Scheme实现。
答案 1 :(得分:0)