第一章 C++ 计算机语言

计算机语言是指人类与计算机之间通讯的语言,更准确的讲,应该是程序员对计算机下达的指令。人类的语言是双向沟通,计算机语言则是单向的指令输入。计算机内部所使用的由"0"和"1"组成的二进制数。早期的计算机语言就是计算机控制指令,每条指令为一组二进制数。不同类型的计算机有不同的计算机指令集,使用的二进制数也就不同。

备注:X86是微处理器(CPU)执行的计算机语言指令集,它是Intel通用计算机系列的指令集合,它定义了芯片的基本运算规则!我们个人电脑大部分属于X86平台。ARM不同于X86架构的复杂指令集(CISC),ARM是一种精简指令集(RISC)。ARM处理器适用于低功耗的移动通讯设备。我们的手机几乎都是基于ARM平台。不同平台上运行的程序是不一样的,如何垮平台成为程序开发的一个重点。

程序员使用一串由"0"和"1"组成的指令序列交给计算机执行,这种计算机能够识别的语言,称为机器语言。机器语言非常难于记忆和识别,于是人们就创造了高级语言。高级语言是一种独立于计算机硬件,面向过程或对象的语言。高级语言更接近于人类自然语言和数学语言!主流的高级语言包括有:C、C++、C#、Java、Python、PHP等等。

备注:TIOBE每月会更新一次开发语言使用排行榜,大家有时间可以看看。这些高级语言都有各自的特点,适用于不同的行业领域。计算机语言都是人们在遇到某一个行业领域的问题,使其更加快捷方便的解决而被创造出来的。虽然计算机语言原则上可以解决大部分的问题,但是它还是在特定的行业领域更加优秀一些。例如C/C++语言适用于底层硬件打交道,现在的物联网应用很多都是使用C/C++开发的。Java语言主要用于Web和企业级应用,因为它有很多开源的技术解决方案支持。另外,Java还可以用于安卓手机应用的开发!C#语言则是Windows平台桌面级应用开发的首选。在游戏开发领域,Unity引擎的脚本语言就是C#,而UE4引擎一般使用 C++语言。

高级语言不能被计算机直接识别,但可以用编译、解释两种方式执行。编译性语言只需编译一次就可以把源程序编译成机器语言,后面的执行无需重新编译,直接使用之前的编译结果就可以。因此其执行的效率比较高,但比较依赖编译器,因此跨平台性差一些。C/C++属于编译型语言。解释性语言源代码不能直接编译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。程序每次运行都要翻译成机器语言。运行效率一般相对比较低,依赖解释器,但跨平台性好一些。C#和Java属于解释性语言!

C/C++编译型语言在程序执行前有一个专门的编译过程,这个过程将源程序编译为计算机可执行的二进制文件,每次运行不需要进行重新编译。C/C++的编译过程可分为预编译,编译,链接三个重要步骤。编译过程就是将源代码转变为计算机可以执行的机器指令,简单理解就是将代码逐条翻译为机器指令即可。这个过程是由编译器完成的!C++编译器是一个与标准化C++高度兼容的编译环境。在Linux系统下有GCC编译器,而Windows下常用Microsoft Visual C++(VC编译器),当然还有其他开源的C++编译器!

.NET 框架是由微软开发的软件开发平台,其中最主要的两个组成部分是公共语言运行时 (CLR) 和框架类库 (FCL)。C#编程语言是为微软公司的.NET框架上的程序而设计的,它是一种由C和C++衍生出来的面向对象的编程语言。它使得程序员可以快速地编写各种基于.NET平台的应用程序。C#所开发的程序源代码并不是编译成能够直接在操作系统上执行的二进制机器语言,而是被编译成为中间代码,然后通过.NET框架的虚拟机(CLR)执行。

备注:我们一般使用Visual Studio来进行C++和C#语言的应用开发。Microsoft Visual Studio(简称VS)是微软公司的开发工具包系列产品,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。

Java语言中,JDK(Java Development Kit) 是Java开发工具包,它提供了Java的开发环境,还提供了编译器javac等工具,用于将 java 文件编译为class文件。JRE(Java Runtime Enviroment)是Java的运行环境,是运行Java程序所必须环境的集合,包括 Java 虚拟机、Java 平台核心类等等。JRE用于解析 class 文件使其得到运行。

备注:Java的集成开发工具比较多,例如Eclipse,NetBeans等等。Eclipse 是一个开放源码的项目,是著名的跨平台的自由集成开发环境(IDE),最初主要用来 Java 语言开发,后来通过安装不同的插件 Eclipse 可以支持不同的计算机语言,比如 C++ 和 Python 等开发工具。

C++语言是从C语言发展而来的,C++是C的一个超集。事实上,任何合法的C程序都是合法的C++程序,有时候两者经常混合在一起!标准的 C++ 由三个重要部分组成:
1.  核心语言,包括数据类型、变量/常量、控制结构、函数、类等等。
2.  C++标准库,提供了大量的函数,用于操作字符串、输入输出、文件等等。
3.  标准模板库(STL),提供了大量的方法,用于操作数据结构(堆、栈、树等)等等。

备注:我们的学习都是从第一部分“核心语言”开始的,不仅C++语言,其他的Java或C#语言也都是如此,而且这些部分在所有高级语言中共性很大,甚至关键字名称也都一样。至于后期的C++标准库和模板库都是根据实际的使用情况再进一步学习,其他高级语言的学习路径也是如此。因此,大家只要熟悉了一门语言后,再去学习另一门语言,会是很轻松的一件事!幸运的是,其他的语言(C#和Java)相比C++语言来讲,还是比较简单的!

最后讲两个概念,一个是SDK,一个是API。我们使用高级语言进行程序开发的时候,基本不接触底层的代码实现,高级语言已经帮我们将这些底层基础操作完成,并通过API的形式开放给我们使用。API(Application Programming Interface)就是应用程序接口,具体的理解就是一些类和函数,这些类和函数可以帮助我们实现一些功能。例如C++中的fopen用于打开硬盘上的一个文件,并返回该文件对象,我们不需要知道它是如何打开这个文件的,只需要使用返回的文件对象对这个文件操作即可。高级语言提供的这些类和函数,都会一起打包到SDK中,因此我们需要去官方下载并安装SDK。SDK(Software Development Kit)就是软件开发工具包,.NET中的fcl和Java中的jdk就是软件开发工具包。当然,像Visual Studio这种集成开发环境,他们可以帮我们一起安装SDK和解释器。学习语言的过程,就是我们一步一步熟悉其语言API的过程。另外,还有一些构建在语言之上的SDK,用于实现其他方面的功能,例如DirectX就是微软的多媒体编程接口,它主要用于游戏开发。同样的,我们也要安装DirectX的SDK以及学习其API。
 

备注:这是我们游戏开发系列教程的第一个课程,主要是编程语言的基础学习,优先学习C++编程语言,然后进行C#语言,最后才是Java语言,紧接着就是使用C++和DirectX来介绍游戏开发中的一些基础理论知识。我们游戏开发系列教程的第二个课程是Unity游戏引擎的学习。课程中如果有一些错误的地方,请大家留言指正,感激不尽!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咆哮的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值