书签 分享 收藏 举报 版权申诉 / 58
上传文档赚钱

类型大学计算机第6讲-由机器语言到高级语言-程序编写编译课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:7449463
  • 上传时间:2024-01-13
  • 格式:PPT
  • 页数:58
  • 大小:4.98MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《大学计算机第6讲-由机器语言到高级语言-程序编写编译课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    大学计算机 机器语言 高级 语言 程序 编写 编译 课件
    资源描述:

    1、大学计算机-计算思维导论Research Center on Intelligent Computing for Enterprises&Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员第6讲 由机器语言到高级语言:程序编写与编译Research Center on Intelligent Computing for Enterprises&Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会

    2、委员本讲学习什么?-由机器语言到高级语言:程序编写与编译Research Center on Intelligent Computing for Enterprises&Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授用高级语言进行问题求解符号化,计算化再语义化自然自然/社社会问题会问题程序化执行化算法的结果机器级程序-机器指令运算器和控制器(CPU)-执行算法自然自然/社会社会问题的求问题的求解结果解结果产生用0/1编码:指令和数据存储器:0/1存与取0/1化信号化存储高级语

    3、言程序编译执行化由机器语言到高级语言本讲内容的基本脉络?汇编语言程序程序执行汇编程序执行战德臣 教授常量常量变量变量赋值赋值语句语句 算术表算术表达式达式比较表比较表达式达式逻辑表逻辑表达式达式表达表达式式分支分支结构结构 循环循环结构结构 顺序顺序结构结构 高级语言高级语言由机器语言到高级语言本讲内容的基本脉络?战德臣 教授函数函数程序构程序构造方法造方法函数的函数的定义定义函数的函数的调用调用运用函运用函数构造数构造自顶向下自顶向下(Top-Down)(Top-Down)自底向上自底向上(Buttom-Up)(Buttom-Up)由机器语言到高级语言本讲内容的基本脉络?战德臣 教授编译器编

    4、译器计算机计算机语言语言由机器语言到高级语言本讲内容的基本脉络?由机器语言到高级语言Research Center on Intelligent Computing for Enterprises&Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授为什么程序编写越来越方便?高级语言程序怎样才能被机器执行?由机器语言到高级语言(1)为什么需要计算机语言?战德臣 教授算法算法解决问题的步骤程序程序计算机能够理解与执行的解决问题的步骤计算机语言步骤书写的规范、语法规则、标准的集合是人和

    5、计算机都能理解的语言 算法、计算机语言与计算机程序由机器语言到高级语言(1)为什么需要计算机语言?战德臣 教授计算7+10并存储的程序机器语言:用二进制和编码方式提供的指令系统所编写程序的语言被称为机器语言100001 1000000111100010 1000001010100101 1100000110111101 00所有程序都需转换成机器语言程序,计算机才能执行指令系统:CPU用二进制和编码提供的可以解释并执行的命令的集合。100001 10 00000111100010 11 00001010操作码 地址码问:用机器语言编写程序存在什么问题呢?由机器语言到高级语言(2)计算机能够理解

    6、与执行什么?计算机语言-机器语言指令指令系统系统机器机器语言语言战德臣 教授计算7+10并存储的程序u汇编语言:是用助记符号编写程序的语言。u汇编语言源程序:是用汇编语言编出的程序。u汇编程序:是将汇编语言源程序翻译成机器语言程序的程序。u用符号编写程序=翻译=机器语言程序MOV A,7ADD A,10MOV (6),AHLTu人们提供了用助记符编写程序的规范/标准。同时开发了一个翻译程序,实现了将符号程序自动转换成机器语言程序的功能。100001 1000000111MOV A,7操作码 地址码由机器语言到高级语言(3)怎样解决机器语言编写程序所存在的困难?计算机语言-汇编语言汇编汇编语言语

    7、言战德臣 教授u汇编语言程序处理过程由机器语言到高级语言(4)符号化程序机器不能直接执行怎么办?计算机语言-汇编语言-汇编程序(编译器)MOV A,7ADD A,10MOV (6),AHLT汇编程序汇编语言源程序助记符号机器语言程序二进制和编码10000110000001111000101100001010100101110000011011110100由汇编程序自动转换转换执行汇编语言转换规则 助记符号,机器指令用助记符号书写程序的规范、语法规则、标准的集合是人和计算机都能理解的语言机器指令的集合是计算机能够理解并执行,但人理解困难的语言机器语言编制完成7+10并存储的汇编语言程序完成7+1

    8、0并存储的机器语言程序执行战德臣 教授计算7+10并存储的程序Result=7+10;Returnu人们提供了类似于自然语言方式、以语句为单位书写程序的规范/标准。并开发了一个翻译程序,实现了将语句程序自动翻译成机器语言程序的功能。u高级语言:是用类似自然语言的语句编写程序的语言。u高级语言源程序:是用高级语言编出的程序。u编译程序:是将高级语言源程序翻译成机器语言程序的程序。由机器语言到高级语言(5)为什么还要提出高级语言?计算机语言-高级语言高级高级语言语言战德臣 教授编译程序源程序语句机器语言程序二进制和编码Result=7+10Return10000110000001111000101

    9、100001010100101110000011111110100MOV A,7ADD A,10MOV (6),AHLT高级语言程序处理过程示意由机器语言到高级语言(6)高级语言和汇编语言的差别在哪里?u高级语言:机器无关性;一条高级语言语句往往可由若干条机器语言语句实现且不具有对应性u汇编语言:机器相关性;汇编语言语句和机器语言语句有对应性战德臣 教授由机器语言到高级语言(6)编译器如何实现呢?高级语言编译器汇编程序汇编语言源程序助记符号转换执行转换规则 助记符号,机器指令编译程序高级语言源程序变量/表达式/语句机器语言程序二进制和编码1000011000000111100010110000

    10、1010100101110000011011110100转换执行高级语言编译规则机器语言编制Result=7+10ReturnMOV A,7ADD A,10MOV (6),AHLT自动转换自动转换执行转换转换汇编器汇编器编译器编译器转换转换战德臣 教授用高级语言进行问题求解符号化,计算化再语义化自然自然/社社会问题会问题程序化执行化算法的结果机器级程序-机器指令运算器和控制器(CPU)-执行算法自然自然/社会社会问题的求问题的求解结果解结果产生用0/1编码:指令和数据存储器:0/1存与取0/1化信号化存储高级语言程序编译执行化由机器语言到高级语言(7)小结?汇编语言程序程序执行汇编程序执行战德

    11、臣 教授高级语言程序的基本构成要素有哪些?“高级语言”怎样表达“程序”的要素?高级语言(程序)的基本构成要素(1)计算机语言程序的基本构成要素有哪些?战德臣 教授K=0;For I=1 to 100 Step 1 If I 30 K=K+I;保留字保留字变量变量常量常量语句语句表达式表达式认识计算机语言程序高级语言(程序)的基本构成要素(1)计算机语言程序的基本构成要素有哪些?“保留字”为编译器识别和处理语句而确定的一些特定符号战德臣 教授常量、变量与表达式u算术表达式示例。算术表达式的结果是一数值;A1+(B2 x1+76)*3(B2+yy4)/L3 xx3u比较表达式示例。比较表达式的计算

    12、结果是逻辑“真”或“假”;Grade=70N4=A1)&(B2 y2)u将表达式的计算结果赋值给一变量:赋值语句M =XY+50;M =(XY)AND(XD2 D1=D1-5;ElseD1=D1+10;Y=50;Z=80;X=30;X=Z+Y;If Y Z X=X-Y;Else X=X-Z;X=X+Y;If X Z X=Y;X=X-Z;If XY X=X-Y;语句与程序控制高级语言(程序)的基本构成要素(4)分支结构?分支分支结构结构战德臣 教授Y=50;Z=80;X=30;X=Z+Y;If Y Z X=X-Y;Else X=X-Z;X=X+Y;If X Z X=Y;X=X-Z;If XY X

    13、=X-Y;语句与程序控制高级语言(程序)的基本构成要素(4)分支结构?XYZ3050801305010050-30分支分支结构结构战德臣 教授u循环结构(有界循环结构)For(计数器变量=起始值 To 结束值 增量表达式)循环体的程序语句序列 Next 计数器变量Sum=0;For I=1 to 5 Step 1 Sum=Sum+I;Next I/继续其他语句Sum=0;For I=1 to 10000 Step 2 Sum=Sum+I;Next I语句与程序控制高级语言(程序)的基本构成要素(5)循环结构?SumI01123364105156循环循环结构结构战德臣 教授u循环结构(条件循环结

    14、构)Do 循环体的程序语句序列 While(条件表达式);X=1;Y=2;Sum=0;Do Sum=X+Y;X=X+1;Y=Y+1;While(Sum=10)/其他语句语句与程序控制高级语言(程序)的基本构成要素(5)循环结构?XYSum1202333454575696711循环循环结构结构战德臣 教授u循环结构(条件循环结构)Do 循环体的程序语句序列 While(条件表达式);X=1;Y=2;Sum=0;Do Sum=X+Y;X=X+1;Y=Y+1;While(Sum0)/其他语句语句与程序控制高级语言(程序)的基本构成要素(5)循环结构?XYSum120233循环循环结构结构战德臣 教授

    15、u循环结构(条件循环结构)While(条件表达式)Do 循环体的程序语句序列 X=1;Y=2;Sum=0;While(Sum0)Do Sum=X+Y;X=X+1;Y=Y+1;语句与程序控制高级语言(程序)的基本构成要素(5)循环结构?XYSum120循环循环结构结构战德臣 教授常量常量变量变量赋值赋值语句语句 算术表算术表达式达式比较表比较表达式达式逻辑表逻辑表达式达式表达表达式式高级语言(程序)的基本构成要素(6)小结?分支分支结构结构 循环循环结构结构 顺序顺序结构结构 高级语言高级语言战德臣 教授自然自然/社社会问题会问题自然自然/社会社会问题的求问题的求解结果解结果符号化计算化再符号化

    16、高级语言程序 机器语言程序 计算机器执行 程序执行 自动化高级语言(程序)的基本构成要素(6)小结?用高级语言构造程序Research Center on Intelligent Computing for Enterprises&Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授函数int Sum(int m,int n)S=m+n;return S;函数名()函数返回值的类型形式参数,即在函数体中所使用的变量函数体:实现函数功能的程序段落用高级语言构造程序(1)函数是很重要的

    17、程序构造手段,你知道吗?数学上的函数只是一个符号表达,而计算机程序中的函数则是一段可以执行的程序战德臣 教授函数函数的定义形式参数函数体,实现函数功能的程序语句序列以形式参数作为需要处理的对象。当被调用时,用实际参数替换相应的形式参数进行程序执行。函数的使用实际参数函数的使用实际参数用高级语言构造程序(2)你知道函数是一种抽象吗?函数是一种抽象,用一个名字代表一个程序段落战德臣 教授数学运算函数,如三角函数、指数与对数函数、开方函数等;例如sin(),Log(x)等;数据转换函数,如字母大小写变换、数值型数字和字符型数字相互转换等;字符串操作函数,如取子串、计算字符串长度等;例如,Len(ab

    18、cd);输入输出函数,如输入输出数值、字符、字符串等;例如,Printf(),Scanf()等;文件操作函数,如文件的打开、读取、写入、关闭等;其它函数,如取系统日期、绘制图形等。系统提供的可以使用的函数类别用高级语言构造程序(3)你知道计算机语言或操作系统提供哪些函数吗?战德臣 教授用高级语言构造程序(3)你忘记了递归和迭代吗?long int Fact(int n)long int x;If(n 1)x=Fact(n-1);/*递归调用*/return n*x;else return 1;/*递归基础*/程序示例:阶乘的递归程序如下示意战德臣 教授用高级语言构造程序(3)你忘记了递归和迭代

    19、吗?程序示例:阶乘的迭代程序如下示意long int Fact(int n)int counter;long product=1;for counter=1 to n step 1 product=product*counter;/*迭代*/return product;ProductCounter初始值1循环第1次11循环第2次12循环第3次23循环第4次64循环第5次245循环第6次1206时当时当111.)1(1!nnnnn战德臣 教授传统程序构造及其表达方法-由粗到细用高级语言构造程序(4)程序是构造的,不是编的?为控制复杂性,先以函数来代替琐碎的细节,着重考虑函数之间的关系,以及如何

    20、解决问题在前一阶段考虑清楚后或编制完成后,再编写其中的每一个函数。而函数的处理同样采取这种思路战德臣 教授传统程序构造及其表达方法-也可以由细到粗用高级语言构造程序(4)程序是构造的,不是编的?上一层次的函数依据下层函数来编写,确认正确后再转至更上层问题处理首先编写一些基础性的函数,并确定其正确后,再处理上一层次的问题。战德臣 教授程序开发环境用高级语言构造程序(5)程序开发环境包括哪些部分呢?一套书写程序的语法规则计算机语言程序设计环境:编辑、编译、连接、调试、运行一体化平台高级语高级语言程序言程序目标目标程序程序可执行可执行程序程序编辑编辑程序程序编译编译程序程序连接连接程序程序公用函公用

    21、函数库数库调试调试程序程序u程序是算法的一种机器相容(Compatible)的表示,是利用计算机程序设计语言对算法描述的结果,是可以在计算机上执行的算法。u程序设计过程:编辑源程序编译链接执行。战德臣 教授函数函数程序构程序构造方法造方法高级语言(程序)的基本构成要素(6)小结?函数的函数的定义定义函数的函数的调用调用运用函运用函数构造数构造自顶向下自顶向下(Top-Down)(Top-Down)自底向上自底向上(Buttom-Up)(Buttom-Up)计算机语言与编译器-一种抽象-自动化机制示例Research Center on Intelligent Computing for Ent

    22、erprises&Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授如何将高级语言程序编译成汇编语言程序?编译器的编译过程是怎样的?计算机语言与编译器-一种抽象-自动化机制示例(1)你记得计算之树中的不同抽象层次吗?战德臣 教授云计算云计算环境环境自然现象的计算自然现象的计算的表达与推演的表达与推演社会社会/自然自然的计算化的计算化抽象抽象用社会用社会/自然所接受的自然所接受的形式体现计算及结果形式体现计算及结果计算计算/求解求解的自然化的自然化自动化自动化模型模型语言语言协议协

    23、议系统系统编译器编译器编解编解码器码器业务-计算人-计算机机-机,物-物计算机语言与编译器-一种抽象-自动化机制示例(1)你记得计算之树中的不同抽象层次吗?战德臣 教授编译程序源程序源程序语句语句机器语机器语言程序言程序二进制和编码二进制和编码Result=7+10Return10000110000001111000101100001010100101110000011111110100MOV A,7ADD A,10MOV (6),AHLT编译器编译器计算机语言与编译器-一种抽象-自动化机制示例(2)为什么高级语言程序需要编译?怎样编译怎样编译?战德臣 教授计算机语言与编译器-一种抽象-自动化

    24、机制示例(3)高级语言中的模式化的语句?由“具体的”运算式到“模式”运算式Result=7+10;V=C+C;Sum=8+15;K=100+105;注:注:Result:具体的变量:具体的变量7,10:具体的:具体的常量=赋值符号赋值符号+加法运算符号加法运算符号;语句结束符语句结束符注:注:V:变量:变量C:常量:常量=赋值符号赋值符号+加法运算符号加法运算符号;语句结束符语句结束符不变的部分(保留字)变化的部分战德臣 教授“模式”运算式的识别及常量、变量的标识V=C+C;S1S2S3S4V,V,R空格,null,R=,=,RC,C,RS5S6+,+,R空格,null,R空格,null,R空

    25、格,null,R空格,null,RS7;,null,NC,C,R空格,null,R;,null,N(c)能识别两种模式“V=C;”和“V=C+C;”并能去除空格的图灵机示意图注:字母表V,C,=,+,空格,;;S1起始状态;S7终止状态;null表示什么也不写回。Result=7+10;(V,1)=(C,1)+(C,2);计算机语言与编译器-一种抽象-自动化机制示例(4)语句模式的识别 战德臣 教授复杂模式转换为简单模式及其组合V=C+C;V=+CCV,1=+C,1C,2计算机语言与编译器-一种抽象-自动化机制示例(5)复杂模式的预先构造 战德臣 教授V,1=+C,1C,2将简单模式转换成汇编

    26、语言语句序列,用常量值和变量地址进行替换,组合次序调整,得到最后的汇编语言程序MOV A,ADD A,MOV(),A MOV A,7ADD A,10 MOV(6),A MOV A,ADD A,MOV(),A 计算机语言与编译器-一种抽象-自动化机制示例(6)简单模式与汇编语句的映射 战德臣 教授计算机语言与编译器-一种抽象-自动化机制示例(7)小结 战德臣 教授计算机语言与编译器-一种抽象-自动化机制示例(7)小结 语句词汇的识语句词汇的识别别(词法分析词法分析)语句模式的识语句模式的识别别(语法分析语法分析)复杂语句模复杂语句模式的构造式的构造基本语句模式与基本语句模式与汇编语句的映射汇编语

    27、句的映射汇编语句的组汇编语句的组装与次序调整装与次序调整常量与变常量与变量的替换量的替换形式语言形式语言与自动机与自动机编译系统编译系统/编译原理编译原理战德臣 教授计算机语言向哪个方向发展?计算机语言的发展(1)如何更方便地编写程序?战德臣 教授K=0;For I=1 to 100 Step 1 If I 30 K=K+I;用高级语言编写程序计算机语言的发展(1)如何更方便地编写程序?符号化符号化结构化结构化语句化语句化编译化编译化机器语言程序高级语言源程序高级语言源程序战德臣 教授-像堆积木一样构造程序计算机语言的发展(1)如何更方便地编写程序?面向对象的程序设计语言与可视化构造语言Com

    28、mand1ClickPrivate Sub Command1_Click()/此处放置单击按钮此处放置单击按钮Command1时要执行的程序语句时要执行的程序语句;Text2TextChangedPrivate Sub Text2_TextChanged()/此处放置文本框此处放置文本框Text2中内容发生变化时将要执行中内容发生变化时将要执行的程序语句的程序语句;TextTextChangedPrivate Sub Text_TextChanged()/此处放置文本框此处放置文本框Text中内容发生变化时将要执行的中内容发生变化时将要执行的程序语句程序语句;Text1TextChangedP

    29、rivate Sub Text1_TextChanged()/此处放置文本框此处放置文本框Text1中内容发生变化时将要执行中内容发生变化时将要执行的程序语句的程序语句;Text1GetFocusPrivate Sub Text1_GetFocus()/此处放置文本框此处放置文本框Text1中内容发生变化时将要执行中内容发生变化时将要执行的程序语句的程序语句;战德臣 教授计算机/CPU能识别与执行的机器语言程序机器语言程序汇编程序编译程序编译程序编程效率高执行效率高汇编语言源程序汇编语言源程序自动转换高级语言源程序高级语言源程序自动转换语言积木块语言积木块自动转换更大的语言积木块更大的语言积木

    30、块自动转换编译程序计算机语言发展的基本思维计算机语言的发展(2)计算机语言的发展思维?战德臣 教授不仅要用语言,还要发明新语言(可执行)计算机语言源程序新语言源程序编译器新语言新语言:书写规范及其语法结构编辑器类自然语言类自然语言图形化的模型图形化的模型积木块式编程语言积木块式编程语言智能化语言及模型智能化语言及模型(面向各专业的面向各专业的)专业化语言专业化语言计算机语言的发展(3)能否提出新语言?战德臣 教授 计算机技术是伴随着计算机语言的不断发展而发展起来的u因计算机语言获得图灵奖的l1966 A.J.Perlis:编程技术和编译架构l1972 E.W.Dijkstra:ALGOL语言l

    31、1974 Donald E.Knuth:程序语言l1977 John Backus:高级语言,Fortranl1979 Kenneth E.Iverson:编程语言,APLl1980 C.Antony R.Hoare:编程语言l1981 Edgar F.Codd:关系数据库语言l1984 Niklaus Wirth:开发了EULER、ALGOL-W、MODULA和PASCAL一系列崭新的计算语言。l1987 John Cocke:编译器l2001 Ole-Johan Dahl、Kristen Nygaard:面向对象编程,SIMULA I 和SIMULA 67中。l2003 Alan Kay:

    32、面向对象语言,Smalltalkl2005 Peter Naur:Algol60程序语言。l2006 Fran Allen:编译器计算机语言的发展(3)能否提出新语言?战德臣 教授计算机语言的发展(3)能否提出新语言?FORTRANALGOLB CPASCALBASICVisual BASICDelphiC+SimulaPythonJavaJavaScriptC#PerlSmalltalk战德臣 教授计算机语言的发展(3)能否提出新语言?FORTRANALGOLB CPASCALBASICVisual BASICDelphiC+SimulaPythonJavaJavaScriptC#PerlSmalltalk战德臣 教授/10/2958.

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:大学计算机第6讲-由机器语言到高级语言-程序编写编译课件.ppt
    链接地址:https://www.163wenku.com/p-7449463.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库