李鹏飞:C语言指针和函数详解

第1章:计算机语言和程序设计语言

01:计算机语言和计算机程序设计语言不是一个概念

要学习计算机程序设计,我们首先要知道:计算机语言和程序设计语言不是同一个概念。在这个世界上,语言的概念是很宽泛的,不要狭义的理解为:只有汉语、英语、德语这样的语言才算语言。你怎么知道猫的叫声不是猫的语言呢?狗的叫声也一样、狼的嚎叫不是呼喊其伙伴吗?这些是生物界的语言代表,我甚至怀疑:所有物种都有其自身的语言,只是我们不知道或者没有探索清楚罢了。生物是有语言的,机器呢?机器也有自己的语言。你要使用机器,就必须按照机器的语言来完成。比如,该从什么地方去操作,操作规程是什么?你要使用手机,你就必须使用手机能识别的方式进行操作,换成其他途径,你和机器就无法交流了。这个概念不好理解,我们举几个例子好了。

l你要驾驶汽车,就要使用汽车能理解的语言,如何操作离合器、方向盘

l你要使用电视,就要使用电视能理解的语言,比如遥控器、换台等。

如果我要使用计算机,就必须按照计算机能理解的语言来进行操作。否则,计算机也是听不懂的,既然听不懂,就没有交流,没有交流,就不能由你驱使。好吧,我们现在将计算机设想为一个外国人,你想让外国人像牛一样的为你工作,你只能有下面几种办法:

l你用中文向外国人发出指令,即:命令他做事。

l你让外国人能听懂你说的话,你也可以命令他做事。(让计算机能听懂人类语言是现在非常重要的研究方向,即:自然语言处理,属于人工智能范畴。)

l请个翻译,能将你说的话翻译为外语,也同样可以让外国人为你做事。

在计算机世界,计算机说的话其实是二进制的,至于二进制是什么东西,目前,我们不深入下去。对于计算机专业、软件专业、信息技术或自动化专业及类似专业的人来说,你应该自己知道二进制的含意。对于其他的编程语言学习者,如果你暂时不知道,就先忽略吧,对你而言,你只要知道:二进制就是计算机语言就可以了。不太影响我们后续的学习。好了,你说的是计算机编程语言,计算机说的是二进制,这是两种语言,不是吗?所以,你需要一个翻译。在程序设计领域,我们称这个翻译为:编译器。编译器将你用程序设计语言设计的程序翻译成计算机语言的过程,我们就称之为:编译。编译器有很多种,等到你进入角色后,可以慢慢去了解。但是,我们从头至尾使用的编译器叫:G++

如果完全按照人类语言的方式来编程,目前的技术还达不到,但是:这是一个非常重要的研究领域,即:自然语言处理。完全按照计算机语言的方式来编程,对计算机来说,这很方便。但是,对人来说,就不自然了,这会极度的导致编程效率的低下和容易出错。所以,现代编程语言几乎都是类自然语言的,所谓类自然语言,就是:和人类语言很接近。当然,更多的是:和英文接近。

02:引入几个术语

为了我们之间能进行很好的沟通,现在我们要引入几个术语,分别是:

l源程序:通常是用某种程序设计语言书写的文件,后缀名由具体的编译器来决定。比如C/C++源程序的后缀可以是cpp、c或cc,通常,我们使用cpp作为C++源程序文件的后缀。源程序通常是纯文本的,所谓的纯文本就是比如用windows的记事本书写的文件,就是纯文本文件。

l编译器:用来将某种源文件翻译为计算机可执行文件的程序,比如G++或者Java的java虚拟机等。

lIDE(Integrated Development Environment),中文称为:集成开发环境。就像你用Word来排版文章一样。如果用记事本来书写源程序文件,通常不是很方便。所以,书写程序代码,也通常使用某种集成开发环境,比如:我们使用CodeBlocks作为我们的集成开发环境。

l集成开发环境和编译器都是软件,既然是软件,就涉及到安装在什么操作系统上。我们使用CentOS 6.8 64位操作系统。当然,我们也会讲解如何在Windows上安装集成开发环境,但是:我们强烈推荐你使用CentOS 6.8 64位操作系统来学习本书的所有代码。

云计算和人工智能是未来编程的主要方向,这些实现,通常都使用Linux操作系统,所以,如果你致力于未来的长足发展,建议你:开始就使用Linux来搭建你的学习系统,并且很多专业的C/C++开发人员真的是使用Linux或者Unix的。当然,如果有障碍,你也可以先使用Windows系统来进行学习,总之:不要因为开发环境的搭建,让自己无法进步。语言的学习是我们现在的目标,不要钻牛角尖。(下次课程,我们将讲述:如何部署集成开发环境!)

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180123G041ZR00?refer=cp_1026

同媒体快讯

  • 如何有效学习C+

    2018-10-22

相关快讯

扫码关注云+社区