Compiler construction 对于缺少堆栈或内存分配的体系结构,最具表现力的编程语言是什么?

Compiler construction 对于缺少堆栈或内存分配的体系结构,最具表现力的编程语言是什么?,compiler-construction,embedded,abstract-syntax-tree,Compiler Construction,Embedded,Abstract Syntax Tree,我在一个拥有几个字节空闲RAM的专有序列器上工作;静态分配数百字节;8个寄存器,包括PC;无间接寻址(在C语言中为“指针”);没有堆叠 没有MOV指令:要将M移动到K,必须写入CLX A;orxm;STX K使依赖项解析或至少优化复杂化。许多操作仅在特定寄存器上工作:例如,32位右移在高位字中使用K,在低位字中使用M 因此,对我来说,嵌入式应用程序显然选择C是不可能的,因为不可能使用指针或函数调用。大多数高级编程语言都有算术表达式,因此这无助于缩小我们的选择范围 最重要的是绝对最小的代码大小,所

我在一个拥有几个字节空闲RAM的专有序列器上工作;静态分配数百字节;8个寄存器,包括PC;无间接寻址(在C语言中为“指针”);没有堆叠

没有
MOV
指令:要将
M
移动到
K
,必须写入
CLX A;orxm;STX K
使依赖项解析或至少优化复杂化。许多操作仅在特定寄存器上工作:例如,32位右移在高位字中使用
K
,在低位字中使用
M

因此,对我来说,嵌入式应用程序显然选择C是不可能的,因为不可能使用指针或函数调用。大多数高级编程语言都有算术表达式,因此这无助于缩小我们的选择范围

最重要的是绝对最小的代码大小,所以优化是关键

我倾向于将Lisp表达式编译为宏汇编程序的一种形式,因为程序员可以优化自己的高级操作,例如编写
XOR
指令


我相信这不是第一个有这种限制的项目;这在过去是如何解决的?

Fortran听起来像是可以针对该芯片进行调整的东西。你给出的细节越多,答案就越好。“没有间接寻址(在C语言中是“指针”);没有堆栈。”-如果有理由我会自愿辞职,那肯定是必须使用这样的设备。这个设备用于实现什么样的应用程序?它可以包含多少代码?它真的没有任何间接性吗?如果是商用设备,你可以告诉我们控制器的名称。高度专有的微功耗启发式@对不起,我很想去,但我可能已经说得太多了:)汇编程序。其他的一切都没有意义。