国土资源部司长:最基础的编程语言有哪些

来源:百度文库 编辑:中财网 时间:2024/04/29 04:50:22
     

 

以下是我个人看法,参考了网上关于C语言的一些资料.有什么问题请指出!

我依稀记得我当年学计算机的情况,我非常推荐计算机从你这个时候开始学起,我觉得我上大学学习有点晚了.呵呵,中国的未来靠你们这些天才了.

如果你真的要学好计算机,一定要有耐心,要有枯燥的心理准备.最重要的是创新.熟能生巧嘛!

我觉得既然提到C语言,就有必要简单提到计算机编程语言发展的过程

既然知道C语言很重要,就有必要知道C语言的前世今生.

计算机科学不仅仅是编程语言,我只从编程语言的角度说说我的看法.
------------------------------------------------
就像是世界上应用最广泛的语言 是英语.当然你可以学习其他的语言,一样不耽误你讲话!

计算机编程语言也是这样,任何语言都有自己的用户之地,C语言发展很成熟,功能十分强大,应用非常广泛.

就像我刚开始学计算机科学一样,我想你也想知道有哪些编程语言.

世界上编程语言太多了,就像每个国家都有自己的语言一样的.但是从编程语言发展的角度说:
大概经历 这样 四个阶段:


第一个阶段是 机器码编程 (你肯定知道计算机只能识别0和1,以前就是这样编程的).现在的PC计算机依然是这样,冯.诺依曼型的计算机.你可以去网上搜索 冯.诺依曼 是干什么的.你会想,为什么现在编程不是0,1,计算机怎么识别呢?当你开始编程的时候,你用的编译器就在做这些事情.


第二个阶段是 低级语言,比如汇编语言,台湾叫做组合语言.其实组合翻译还是比较准确的.一般有IBM PC汇编语言,还有AT&T的汇编语言.学一个就可以了,另一个只是形式不同.对于Intel的CPU来说,8088 8086是对应于16位的汇编语言,80386以后到现在的奔腾都是对应32位汇编语言.现在大学学的是8088/8086的汇编,这远远落后于时代了.目前已经推出了64位的CPU了.

汇编之所以是低级语言,是因为可以对计算机硬件进行直接操作.尤其是对BIOS的中断调用.最典型的是,在我们操作系统启动的时候(比如XP,LINUX...),内核引导程序就要调用BIOS来获得计算机的硬件信息供内核的调用.

低级不是代表功能不强大. 对硬件进行直接操作的,一般如果代码量小的话,会选择汇编来写.汇编的效率极高.
为什么代码量小才用汇编呢?因为汇编代码别人很难读懂.而且非常难维护.所以在选择汇编语言编程的时候要考虑,我的程序是关注什么方面的.
并不是只有汇编语言才能对硬件编程,C语言一样可以,C++,JAVA都可以,但是考虑到执行效率,汇编比他们都有绝对优势.一般系统级编程用汇编,C语言比较多

很多人说汇编语言将被淘汰,但是在一定的领域,这个东西不会被淘汰的.据我所知,目前的系统启动部分除了用汇编写,还没有用其他语言写过,操作系统的内核,多用C来写,还没有用C++来写.据说Linus以前尝试用C++改写Linux内核,不过后来放弃了.如果有人对我的假设有什么疑义,请推荐给我一个不用汇编写启动的代码,或者内核是用面向对象编程语言来写的OS的程序代码,我将不胜感激.
如果有人有反对意见,我保留我自己看法,因为在计算机上没有不可能的事情!




第三个阶段是:结构化高级语言
这个代表就是C语言,PASCAL语言,FORTANT语言.
C语言相比较这三个语言来说,应用是最广泛的.

C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。

这里提到可移植性,补充上边说的汇编语言,汇编语言因为是直接面对硬件,所以如果硬件不同,编程的语法就不同,所以汇编一般不可移植,或者移植非常困难.

C语言常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ , Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等...... 大学里教学用的是TC2.0,这里的T表示TURBO,是Borland公司的产品.

************************************************8
有必要了解一下C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。

C语言的特点

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。


第四个阶段:面向对象的高级语言
典型的是C++ JAVA

在C语言的编程过程中,大家发现 结构化编程的C语言编程比较麻烦.
比如,我要编写 描述3个凳子的程序,如果用C写的话,我必须一个一个描写凳子.如果要写100,1000个或者更多呢?不就麻烦死了.为什么我们不能先构造一个凳子的基本模型,然后根据具体凳子的特点添加代码呢? 这样代码量不是大大减轻了,程序员就少做很多重复劳动了.这个基本模型就是面向对象里边经常提到的类.
当然C++和C比较不仅仅是这些有点,优点太多了,我只是做一个假设而已,C++的内容很多,C++是C的超集.你学习C++你就知道了.

C++和C的语法很相近,C++一样能处理结构化的程序,基本和C一样.
所以,你可以直接学习C++.C++和C没有什么必然关系.

此外还有其他一些脚本语言perl,标记语言html等等.
游戏开发也经常用到脚本语言.

-------------------------------------------------
编程语言就和人说话一样,等你熟练掌握了,你应该学习如何说话的方法和技巧了.就是计算机上常说的 数据结构 和 算法

当你熟练掌握编程语言的时候,你会发现再学一门新的语言不是什么难的事情.很容易上手,确实是这样的.
--------------------------------------------------------------
--------------------------------------------------------------
刚才我说了编程语言基本分为那些,知道这些语言最擅长的地方,你学游戏还是学什么都会有个目标.

无论你从事什么计算机编程工作,我都觉得应该好好学习基础知识,不管你是先学再干,还是先干然后知不足才学.形式都是次要的,关键是解决问题.

不管怎么样,你还是要了解一些数学知识,比如游戏编程要涉及的 线性代数的矩阵知识,等等.数学是很重要的.不要认为编程和数学没有关系.在高级编程中应用数学知识太常见了.

游戏编程现在大家学习3D的比较多.毕竟玩游戏,还是要逼真的感觉的.你初学可以学习OpenGL或者D3D,这些结构和C语言相似,他们不是编程语言,只是接口.编译器你可以采用MS的VC++或者LINUX下的GCC + GLUT,当然编译器只是工具,你喜欢采用什么编译器,调试器都是你自己的选择.MS底下也可以采用其他的,Linux底下也可以采用GTK等等.看你喜好了.