【发布时间】:2011-08-20 23:58:58
【问题描述】:
这可能是一个非常奇怪的问题,而且确实如此。我对如何用传统方法制作编程语言不太熟悉,所以我想知道,是否可以设计一种无语法的编程语言?这意味着任何输入都是有效的并执行一定的计算,并且相同的输入总是会做同样的事情。不会出现语法错误(允许出现逻辑和运行时错误,程序可能会崩溃,进行随机计算等)。
我之所以想到这一点,是因为据我所知,遗传学基本上就是这样。
编辑: 我认为存在一些误解。无语法只是意味着所有输入都将计算,解释器/编译程序将遵循特定的指令集,无论它可能是随机的。
还必须符合每个输入只有 1 个且只有 1 个输出的事实。有诸如语法错误之类的东西违反了该规则。
Edit 2 很多人都对语法部分束手无策。忘记语法,关注任何输入都会产生 UNIQUE 输出这一事实。
【问题讨论】:
-
Perl,当然! (我开玩笑,我开玩笑。)
-
任何(和所有)机器码都有效吗?或者有些人会用“不计算”来吐回。请记住,运行时和逻辑错误不同于语法错误。
-
@ultimatebuster:谁会给出“不计算”错误?机器代码下面没有底层。好吧,除了 CPU 微码,但它会继续为任何输入做任何事情(甚至是奇怪的事情)。
-
我知道你从哪里来,要求每个唯一输入都有唯一输出,但这太严格了:在一个完整的语言中,有无数种方法来计算给定的结果。不过,我不完全确定如何阐明真正的需求。
-
人们对语法部分“束手无策”,因为这就是你问的问题!是的,有一些方法可以将输入映射到输出 s.t.每个输入都有一个唯一的输出,每个输出对应一个特定的输入。此类映射称为 bijective functions 或简称为 bijections。然而,该特征对于将某物称为“语言”既非必要也不充分。
标签: programming-languages computer-science theory genetics