我经常读到一些编程语言比别人清楚,我问自己几次是否有测量,以设计语言的清晰客观的方式,给定一个抽象语法,具体语法清晰,人类尽可能友好。也许存在某种设计模式为目的?

在短:如何能够实现语法的最大清晰度?知道的任何方式来量化一个语言的“清晰度”或“表现力”?

有意义的尝试来测量这些方面?

感谢。

有帮助吗?

解决方案

我听到这句话太多次在不同的语言不小心扔了,不同的人会根据不同的条件选择不同的语言。

漂亮的代码,松本行弘(Ruby的设计师)让多少简单这是一个争论写在Ruby的Hello World程序比在Java中。虽然我不认为这个例子是为了做大规模,笔者的观点是,你必须添加到您的代码克鲁夫特的金额反映在理解写在该语言编写的程序的deficulty。也就是说,少分心,你得到的,更多的“可读性”的程序。

现在,在我的经验,优秀的程序员写在他们编写的所有语言代码清晰的,即使是更清晰地语言,他们都比较熟悉。作者的才华,以及他在lenguage最终经验的广度矮化语言本身的清晰度或表现。

要考虑的另一点是可用的库的量和这些API的质量。如果你有少写“支持代码”来完成工作,那么它可能产生的程序更清晰,因为它似乎更开门见山。

其他提示

目前已在所谓的“自然的编程”这可能是您感兴趣的一些研究:

http://www.cs.cmu.edu/~NatProg/index html的

他们试图设计语言来满足,而不是试图以符合人们什么是最简单的一台计算机的人的期望。他们正在使其基于实验。比如学习有多少人带回梨果实从一箱,当你指导他们“带回来的东西是不是一个苹果或梨”。 (我还没有自己的成绩保持了,但它听起来像一个有前途的项目。)

不过,“清晰度”和“表现”是模糊的东西来衡量。当然也有研究里面做的对彼此语言定量测量,像计算机语言基准游戏 。有些人在那场比赛中提供的解决方案中获得的数据和图表的趋势,如“代码大小与性能”:

HTTP://blog.gmarceau .qc.ca / 2009/05 /速度大小和 - 可靠性 - of.html

您也许能够做出基于趋势的通用语言,代码长度才能有效地执行既定任务的一些基础指标摇摇欲坠的命题。但此时你牵制什么“清晰度”和“达”是相当主观的概念。 (我偏向于认为较短的程序,做同样的工作速度往往更加清晰,但也有许多反例。)

所以我说,在没有明确的目标对象与您可以做可用性研究与考试科目,你会不会作出有关语言概括做多这类指标的要好得多。

(注:我喜欢雷博尔和我认为这是令人难以置信的清晰和表达的能力。 ..但只有当你使用它涉及开发DSL方言,你去一个特定的方式,这是没有办法的办法,当他们编程很多人认为。但是!)

我不觉得有什么。清晰度是主观的,和设计模式是不是一种语言(实际上,设计图案通常天生规避一种语言的限制)的清楚的良好量度。

有些人喜欢丰富而简洁的语义(如perl的)语言,并且不介意使用的符号,而其他更喜欢语法类似于自然语言,如您似乎对计算机说话(如超卡)并且不介意冗长或含混。

像这样的问题通常导致迂腐答案。

语言是一样的工具。

它们是建立以适应特定的目的。逻辑编程语言解决在比将面向对象的程序的更优雅的方式的某些问题。类似地,许多主要流溶液很容易通过一个典型的面向对象或过程语言来完成。

气质和工具用户的其它因素,在这种情况下程序员也很重要。有些人已经取得了在Perl漂亮的解决方案,但它一直看起来像黑魔法我。我更喜欢Python的结构简单。对于一些人来说的使用空白的空间一直恶劣。

这将是最好的一个非常主观评价,如果有可以是一个语言清晰度和表现的评估。

如何以往任何时候都清楚地表明是在语言代码的生产财富。像brainfuck一些语言,而Python和Ruby等已得到普及并没有被采纳。虽然,这些和许多因素只能是一个指标。有些语言,尽管具有良好的结构可能找不到多少考生。

网络效果也影响语言通过。

我觉得LOLCODE是他们所有的最易懂的语言:

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
    UP VAR!!1
    VISIBLE VAR
    IZ VAR BIGGER THAN 10? KTHXBYE
IM OUTTA YR LOOP
KTHXBYE

测量一种语言的易懂性并不重要,重要的测量程序员的可理解性。

您也可以看看这本书“概念的编程语言”的最新版,由R. W. Sebesta。有一个在这本书(我不记得确切章1或2)讨论的标准来评估一个编程语言的篇章。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top