一 计算机语言
1. 计算机的基本构造
为了更好地学习计算机语言,在此之前,让我们先来看看下图,粗略地了解一下计算机内部的构造吧。
图1 图2
如图2所示,计算机的基本结构可分为五大部分,输入设备,控制器,运算器,存储器,输出设备。其中,运算器与控制器合称为CPU,即中央处理器。
那么实际中,它们是如何构成的呢?让我们回过头看看图1,也就能大致了解了。
(1)输入设备
输入设备即是将字符,原始数据,控制指令,采集数据等信息以计算机可辨识的方式传递到计算机内部的设备,比如图1中的键盘,鼠标,话筒等。
(2)控制器
控制器可说是整个计算机的中枢神经,它指挥和协调计算机各个部件之间的运转工作,让计算机按照人们预设的步骤执行特定的任务,被嵌套在图1中的主机箱内。
(3)运算器
计算机中执行各种算术或逻辑运算操作的部件,除了加、减、乘、除等四则运算的基本操作,以及与、或、非、异或等逻辑操作外,还有移位,传送和比较等其他数据操作,也被嵌套在图1中的主机箱内。
(4)存储器
用于保存和记录信息的设备,其数据以二进制的形式存储,按用途可分为内存和辅助存储设备(外存),其中内存主要存储正在执行的指令与数据,断电即会丢失,比如RAM,FIFO等;而外存则相反,主要存储需长期保存的信息,如磁盘,光盘等,这些设备同样被嵌套在图1的主机箱中,不过,有些外存可独立于主机箱,比如移动硬盘等。
(5)输出设备
用于对外展示计算机输出信息的终端设备,其形式可以数字,字符,图片,声音等表现出来,如图1所示,显示器,音箱都是计算机输出设备。
2. 计算机语言的定义
何谓计算机语言?顾名思义,就是计算机与外界沟通的一种语言,这同面对英国人就需要用到英语,而遇到法国人则需要用到法语是同一个道理,在这里也是一样。
人们按照计算机设定的语法与规则组织好自己的语句,将自己的意图通过键盘等接收装置传达给计算机,让计算机按照自己的指令行事,这一过程中,语句的组织与编写便是我们此次所要学习的重点了。
3. 计算机语言的编写
(1)识别过程
众所周知,计算机内部的一切数据都是以二进制的形式存在与交流的。可为何会选择二进制这种方式呢?这个问题其实也不难,只要举个简单的例子,大家就都明白了。
图3
如图3所示,一个简单的电灯开关,大家也都见过,它的使用一共也就两种形态,开和关,也即是电流的流通与阻断,其中流通为1,阻断则为0。
类似的,计算机芯片的大体原理也是如此,只不过,它的内部却并非只有一个开关,而是由许多极为细小的开关组合而成,这些组合按照某些约定俗成的次序排列在一起,就形成了我们常见的二进制指令与数据,这些二进制指令和数据再经过特殊地排列组合,放入执行区域执行,最终即可达到我们使用计算机的目的。
(2)工具
只是我们要如何记住并轻松使用这些繁杂的二进制流呢?不用急,前辈们早就已经为这些二进制流做好了许多的工具,这些工具完美地解决了从人类高级语言到二进制流的各种翻译与整合的工作,完全不需要我们去理会其中的过程。
也就是说,我们只需要按照一些简单的语法与规则编写好程序,而后,将程序交托给所需用到的工具,它们便自会帮助我们完成后续的步骤了。
这一过程中,为方便理解,我们可按照语言的执行过程,将工具的主要用途大体分为两大类套件,一类是用于编译型语言的工具套件,另一类则是用于解释性语言的工具套件。
A. 编译型语言工具套件
编译型语言就是一种程序在执行前被完全翻译成二进制机器代码的计算机语言,这种语言生成的二进制机器代码以文件形式存储,可在系统中直接运行,如exe文件。
至于语言的编译流程大体如下:
源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
其中所需要用到的主要工具套件,有如下几大类:
a. 编辑器
b. 编译器
c. 链接器
d. 调试器
B. 解释性语言工具套件
解释性语言恰与编译型语言相反,它并不把源代码完全翻译成二进制代码,而是将它翻译成解释器可识别的中间代码,待到运行时,需由解释器逐句提取中间代码翻译成机器代码并执行,也就是说,解释器每提取翻译一句中间代码,待执行后,再往下提取下一句,这过程虽然效率较低,但其跨平台性却比编译型语言要好。其中所需要用到的主要工具套件,有如下几大类:
a. 编辑器
b. 编译器
c. 解释器
d. 调试器
同编译型语言类似。
二 C++语言
1. 集成开发环境(IDE)
用于提供应用程序开发的环境,通常集成了编辑器,编译器,调试器以及执行环境等功能,极大地简化了开发者的工作。其中C++常用的IDE有:
Windows上的Visual Studio(目前我使用的是vs2015),MAC OSX上的XCode,linux上的QtCreator等。
当然其实也不一定要用到IDE,你也可以全部单独选择,甚至可以用记事本写代码,然后用系统允许的编译器进行编译,生成可执行文件也是完全可以的。
其中具体环境的配置,百度上有很多,就不一一描述了。
2. 简单小程序
先感受一下C++一个简单的入门程序吧。
#include <stdio.h>
int main()
{
printf("hello world!");
return 0;
}
这便是一个打印出“hello world”最简单C++的代码。
(1)步骤
A. Windows下的执行步骤
此处使用vs2015 IDE进行开发。
a. 新建项目
文件->新建->项目,选择Visual C++ -> 模板 -> Win32 -> Win32控制台应用程序,修改名称为自定义的项目名称,位置为项目文件存储目录,点击确定
图4
b. 点击下一步
图5
c. 点击完成
图6
按图勾选空项目后,点击完成即完成了项目的创建。
d. 新建后缀名为cpp的源文件
图7
选中源文件,右键选择添加->新建项
图8
修改文件名为自定义的以cpp为后缀名的文件,点击添加。
e. 拷贝代码并执行
图9
将上述代码拷贝到hello.cpp文件里,点击上图那个绿色的运行符号,下图选择是,ok,可以看到效果了。
图10
B. Mac OSX下的执行步骤
此处为让大家有个更直观的感受,不使用IDE开发,而是使用平常的编辑器和mac自带的g++编译器进行编译。
a. 打开终端命令行
应用程序->实用工具->终端(命令行)
b. 跳转到指定目录
使用命令cd,比如cd /Users/rsp/Desktop/教程/test
c. 创建以cpp为后缀名的新文件(其实根据编译器不同,后缀名可以为cc,cpp,cxx,c++,c等,其中cpp为c++文件最常用的后缀名)
此处使用touch命令创建后缀名为cpp的新文件,名字随意(也可以用其他方式创建,比如使用记事本等),命令输入:touch hello.cpp
d. 打开cpp文件,将上面的代码全部拷贝到文件中并保存
e. 开始编译
命令行使用命令g++,输入为:
g++ hello.cpp
命令执行后,自动生成名为a.out的可执行文件,如果想要指定可执行文件的名字,则可输入命令:
g++ hello.cpp -o hello
一个名为hello的可执行文件便生成了。
f. 开始执行
命令行输入:./hello
这时便可以看到命令行显示出来的hello world!了。