C++与其他编程语言的关系

  读者可能很熟悉编程和编程语言的基本概念,下面从普遍的意义上简要描述一下本书将用到的一些术语,并阐述C++与其他编程语言的关系。

  无论使用哪种编程语言,编写出来的程序都是由各个指令构成的。这些指令就称为源代码,存储在磁盘的源文件中。目前有许多编程语言,每一种语言都有其优缺点,都有其吹捧者和批评者。除了C++之外,读者一定还听说过BASIC、COBOL、FORTRAN、PASCAL和C等编程语言。

  例如,FORTRAN语言就有将近40年的历史了,目前仍广泛应用于科学和工程计算中,但C++和其他语言也逐渐进入这些领域。COBOL语言专门用于商务数据处理应用程序,它的历史几乎与FORTRAN语言一样长。目前几乎不用COBOL编写新代码,而是多年前编写的大量代码仍在使用。C++也逐渐成为许多商务数据处理程序的可选语言。

  C是C++的前身,因为这两种语言有许多共同的语法和功能。实际上,C编程语言是C++的一个子集。但是,C++在发展过程中进行了许多扩展和改进,使之成为一种成熟的语言,而且,C++比功能更强大,用途更广泛。

  1.1.1 解释性的程序和编译性的程序的执行过程

  编程语言的目的是,与计算机可以执行的程序相比,能够更简单地描述希望计算机执行的动作。计算机只能执行包含机器指令(也称为机器代码)的程序,不能直接执行我们编写的程序。用前面提到的语言编写的程序基本上有两种执行方式,在大多数情况下,一种语言会选择其中一种执行方式。例如,用BASIC语言编写的程序通常是解释性的,也就是说,另一个称为解释器的程序会检查BASIC源代码,确定该程序要做什么,再让计算机完成这些动作。见图1-1。


  图 1-1

  而C++是一种编译语言。在执行C++程序之前,必须用另一个程序(即编译器)把它转换为机器语言。编译器会检查C++程序,并生成机器指令,以执行源代码指定的动作。当然,解释和编译都不像这里描述的那样简单,但其工作原理就是这样。

  使用解释性语言,执行过程是间接的,也就是说,每次执行程序时,都需要确定源代码的意图。因此,这种语言比编译语言的对应程序的执行速度慢得多,有时要慢100倍。任何一种语言要么是解释性的,要么是编译性的,这通常由该语言的设计和用途来决定。

  这个规则的一个例外是Java,它是一种相当新的语言,它具有C++的许多特性。由于Java主要用于在不同计算机之间移植以及用在Internet上,所以它基本上是一种解释性的语言。尽管如此,还有一种just-in-time编译器可以在执行过程中,为Java源代码生成对应的机器码,从而大大提高了执行速度。

  1.1.2 库

  每次编写程序时,如果总是要从头开始编写,就相当烦琐。在许多程序中,常常需要某种相同的功能,例如从键盘上输入数据,或在屏幕上显示信息。为了解决这个问题,编程语言提供了大量预先编写好的代码,以执行标准的输入输出操作,这样就不必重新编写这些代码了。

  可用于任意程序的标准代码都保存在一个库中。编程语言附带的库跟语言本身一样重要,因为库的质量和使用范围对完成某一编程任务所需的时间有非常大的影响

时间: 2025-01-25 12:28:54

C++与其他编程语言的关系的相关文章

哪种编程语言的影响力最大?

就编程语言的相对重要性,如果要你来给评级,你会怎么评?恐怖大多数开发者都会说,明显就是"他们的"编程语言是最好的,并且是最重要的.如果你想从更为科学的角度看这个问题,那你就要来看看这张展示各编程语言直接关系的交互式图. 编程语言影响力关系网 提示:下面这张截图来自 Ramio Gómez 的『编程语言影响力关系网』,这个交互图可以耗费你整天时间去探索,并会让很多人会大声发出惊叹,"怎么 LISP 的影响力居然还超过了 SQL 啊?" 译注:Ramio Gómez 是

