Programming languages 编程语言复杂性
在语法和语义方面,是否有一个客观的方法来衡量编程语言的复杂性,而不是语言的使用复杂程度Programming languages 编程语言复杂性,programming-languages,complexity-theory,Programming Languages,Complexity Theory,在语法和语义方面,是否有一个客观的方法来衡量编程语言的复杂性,而不是语言的使用复杂程度 我读过很多主观的评论,但很少有严谨的分析。语言的复杂程度多少有点主观 另一方面,关于语言语义有多复杂的问题是可以回答的,但只有与其他语言进行比较时才能回答。然而,这些并不一定有用。例如,我会给SMALLATE语义复杂度为1和C++复杂度为9。然而,我敢打赌,你正在阅读的浏览器是书面的 C++中,SimalTalk。 < P>如果有这样一个客观的度量,它对于评估给定语言的效用或成本来说是非常无用的。它可以帮助您
我读过很多主观的评论,但很少有严谨的分析。语言的复杂程度多少有点主观 另一方面,关于语言语义有多复杂的问题是可以回答的,但只有与其他语言进行比较时才能回答。然而,这些并不一定有用。例如,我会给SMALLATE语义复杂度为1和C++复杂度为9。然而,我敢打赌,你正在阅读的浏览器是书面的
C++中,SimalTalk。 < P>如果有这样一个客观的度量,它对于评估给定语言的效用或成本来说是非常无用的。它可以帮助您排除空白或脑力操,但这也可以很容易地做到,而无需花费资源在这样一个客观的衡量标准上,主观地观察源代码,并意识到您永远不想认真地使用它
大多数语言都会有很多积极和消极的方面,你需要根据你试图达到的目标和需要满足的条件来权衡这些方面。我所见过的语言的最佳衡量标准是随机字符串成为有效程序的概率。Perl是一种在这个级别上排名很高的语言,Ada的排名相当低
这个度量的含义完全是另一个问题。我不清楚复杂性在应用于编程语言时是否是一个定义良好的术语 如果你所说的“客观”是指“定量”,你可以问这样的问题
- 明确的语法有多大
- 一个有效的yacc语法有多大
- 与使用相同元语言(编写解释器的语言)的其他语言的解释器相比,该语言的最简单解释器有多大?这一指标在某种程度上与Kolmogorov复杂性有关
除了出于好奇,我不清楚这个问题是否值得问,很难想象有用的答案 作为一般规则,语法、语义或实现越是动态和抽象,语言就越复杂(不要像您所说的那样使用) 因此,Java语言比C语言更复杂,因为:
我认为,如果你看一下正确性证明领域,你会发现对语义复杂性的更详细分析。像CSP这样的系统(在较小程度上,还有Lambda演算)被设计成可以通过分析进行处理。一种语言越接近于表达美国文化