自然语言和计算机语言二义性,二级C++精品课程第一章第一节计算机语言及其发展...
计算机是一个有用的工具,它能做许多事情,例如矩阵计算、方程求解、辅助设计等。要让计算机解决某一个问题之前,必须先把求解问题的步骤描述出来,这便称之为算法。下面是一个一元二次方程求根的算法实例:
◇ 计算方程的判别式
◇ 如判别式小于零,则输出方程没有实根的信息
◇ 否则,计算方程的实根,并输出计算结果
我们不能直接将算法输入到计算机,因为用这种自然语言表达的算法,计算机并不理解。正象我们人之间通过语言进行沟通一样,我们要计算机做事,要用计算机能够理解的语言,称之为计算机语言。将算法用某种特定的计算机语言表达出来,输入到计算机,这便是计算机编程,用计算机语言表达出的算法称之为计算机程序(或程序)。
计算机是无知觉无生命的机器,要使它能够按照人们的意图工作,就必须使计算机懂得人的意图,接受人向它发出的命令和信息,这就要解决一个"语言"的问题。打个比方,一个中国人想要同一个美国人进行交流,首先需要学习英语,因为英语是美国人可以理解的语言,美国人不理解中国人的汉语。同样,计算机也不懂人类的语言,无论是汉语还是英语,计算机都不能接受,因此要求人们用特定的计算机可以理解的语言与计算机交流,这就是计算机语言。这种语言同英语、汉语等等人类长期使用的自然语言有很大的不同,它有严格的定义,并且一般没有二义性,因为人们在使用自然语言交谈时,很容易根据语境确定具有二义性的对话的含义;但是计算机却做不到这一点,至少现在它还没有这么聪明。
自从有了计算机,也就有了计算机的编程。最初的计算机编程语言是所谓机器语言( 也称为第一代语言 ),即直接使用机器代码编程。用机器代码编程繁琐、易错,为了提高编程效率,人们引入了助记符,就出现了所谓汇编语言( 也称为第二代语言 ),汇编语言同机器语言相比,并没有本质的区别,只不过是把机器指令用助记符号代替。但这已是很大的进步,它提高了编程效率,改进了程序的可读性和可维护性。直到今天,仍然有人在用汇编语言编程。
机器语言即是机器指令的集合。每种计算机都有自己的指令集合,计算机能直接执行用机器语言所编的程序。机器语言包括:指令系统、数的形式、通道指令、中断字、屏蔽字、控制寄存器的信息等。机器码是计算机能理解和执行的语言。机种不同,其机器码组合方式也不一样。同一个题目到不同的计算机上计算时,必须编写不同机器语言的程序。机器语言是最低级的语言。
由于机器码指令是用许多二进制数表示的,用机器语言编程必然很繁琐,非常消耗精力和时间,难记忆,易弄错,并且难以检查程序和调试程序,工作效率低。例如, 字母A表示为1010,数字9表示为1001。机器语言的加法指令码有三种形式,又要考虑进位,符号还要考虑溢出等情况。
用汇编语言编程效率是提高了,但执行效率降低了。因为它运行之前,还需要一个专门的翻译程序(称为assembler汇编程序)将其翻译为机器语言。汇编语言是一种符号语言,它几乎和机器语言一一对应,但在书写时却使用由字符串组成的助记符。例如,加法在汇编语言中用助记符ADD表示,减法用助记符SUB表示等。
早期的计算机由于速度慢、内存小,衡量程序质量高低最重要的指标是机器执行的效率。但是,随着计算机技术的发展,机器硬件的性能大幅度提高,程序的复杂度也在增加,人们越来越要求把简单、重复性的工作交给机器去做,而人更多地从事创造性的工作。程序的可读性和可维护性渐渐成为衡量程序质量高低的最重要的指标。很显然,汇编语言取代机器语言是必然的结果。
虽然汇编语言较机器语言已有很大的改进,但仍是低级语言,它有两个主要缺点:
◇ 涉及太多的细节;
◇ 与具体的计算机相关。
所以,汇编语言也被称为面向机器的语言。为了进一步提高编程效率,改进程序的可读性、可维护性,又出现了许多高级语言(也称为第三代语言),例如:Fortran、Basic、Pascal、Java、C和C++等,其中C/C++是当今最流行的高级程序设计语言。
高级语言比低级语言更加抽象、简洁:
◇ 一条高级语言的指令相当于几条机器语言的指令。
◇ 用高级语言编写的程序同自然英语语言非常接近,易于学习。
◇ 用高级语言编写程序并不需要某种计算机的专门知识。
同汇编语言类似,高级语言也需要专门的翻译程序(称为compiler编译器或interpreter解释器),将它翻译成机器语言后,才能运行。
既然机器语言和汇编语言都是计算机可以理解的语言,使用它们可以完全控制计算机的行为,那么为什么人们还要创造并使用高级程序设计语言呢?
因为机器语言和汇编语言都是低级语言,是面向机器的,与具体的计算机相关。学习起来困难,编程效率也低,可读性、可维护性也差。还是举个例子来说明。一个中国北方人想要去欧洲旅行,可是他不懂任何一门欧洲语言;恰好,一个懂得德语、英语、法语、西班牙语等所有欧洲语言的中国南方人也去欧洲旅行,他们结伴同行。中国北方人想要同欧洲人交流,有两种方式:一是学习各种欧洲语言,然后同各个国家的人直接交流;二是让那个南方人当翻译,将自己的意思讲给欧洲人听,并将欧洲人的回答反馈给自己。如果您是那个北方人,您选择哪种方式?我想答案是确定的,肯定要请南方人当翻译。虽然北方和南方在语言上也有一定的差异,但是比起同欧洲语言的差异来,这种差异显然太小了。况且,如果直接同欧洲人交流,需要学习多少门语言?
二级C++精品课程第一章第一节计算机语言及其发展.doc
下载Word文档到电脑,方便收藏和打印[全文共2230字]
编辑推荐:
下载Word文档
自然语言和计算机语言二义性,二级C++精品课程第一章第一节计算机语言及其发展...相关推荐
- java isprime函数_翁恺老师零基础java课程函数章第一题分解质因数
分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在 ...
- 哈尔滨工业大学软件构造课程学习笔记第一章第一节
1.1 软件构造过程中的多维度视图 一.多维软件视图 1.构建阶段 构建阶段:观点->需求->设计->代码->可安装/可执行包 代码角度:源代码--源代码的逻辑组织方式通过基本 ...
- c语言精品课程课件,PPT-《C语言程序设计》精品课程.ppt
PPT-<C语言程序设计>精品课程 <C语言程序设计>精品课程 本章要点 学好C语言的方法 C语言的特点 C程序的结构 在计算机上运行C程序的方法 学习C语言的方法 注意理论与 ...
- 秋季 工程伦理 网络课程 第一章
工程伦理 网络课程第一章 第一章 第二章 第三章 第四章 第五章 第一章 第二章 链接: https://blog.csdn.net/qq_41694461/article/details/11135 ...
- C#毕业设计——基于C#+asp.net+sqlserver的精品课程教学网站设计与实现(毕业论文+程序源码)——教学网站
基于C#+asp.net+sqlserver的精品课程教学网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的精品课程教学网站设计与实现,文章末尾 ...
- 计算机控制篮球,【精品课程设计】计算机控制技术弱电课程之篮球比赛计时计分器doc.doc...
[精品课程设计]计算机控制技术弱电课程之篮球比赛计时计分器doc.doc 课程设计 题目 篮球赛计时计分器 二级学院 电子信息与自动化 专 业 电气工程及其自动化 班 级 学生姓名 学号 指导教师 考 ...
- 计算机应用基础精品课程申报表,计算机应用基础精品课程申报书.doc
计算机应用基础精品课程申报书.doc 还剩 18页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 1 附件 5: ...
- java-大数据-精品课程目录(超级全)
网上看到的一个目录,可以通过对应视频名称网上找找资源 第一章:java精品课程目录大全 1.亿级流量电商详情页系统的大型高并发与高可用缓存架构实战 1课程介绍以及高并发高可用复杂系统中的缓存架构有哪些 ...
- 03-04年度国家级精品课程一览
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 2003 ...
最新文章
- 什么是产品Backlog(Product Backlog)?
- 2016 版 Laravel 系列入门教程(一)
- SQL开发好助手—SQL Assistant 5
- mysql 导入导出.sql文件
- 用集合return多个值_十五个常用的 Laravel 集合(Collection)
- 计算机应用决策支持系统,计算机决策支持系统技术及应用研究
- 使用C# Detach和Attach 数据库
- nginx 超时设置_Nginx最详细的反向代理配置步骤,拿去不谢
- 计算机网络超详细笔记(五):网络层
- 集成电路设计的运作模式
- python拓展包之pymoo使用方法:多目标优化(NSGA2)
- 非因解读|Digital Spatial Profiler 新一代高维度空间组学技术
- 最短路径BFS算法matlab,数据结构笔记——最短路径BFS算法
- 智能优化算法:蝗虫优化算法-附代码
- C语言复健(数组) 珠心算测验
- 2008~2009流行歌曲
- 常见计算机病毒有些什么症状,电脑中病毒的症状有哪些
- 这世上倒底有没有神仙——说“Excel不是数据库,是不是犯了白马非马论的错误??...
- 单样本t检验、独立样本t检验、配对样本t检验_python_数据分析_7
- 全网最后一个免费版本,永久可用