什么是程序理解?(program comprehension?)

程序理解是程序员理解计算机程序源代码的能力。在计算机科学教学中,在学习所教计算机语言的机制和语法时,经常忽略对程序的理解。然而,编写可理解的代码是一种普遍的需要,不管它是用哪种计算机语言编写的。如果程序员编写了一个库或一段代码,但没有人能够确定它之后会做什么,那么代码背后的算法和逻辑很容易丢失。程序员无法破译自己的代码越来越普遍,因为代码往往写得不清楚,也不直观。。...
Program comprehension is the ability of a programmer to understand what a computer program's source code does.

程序理解是程序员理解计算机程序源代码的能力。在计算机科学教学中,在学习所教计算机语言的机制和语法时,经常忽略对程序的理解。然而,编写可理解的代码是一种普遍的需要,不管它是用哪种计算机语言编写的。如果程序员编写了一个库或一段代码,但没有人能够确定它之后会做什么,那么代码背后的算法和逻辑很容易丢失。程序员无法破译自己的代码越来越普遍,因为代码往往写得不清楚,也不直观。。

If a programmer writes a library or piece of code, but no one can determine what it does afterward, the algorithm and logic behind that code can easily be lost.

程序员可以使用两种主要策略来提高程序理解能力,每种策略都有自己的优缺点。第一种方法是在代码创建期间或之后向代码添加文档,第二种方法是在编写代码时强调其结构。这两种方法的结合对大多数程序员都有帮助,尽管有些代码生成器更喜欢一种策略而不是另一种策略。使用哪种方法是程序员个人偏好的问题,任何澄清代码的尝试都比没有要好得多。。

向代码中添加文档是这两种方法中比较简单的一种,如果做得好,对于不熟悉代码编写语言的程序员来说,这是一种非常有用的方法。大多数计算机语言都有特定的文档样式来帮助理解程序。如果代码文档写得很透彻,新程序员的第一步可以是阅读所有文档和注释,以了解程序是如何工作的,而不必阅读代码。程序员不必依赖于代码语法和机制,而是可以在纯文本中看到正在发生的事情,然后将文本与任何给定位置正在发生的事情精确地关联起来。然而,当向代码中添加文档时,程序员必须谨慎,因为太多的文档可能会造成混乱和干扰,而不是帮助。。

当编写着重于结构的代码时,程序员假定任何其他查看其代码的维护人员都将具有与之相当的语言语法和机制知识。有时,这是一个有效的假设,但并不总是可靠的。在很大程度上基于结构的程序理解是可能的,但是需要原程序员做更多的工作来简化它。必须严格遵循语言的机制和语法,以及所有的文体惯例,并且一切都必须一致。当以这种方式编写代码时,程序员必须始终意识到自己清楚的东西可能对另一个人不清楚。。

即使在编写代码时着眼于以后的程序理解,以后也可能需要额外的文档或结构修改。这是代码维护的自然部分,而不是程序员的失败。程序员的工作是尽可能多地预测理解问题,但并非所有问题都能被发现。

  • 发表于 2022-01-05 22:10
  • 阅读 ( 84 )
  • 分类:IT

你可能感兴趣的文章

源程序(source program)和目标程序(object program)的区别

...程序与目标程序的表格形式 5. 摘要 什么是源程序(source program)? 程序员用高级语言编写源程序。因此,它很容易被人类阅读。源程序通常包含有意义的变量名和有用的注释,以使其更具可读性。机器不能直接执行源程序。编译...

  • 发布于 2020-10-26 14:27
  • 阅读 ( 199 )

如何在python中使用列表理解

... 什么是列出python中的理解以及它是如何工作的(list comprehension in python and how does it work)? ...

  • 发布于 2021-03-11 10:55
  • 阅读 ( 588 )

编码(coding)和编程(programming)的区别

...建软件的一部分。这就是编程的关键所在。 什么是编程(programming)? 编程是指对机器或应用程序进行编程,使其在没有任何错误的情况下运行。编程是一个常用的术语,用来描述用一组指令来执行给料机的过程。简单地说,编程...

  • 发布于 2021-06-25 04:52
  • 阅读 ( 1228 )

翻译(translator)和程序设计语言中的解释器(interpreter in programming language)的区别

...、编程   什么是程序设计语言中的翻译器(a translator in programming language)? 翻译人员将程序从一种语言转换成另一种语言。有各种类型的翻译器,如编译器、解释器和汇编程序。编译器将整个高级语言源代码转换为机器代码。如...

  • 发布于 2021-06-30 18:15
  • 阅读 ( 372 )

标记语言(markup language)和程序设计语言(programming language)的区别

...XML解析器用于解析这些XHTML文档。 什么是程序设计语言(a programming language)? 编程语言是一种形式化语言,它包含一组用于创建软件程序的命令和语法。这些程序可以执行特定的任务。编程语言主要分为两部分。它们是高级语言...

  • 发布于 2021-07-01 02:50
  • 阅读 ( 642 )

系统流程图(system flowchart)和程序流程图(program flowchart)的区别

...用系统流程图来分析和设计系统。 什么是程序流程图(a program flowchart)? 一个完整的软件系统是多个程序的集合。程序流程图描述单个程序。在编写程序之前,绘制流程图并确定如何使用该程序解决任务是一种很好的做法。 Figure...

  • 发布于 2021-07-01 05:05
  • 阅读 ( 641 )

程序(program)和过程(process)的区别

...语 CPU、内核、操作系统、程序、进程 什么是一个程序(a program)? 程序是解释CPU应该执行的任务的指令集合。此外,在编写程序时遵循一个算法是很重要的,因为它可以提高程序的效率。此外,程序员是能够编写计算机程序的人...

  • 发布于 2021-07-01 10:37
  • 阅读 ( 622 )

函数式程序设计(functional programming)和面向对象程序设计(object oriented programming)的区别

...程、多态性、递归函数 什么是函数式程序设计(functional programming)? 函数式编程允许使用数学函数构建程序。换句话说,它将程序绑定为纯数学函数样式。使用函数式编程,开发人员可以将一个程序构建为单独数学函数的组合。...

  • 发布于 2021-07-01 17:38
  • 阅读 ( 902 )

源程序(source program)和目标程序(object program)的区别

...键术语 编译器,目标程序,源程序 什么是源程序(source program)? 源程序或源代码是由程序员编写的原始程序。它是基于文本的文档。在源程序中,程序员编写计算机应该执行的指令。他使用计算机编程语言如Java、C#.NET等编写这...

  • 发布于 2021-07-02 02:21
  • 阅读 ( 1006 )

忧虑(apprehension)和理解(comprehension)的区别

...握知识的精神状态上有所不同。忧虑(apprehension) vs. 理解(comprehension)理解与理解的区别在于,理解是指一个人没有掌握或掌握所谈论的某一主题的知识,无法对该主题作出任何判断,而理解是指一个人完全理解某一主题,并能很...

  • 发布于 2021-07-11 17:44
  • 阅读 ( 347 )
cfjnk7358
cfjnk7358

0 篇文章

相关推荐