我是编程的初学者,对术语没有很好的了解。我想知道以C或C ++等编译语言编写的源代码是否被视为程序?如果没有,谁能解释为什么?
我是编程的初学者,对术语没有很好的了解。我想知道以C或C ++等编译语言编写的源代码是否被视为程序?如果没有,谁能解释为什么?
Answers:
请参阅Wikipedia上有关Program的条目:(我已添加了粗体)
计算机程序是指令的集合,这些指令在由计算机执行时执行特定的任务。计算机需要程序才能运行,并且通常在中央处理单元中执行程序的指令。
计算机程序通常由计算机程序员以编程语言编写。编译器可以从程序中以其人类可读的源代码形式获得机器代码,该机器代码由计算机可以直接执行的指令组成
因此,“程序”是计算机执行的指令集,“源代码”是这些指令的人类可读版本。
是否存在取决于上下文。这样想吧。我忘了这个概念的正式名称是什么,但是有一种语言理论说单词具有的含义不是描述什么是什么,而是描述什么不是。一个红色的苹果不是红色的,因为它是红色,而是因为它不是蓝色,不是绿色等。忽略这是否正确,只是假设它是一秒钟,然后考虑一下该问题。
因此,当我们想到这个概念时,我们可以将源代码与房屋设计图进行比较。如果您正在查看其他一叠蓝图中的蓝图,并询问“这是一所房子”,而其他蓝图是用于商业建筑,桥梁等的,那么答案是肯定的。因为该蓝图不能代表所有其他东西,而房屋方面则是将它与其他蓝图区分开的地方。
但是,显然,房屋的蓝图与您可以站立的用木头和石膏板制成的实际房屋并不相同。在某些情况下,该蓝图和实际房屋之间的差异很有意义。计划和可交付成果之间存在差异。
用编译语言编写的程序源代码就像使用蓝图一样,如果将其与库,内核模块等进行比较,则源代码和程序在概念上是相同的。但是,如果您正在研究如何编译,设计和部署软件,则两者并不相同。再次,计划和可交付成果之间存在差异。
tl; dr:有时候什么是什么,它代表什么,被认为是同一件事,但其他时候则不是。
源代码是原始代码行(由人类编写)的总称。非翻译的其他类型的代码可以通过翻译或其他程序来创建。
知识产权范围更广,可以包括源代码和其他代码或数据。
程序的完整性与其他代码(源代码或其他代码)不同。程序是足够完整的代码,可以运行(或打算运行)。并非所有代码(源代码或其他代码)都具有足够的完整性来运行。例如,库旨在与其他代码组合并由其他代码使用,因此通常不会被认为是程序,因为它们无法运行(本来不是要运行)。
完整性有时意味着有一个main
,操作系统将其用作程序的入口点。
一般来说,当程序运行时,称为进程。
的源代码是优选的在其上的软件的形式人类软件开发者的工作。洞察力在于软件开发是一个社会过程,因此源代码是一个社会概念。您主要为人类(您的开发人员,甚至您自己在同一程序上工作了几个月)编写源代码,而不是为计算机编写代码。对于用C编码的程序,通常是(但不总是).c
C文件和.h
头文件,但Makefile也是源代码。但是有时会使用元编程技术:某些程序生成 C代码,然后输入该生成器的代码被视为源代码(即使该生成器的输出是C代码)。两个例子:您可以使用一些解析器生成器(例如GNU bison)来解析问题,然后该.y
生成器的输入文件就是源代码。或者,您可以编写一个小的awk或gawk脚本,以从某些sqlite数据库中提取某些数据,这些数据将转换为例如enum
某些生成的标头中的大声明;那么该数据库将包含源代码!
一个计算机程序,在对比度运行它涉及到计算机。它通常是通过将一些源代码(以某种编程语言编写的,并且是在技术文档中用英语编写的规范 - 参见C11的n1570草案-而非软件工具!)编译成二进制可执行文件而获得的。
另请阅读有关免费软件的信息。深入研究现有自由软件项目的源代码(请参阅github或sourceforge以找到一些源代码)。