好的开发语言与好的工程化软件[外文翻译].docVIP

好的开发语言与好的工程化软件[外文翻译].doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
好的开发语言与好的工程化软件[外文翻译]

英文翻译 中文: 不管受多么重的外部影响,程序员最终还是能够直接或间接地确定哪些语言可以保留下来,哪些则应该被淘汰。我们可以提出很多的理由去解释:为什么程序员喜欢一种语言而不喜欢另外一种语言。让我们分析一下其中的一些缘由。 (1)清晰、简单和单一。好的开发语言需要提供构思算法的概念框架和表达这些算法的方法。它远在具体编写代码阶段之前就应该对程序员起到辅助作用。它应该提供在设计算法的时候用作原语的清晰、简单和单一的一组概念。在这一阶段的末尾,希望能够会使不同的概念数量达到最少,并且配有尽可能的简单和规则的用于这些原语组合的规则。我们称这种特性为概念的完整性。 开发语言的语法会影响到它编写、测试和以后的理解以及修改程序的难易程度。这里的中心问题就是程序的可读性。特别精简的或者深奥的语法通常使得程序很容易被编写(对有经验的程序员来说)但是当以后必须修改它的时候却又很难读。APL程序通常是很深奥的,以至于这种程序的设计者在完成程序设计的几个月以后都不能够轻易地对其解释。很多的语言含有读不懂的语法结构,形成的原因是两句几乎相同的语句实际上却是表达了根本不相同的事情。例如,在SNOBOL4语句中空格运算符,它的含义与空格本来的意义就相差很远。好的开发语言应该具有意思不同,其语法结构看起来也不同的特点,也就是语义不同,应该体现在语言的语法上。 (2)正交性,正交性是指能够将一种语言的各种特性,组合到所有可能的组合中的一种特性,而每一种组合都是有意义的。例如,假设一种语言,有一个能够产生一个值的表达式,并且能够提供计算一个表达式运算结果是真还是假的条件语句。如果这种语言的这两种特性,即表达式和条件语句,当任合一个表达式能够在该条件语句中使用(并计算)时,那么它们是正交的。 假如当一种语言具有正交特性时,那么这种语言是很容易学习的,并且也容易编写程序,因为这里只有少数的例外和特殊的情况需要记忆。正交性的负面影响是程序经常能够无差错的通过编译,尽管它还有在逻辑上不相关的或者执行效率特别低的组合特性。由于有这样一些不利的因素,作为语言设计的一种特性,正交性一直是有争议的。因此有些人喜欢它,有些不喜欢它。 (3)应用的自然性。开发语言同样是需要语法的,如果使用得当就能够将程序结构反映到该算法的基本逻辑结构上。在理想的情况下,可以将这样的程序设计直接的翻译成反映该算法结构的相应的程序语句。例如顺序算法、并发算法和逻辑算法等等,这些都在语言当中有由程序表达的不同的自然结构。 好的开发语言应该为要解决的问题提供相应的数据结构、操作、控制结构和自然语法。程序语言繁衍的主要原因之一就正是这种自然的需求。比如特别的适合于某一种应用类型的语言大大地简化了在这个领域中单个程序的制作。Prolog语言偏重于专用特性,C++是面向对象的设计语言,是第Ⅱ部分中的两种语言,它们带有很明显的特别应用类型倾向。 (4)对抽象的支持。对一个应用来讲,即使是最自然的程序设计语言,在抽象数据结构与解决问题的操作之间,以及具体的原始数据结构与构筑语言在内的操作之间,仍然存在着本质上的差异。例如,C可能是大学中用于编制班级调度程序的合适语言,但是有关“学生”、“班级”、“上课教室”抽象数据结构和“安排一个学生到一个教室”,“在一个上课教室安排一个班级”等等这些自然的应用,C就不能够直接支持了。 (5)易于程序的检查。用一种语言编写的程序的可靠性总是需要关注的核心问题。虽然有很多技术能够检验程序正确地完成了所要求的功能;证明一个程序的正确性可以用正式的检验方法;也可以用手工读和查看程序文本非正式地证明其正确性;也可以用输入测试数据,执行程序并且对照规范说明去检查输出结果来测试等等,但是对于大型程序,经常会综合的使用这些方法去检验。一个让检验程序困难的语言,和那些使编程更容易的有更多特性的语言相比,在使用的时候会有更多的麻烦。语义和语法结构的简单性是使程序检验简单化的一个主要方面。 (6)编程的环境。一种开发语言的技术结构仅仅是有效地使用这一语言的一个方面。在一个合适的程序设计的环境,技术上稍差的语言,和没有足够外部支持的更强的语言比起来,反而更加容易的被使用。程序设计环境应该包含一个长的因素表,在这个表中,好的开发语言在可靠性、有效性和提供良好文档方面的有效性必须列在该表的前面。订制到该语言中的专用编辑和测试包能够大大加速程序的制作和测试过程。程序的多种版本的维护和修改工具,能够让大型程序的编制工作变的更加简单。 (7)程序的可移植性。很多程序设计课题的一个重要指标,是从开发的计算机上将最终的程序移植到其他计算机系统上的可移植性。广泛可用的语言和该语言的定义与具体机器特性无关,形成了可移植程序的有用基础。Ada、Fortran、C和Pascal都有允许移植要完成的应用程序的标准化定义。另外

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档