Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137330
  • 博文数量: 8
  • 博客积分: 108
  • 博客等级: 入伍新兵
  • 技术积分: 231
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-26 20:47
个人简介

【博客已移步】http://www.renzo.top

文章分类

全部博文(8)

文章存档

2013年(4)

2012年(4)

我的朋友

分类: C/C++

2013-01-17 12:16:09

    计算机语言的种类非常的多,总的来说可以分成机器语言汇编语言高级语言三大类。

    电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。

    目前通用的编程语言有两种形式:汇编语言高级语言

    汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

    高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。 高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi、Python等,这些语言的语法、命令格式都各不相同。 像最简单的编程语言PASCAL语言也属于高级语言。

    高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。按转换方式可将它们分为两类:

    解释类执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

    编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.o)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

 

学习编程,从何入手

    如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!

方案一 :Basic语言 & Visual Basic

    

    (1)Basic 简单易学,很容易上手。

    (2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。

    (3)众多的控件让编程变得象垒积木一样简单。

    (4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

    缺点:

    (1)Visual Basic 不是真正的面向对象的开发文具。

    (2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。

    (3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。 (Visual Basic 5以及以前的版本产生的代码是伪代码,Visual Basic 6 编译出来的代码是真正的可执行代码。)

    综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会VB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。

方案二:Pascal语言 & Delphi

     优点:

    (1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。

    (2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。

    (3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。

    (4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。

    缺点:

    (1)Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。      

    综述:方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。

方案三:C语言 & Visual C++

    优点:

    (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。

    (2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。

    (3)VC是微软制作的产品,与操作系统的结合更加紧密。

    缺点:

    (1)对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。

    综述:VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。

方案四:C++语言 & C++ Builder

    优点:

    (1)C语言的优点全部得以继承。

    (2)完全的可视化。

    (3)极强的兼容性,支持OWL、VCL和MFC三大类库。

    (4)编译速度非常快。

    缺点:

    (1)由于推出的时间太短,关于它的各种资料还不太多。

    综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。

方案五:易语言 & 易语言.飞扬

    优点:

    (1)全中文编程语言,易学易用

    (2)易语言.飞扬支持记事本编程

    缺点:

    (1)易语言.飞扬对编码格式要求较高,且编译需手工输入命

 

补充一:机器语言

    机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义。例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。 如某种计算机的指令为1011011000000000,它表示让计算机进行一次加法操作;而指令1011010100000000则表示进行一次减法操作。它们的前八位表示操作码,而后八位表示地址码。从上面两条指令可以看出,它们只是在操作码中从左边第0位算起的第6和第7位不同。这种机型可包含256(等于2的8次方)个不同的指令。

    特 点:

    机器语言或称为二进制代码语言,计算机可以直接识别,不需要进行任何翻译。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。它是第一代的计算机语言。机器语言对不同型号的计算机来说一般是不同的。

    缺 点:

    (1)大量繁杂琐碎的细节牵制着程序员,使他们不可能有更多的时间和精力去从事创造性的劳动,执行对他们来说更为重要的任务。如确保程序的正确性、高效性。

    (2)程序员既要驾驭程序设计的全局又要深入每一个局部直到实现的细节,即使智力超群的程序员也常常会顾此失彼,屡出差错,因而所编出的程序可靠性差,且开发周期长。

    (3)由于用机器语言进行程序设计的思维和表达方式与人们的习惯大相径庭,只有经过较长时间职业训练的程序员才能胜任,使得程序设计曲高和寡。

    (4)因为它的书面形式全是“密”码,所以可读性差,不便于交流与合作。

    (5)因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。

     范例:

    (1)指令部份的范例

        0000 代表 加载(LOAD)

        0001 代表 储存(SET)

    (2)暂存器部份的范例

        0000 代表暂存器 A

        0001 代表暂存器 B

    (3)内存部份的范例

        000000000000 代表位址为 0 的内存

        000000000001 代表位址为 1 的内存

        000000001000 代表位址为 16 的内存

        100000000000 代表位址为 2^11 的内存

    (4)整合范例

        0000,0000,000000001000 代表 LOAD A, 16

        0000,0000,000000000001 代表 LOAD B, 1

        0000,0001,000000001000 代表 STORE B, 16

        0000,0001,000000000001 代表 STORE B, 1

 

补充二:汇编语言(符号语言)

    汇编语言(Assembly Language)是面向机器的程序设计语言。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

    在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。

    使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言编译器把汇编程序翻译成机器语言的过程称为汇编

    汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

    汇编语言的特点:   

    (1)面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

    (2)保持了机器语言的优点,具有直接和简捷的特点。

    (3)可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

    (4)目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

    (5)经常与高级语言配合使用,应用十分广泛。

    汇编语言的应用:

    (1)70%以上的系统软件是用汇编语言编写的。

    (2)某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。

    (3)某些高级绘图程序、视频游戏程序是用汇编语言编写的。

    人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。 所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。

    汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。

    学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点和最有效途径。

 

    @ 以上内容搜集于网络,本人仅是整理 @

阅读(3223) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~