编辑于2020-11-18
计算机的基本组成
计算机的发展经历了哪几代?
-
第一代 电子管计算机
-
第二代 晶体管计算机
-
第三代 集成电路计算机
-
第四代 大规模和超大规模集成电路计算机
计算机体系结构的奠基人——冯·诺依曼
-
理论:二进制运算 存储程序方式
-
运算器、控制器、存储器、输入装置、输出装置
计算机语言的发展经历了那几个阶段?
-
机器语言
-
汇编语言
-
高级语言
机器语言
-
特点:机器语言由二进制数字组成所有指令,机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
-
优点:直接执行,速度快,资源占用少
-
缺点:可读性、可移植性差,编程繁杂
汇编语言
-
特点:
-
机器相关性:面向机器的低级语言
-
高速度和高效率
-
编写和调试的复杂性
-
-
优点:
-
用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源;
-
目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。
-
-
缺点:
-
汇编语言是面向机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性;
-
难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试;
-
使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。
-
高级语言
-
特点:
-
计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。
-
高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。
-
-
程序设计语言的类型:
-
命令式语言:这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。
-
函数式语言:这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。
-
逻辑式语言:这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog。
-
面向对象语言:现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。主要的纯面向对象语言是 Smalltalk。
-
虽然各种语言属于不同的类型,但它们各自都不同程度地对其他类型的运算模式有所支持。
-
-
高级语言带来好处:
-
高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;
-
高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;
-
高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;
-
由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。
-
-
总结:高级语言的出现,尤其是面向对象语言的出现,相当于人类的工业社会,高级语言极其易用,编程 门槛和难度大大降低,大量的人员进入软件开发行业,为软件爆发性的增长提供了充足的人力资源。 目前以及可预见的将来,计算机语言仍然处于“第三代高级语言”阶段。