【问题标题】:Is there a stackless and heapless programming language?有无堆栈和无堆的编程语言吗?
【发布时间】:2019-02-23 02:48:33
【问题描述】:

是否有一种既无堆栈又无堆的静态编译编程语言?

对于数据,这样的语言不会有内存分配的概念。相反,程序的内存需求将在编译时完全知道。

对于代码,不会有调用堆栈的概念。可能有函数,但它们会在每个调用站点内联。

我对具有某种实现形式的可​​移植语言或生成本机二进制文件的编译器特别感兴趣。

【问题讨论】:

    标签: stackless


    【解决方案1】:

    纯 x86 机器语言适合您的无堆栈和无堆约束(在实模式约束内)。可移植性是不可能的,除非编译器可以访问所有硬件 IO(内存位置)的 每个内存位置(此条件不包括所有动态接口,包括即插即用、USB 和 PCI/PCIE 总线)

    完全有可能在严格的硬件限制下创建这样的结构(每个设备都必须在启动时编译和分配,就像在 c64 或 Apple II 等旧计算机中一样),但 所有 功能必须预编译到操作系统中,就像在平台上运行的每个可能的程序一样。

    这不再是一个通用的计算平台。改为编写微控制器、GPU 或 ASIC 来解决任务。

    【讨论】:

    • 我猜对于系统调用,除了使用堆栈之外别无选择。但我想知道是否不可能在一种语言中强加所有约束并让它编译一个操作系统可以运行的常规可执行文件。
    猜你喜欢
    • 2016-02-29
    • 2011-05-06
    • 2012-04-05
    • 2013-11-05
    • 2010-10-22
    • 2013-11-05
    • 2015-12-30
    • 2011-08-24
    • 2015-05-12
    相关资源
    最近更新 更多