compiler-construction - 图灵完备语言中可能的最小编译器?

标签 compiler-construction brainfuck esoteric-languages

Brainfuck 以其极小的编译器而闻名。我有一个非常小的设备,它的数据中可能连最小的brainfuck 编译器都装不下。有没有一种深奥的编程语言,它的编译器比brainfuck 还要小,而且是一种图灵完备的语言?
这已经过时了,但请随时提出您自己的答案,我会检查

最佳答案

我查看了 Brainfuck 编译器的大小(原始格式约为 240 字节),我怀疑您会变得更小,它旨在生成尽可能小的编译器(诚然是很多年前)。

虽然,来自 Wikipedia :

Except for its two I/O commands, brainfuck is a minor variation of the formal programming language P′′ created by Corrado Böhm in 1964. In fact, using six symbols equivalent to the respective brainfuck commands +, -, <, >, [, ], Böhm provided an explicit program for each of the basic functions that together serve to compute any computable function. So in a very real sense, the first "brainfuck" programs appear in Böhm's 1964 paper – and they were programs sufficient to prove Turing-completeness.



来自 P'' page :

P′′ was the first "GOTO-less" imperative structured programming language to be proven Turing-complete.



因此,用于 P'' 的编译器或等效的 Brainfuck 的修改版本会更小并且仍然完整。

但是,如果我不遵循问题的精神,那么设备 native 指令集将是图灵完备的。汇编器可能太大了,但您可以直接将操作码值写入可执行文件或“编译”为可执行文件的文本文件。那个“编译器”可能会更小。尽管它不是任何真正意义上的编译器,因此没有遵循问题的精神。

这是一个现实世界的问题吗?如果您没有编译器的空间,那么您的源代码和二进制文件将去哪里?

相关问题:What is the *conceptually* smallest *compiler* that can compile itself?

关于compiler-construction - 图灵完备语言中可能的最小编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22875964/

相关文章:

c - Java-Python 翻译器中求和运算的语法问题

java - 为什么这段 Java 代码的行为与这段 C 代码不同?

virtual-machine - 如果我的 malbolge 程序只包含 1 条指令,应该用什么来填充内存?

keyboard - CTRL+M 和 Enter 一样吗?

ubuntu - 将 optirun 和 g++ 设置为编译器以在 Ubuntu 中编译 OpenCL

haskell - 如何从 haskell 的 ghc 生成 Intel 汇编语法?

c# - 如何允许我的 .net 程序在运行时编译 C# 代码?

c - 在 Brainf*ck 中处理循环

brainfuck - Brainfuck 中如何使用逗号命令?

python - 用 Python 优化 Deadfish 常数计算器