自动化基础普及之selenium是啥?

Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍.   Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? RC 和 Webdriver 是啥关系? Webdriver 和编程语言啥关系? Selenium 能并行执行脚本嘛? Selenium 能做移动端自动化么?   这里虫师用简单方式,告诉你,他们错综复杂的关系.理顺了它们之间的关系才能真正使用它.     Selenium 是什么?   Sel

小谈UI自动化测试

我发现很多人,包括论坛上的网友,还有很多身边的同事都对UI自动化充满了一些恐惧感,从而不敢触及它.当然也有一定的原因是觉得UI自动化没太深的技术含量,这也是我讨厌UI自动化的唯一原因.但是,一旦让这些人去做UI自动化的话,是很难做好的,因为UI自动化需要一定的经验,而我个人认为一年的经验,一个正规的项目应该都能具备编写良好UI自动化测试的能力.因此,对于后来的人,我想把UI自动化关键的几条再谈一谈,UI自动化确实没什么技术含量,你掌握了以下几点也能成为一个小专家了. 1. 用高级语言编写自动化程

SQL数据库的终结?

第一部分 SQL 的发展起始于 E.F.Codd 博士1970年六月发表于计算机协会的"通信"上的一篇论文, "大型共享数据库的关系模型".当时他和他的在IBM工作的同事 Donald Chamberlin 和 Raymond Boyce 正在研究一种查询语言(最初叫做SQUARE, Specifying Queries As RelationalExpressions 的首字母缩写),并于1974年以论文"SEQUEL:A Structured Engl

详解直接插入排序算法与相关的Java版代码实现_java

直接插入排序 直接插入排序的思路很容易理解,它是这样的: 1.把待排序的数组分成已排序和未排序两部分,初始的时候把第一个元素认为是已排好序的. 2.从第二个元素开始,在已排好序的子数组中寻找到该元素合适的位置并插入该位置. 3.重复上述过程直到最后一个元素被插入有序子数组中. 4.排序完成. 示例:思路很简单,但代码并非像冒泡排序那么好写.首先,如何判断合适的位置?大于等于左边.小于等于右边?不行,很多边界条件需要考虑,而且判断次数太多.其次,数组中插入元素,必然需要移动大量元素,如何控制它们的

有人用c#做过单片机烧写软件吗

问题描述 现在要用c#作一个单片机烧写hex文件的软件有大婶写过吗求指导 解决方案 解决方案二:写串口就行吧解决方案三:看你的烧录设备的指令手册.跟编程语言没有关系,就算是纯粹解释性编程语言javascript.basic(不是指vb.net)也一样可以写这种程序.主要还是看懂指令.如果看不懂,那就无法自己做,而只能"买".我以前接触过一个自称编程好几年的程序员,工作中许多代码靠"求.买"来的.又不想学习,那么掏钱是最实际的行为.

UML标准元素

标准元素是为约束,构造型和标签而预定义的关键字.它们代表通用效用的概念,这些通用效用没有足够的重要性或者与核心概念存在足够的差异用以包含在UML 核心概念中.它们和UML 核心概念的关系就如同内建的子例程库和一种编程语言的关系.它们不是核心语言的一部分,但它们是用户在使用这种语言时可以依赖的环境的一部分.列表中也包括了表示法关键字--出现在别的模型元素的符号上但代表的是内建模型元素而不是构造型的关键字.为关键字列出了表示法符号.1. 访问(access)(授权依赖的构造型)两个包之间的构造型依赖

自动化基础普及之selenium是什么?

Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍. Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? RC 和 Webdriver 是啥关系? Webdriver 和编程语言啥关系? Selenium 能并行执行脚本嘛? Selenium 能做移动端自动化么? 这里虫师用简单方式,告诉你,他们错综复杂的关系.理顺了它们之间的关系才能真正使用它. Selenium 是什么? Selenium 是web

《OOD启思录》目录—导读

版权声明OOD启思录Authorized translation from the English language edition, entitled OBJECT-ORIENTED DESIGN HEURISTICS (PAPERBACK), 1E, 9780321774965 by RIEL, ARTHUR J., published by Pearson Education, Inc, publishing as Addison-Wesley Professional, Copyrigh