付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3/56A第5讲由机器语言到高级语言:程序编写与编译理解:“如何编写计算机可以执行的程序?” “为什么 编写程序越来越方便?”以及“用各种语言编写的程序, 机器为什么可以执行?”2/56内容提要目标:理解如何编写计算机可以执行的程序更大的语*积水块W r一Ed加3F一I杵 一礎«1 彳T机薔£?序1基本思维:高级语吉与汇编语吉9语吉与编译高级语吉程 序的构成要素9不同层面的计算机2.42.4.1由机器语育到高级语育:程序编写与编译 由机器语言到汇编语言由机器语言到汇编语言机器语言、指令系统、机器语言程序汇编语言、源程序与汇编程序2.4.1由机器语育到汇编语言 为什么需要计算
2、机语言?4/56算法、计算机语言与计算机程序步骤书写的规范、语法规则、标准的集合是人和计算机都能理解的语言解决问題 的步骤计算机能够理解与 执行的解决问题的步骤6/56计算机能够理解与执行什么?计算机语言机器语言指令系统:CPU用二进制和彼码提供的町以解释并 执行的命令的集合。/ Wfcfoprgwor 计算7T0并存的程序操作码地址码100001 10 00000111 100010 11 00001010机器语吉用二进制和编码方式提供的指令系统 所编写程仔的语古被称为机器语占所有程序都转换成机器语言程序.计算机才能执行100001 1000000111100010 100000101010
3、0101 1100000110问:用机器语吉编写程序存在什么问题呢?6/56计算机语言汇编语言用符号编写程序=亠译=机器语言程序人们提供r用助记符编写程序的规范/标准。同时开 发了一个翻译程序,实现了将符号程序自动转换成机 器语程序的功能。A, 7A, 10(6), A操作码地址码100001 1000000111MOV A, 7计算7+10并存储的程序MOV ADDMOV HLT汇编语肯J是用助记符兮編的汇編语育源程序S足用汇編语育編出的秆rr-汇编程序:是将ft编诰冷源程序翻译成机器诰d榨序的榨序。7/56足人和计舜机 理解的IASI 丁 I-MOV A, 7 AUU A. 10MOV .
4、AIILTiln:加尺“r 门动,$慢丸磁7庚0并存程序10000110 00000111 inooinii 00001010 10010111 00000110 111101004*»wflroM左i£74d0芹作储的机SkSA&ir由汇编语育到高级语育8/56由汇编语言到高级语言-高级语言、源程序与编译器符号化程序机器不IB直接执行怎么办?计算机语言汇编语言一汇编程序(编译器)汇编语育程序处理过程/liWjcny iPj« mnnee谄肚 Kt 的偵令为什么还要提岀高级语言?9/56计算机语言高级语言人们提供了类似f自然语#方式、以语句为单 位书写程序
5、的规范/标准 并开发了一个译程 序.实现了将语句程序自动翻译成机雅语育程 弊的功能。计M7*10并存储的程序高级语吉s是用类似自然语H的语句編庁的谄扒高级语吉jS程序:是用尚级谄H编出的糾札编译程序:足将高级语才源程序H译成机器语才程序的程Result = 7+10;Return高级语言和汇编语育的差别在哪里?10/56KHHHOll 00001010 10010111 00000111 11110100MOV A, 7 ADD A. 10MOV (6K AHIT 高级语言:机器无关性f 一条高级语1(语句往往可由若干条机器语首语句实现且 不具有对应性汇编语言2机器相关性:汇編语肓语句和机语吉
6、语句有对应性高级语言程序处理过程示意Results 7+1(1 Return编译器如何实现呢?11/56高级语言编译器高烫语言»«4二班创如机语I编译规则Result = 7+10 Return側12/56高级语言编译器轄本思想高级语言编译器基本思想14/56v = c + c;Result:具体的变吊:7,10:具体的常S变化的部分注:V:变蜀 C: Wfi= 赋值符号* 加法运算符号 :语句结束符不变的部分(保留字)赋值符号 加法运算符号 语句结束符语句模式的识别14/56“模式”运算式的识别及常量、变量的标识+,空格,;; S起始注:字母农V. C.状态;S7终止状态
7、;nUll衣示什么也不写回。242高级语言编译器基本思想 模式化的语句?由“具体的”运算式到“模式”运算式Result = 7 + 10; Sum = 8 + 15;K = 100+ 105;(C)能识别两种模式“V二C和 “V=6C;并能公除空格的图乂机示 s-tw16/56复杂模式的預先构造复杂模式转换为简单模式及其组合16/56v = c + c;简单模式与汇编语句的映射将简单模式转换成汇编语言语句序列,用常量值和变量地址进 行替换,组合次序调整,得到最后的汇编语言程序MOV (<V,1>), AV,1MOV A, <C, 1> ADD A, <C, 2&g
8、t;MOV A, 7ADD A, 10MOV (6), AMOV A, <C, 1> ADD A, <C, 2>MOV (<V,1>), A17/56小结18/56由机器语育到高级语育:程序编写与编译 243计算机语言的发展计算机语言的发展如何更方便地编写程序?19/56可视化构造语言像堆积木一样构造程序IDICep erJ|AIaEJ争uu6a_lG9、u輕*4 JrgBCfc<»ct I CsmaM 三 Proc CIWcPrivate Sub Covnmandl _CHcfc(>"lUMUI «X«8
9、Mn«f«n If"行 MMHbObfect Text2耳 Proc TextChangi«dPrivate St金 Tex12 TeilCtianoed(>I.Px】n冋4* Labcll TrxtlIa2 |:cx<£ « « »Cbfxt Ttxtd I TextlPrivolc Sub Text1 _TextC*wnged4Private Sub Text_TextC hangedO|TtVT1计算机语育的发展思维?计算机语言发展的基本思维rramiRI* nPtfx I TetCh«
10、M«i . Prc< jCMFocuB 3PfrvM* Sub T*xtiO«IFocusOM”:iT20/56能否提岀新语言?21/56不仅要用语言,还要发明新语言厂编辑器新语却范及共讥法结构IM规J新语言源程序类自然语言 图形化的模型+ 积木块式编程语盲能化语言及模型U (面向各专业的)专业化盲编译器可执行 计算机语玄程序22/56计算机技术是伴随着计算机语言的不断发展而发展起来的因计算机语言获得图灵奖的 1966AJ. Perlis:編秤技术和编泽架构 1972 E.W. Dijkstra: ALGOL 1974 Donald E Knuth:別序谄占 1977
11、 John Backus :岛级语言,Fortran1979 Kenneth E, Iverson:编IVWvn.APL 1980 C Antony R. Hoare:编程语 rt 1381 Edgar F. Codd:关系数抑:库常冷 1984 Niklaus Wirth: JOfEULER、 ALGOL-W、MODULA 441 PASCAL 一系列崭新 的讣算语言 1987 John Cocke:编泽器2001 Ole-Johan Dahk Kristen Nygaard: ftf 向对徐编程SIMULA I和SIMULA 67中 2003 Alan Kay :1M 向对纵语 m,Sma
12、lltalk 2005 PeterNaur:Algol60粋序时.2006 Fran Allen:編评器Mother Tongues4® k 11 电.FORTRANI24/56计算机语言(程序)的基本构成要素24/56244计算机语言(程序)的基本构成要素 计算机言程序的基本构成有哪些?认识计算机语言程序保9字“保留字”为编译S 识别和处理语句而确 定的一些待定符号=0;常量or I =1 to 100 Step 1 If 1<=50 && I >30语句25/56你能够书写三种形式的表达式码?常量、变量与表达式A1 + (B2 - XI + 76) *
13、 3算术表达式示W算术表达式的结果是数值:(+A1 (* (+ (- B2 X1) 76) 3)A1 + (B2 - x1 + 76) * 3(B2 + yy4)/ L3 - xx3比较达式示例.比较表达式的计算结果是逻 “真*或“假* :Grade < 90Grade >= 70N4 < A1 + B2 + 20/a: ai*b2*2o为算术衣达式.计算訴再与皿的值进疔比较逻辑我达式示例.逻辑表达式的计算结果是逻辑“真”或“假”;(X1 >= A1) && (B2 <> y2)将表达式的计算结果赋值给一变*:赋值语句M = X>Y+5
14、0;M = (X>Y) AND(X<Y);K =K + (5*K);你知道怎样控制程序的执行次序吗?26/56顺序结构语句与程序控制程序执行示例G5G6G7G8G9G9G9G9G9*G8; + G7; + G6; + G5;12 3 4 5 =5 6 7 8 9 G G G G G4>G8; + G7; + G6; + G5:G6G7G827/56E语句与程序控制分支结构IF条件表达式(条件为真时运行的)程序语句序列1 ELSE(条件为假时运行的)程序语句序列2 If D1>D2D1=D1-5; ElseD1=D1+10; Y = 50;Z = 80;X = 30;X
15、= Z +Y;If Y> Z X = X-Y; ElseX= X - Z; X = X +Y;If X>Z X = Y; X = X-Z;If X>YX = X-Y; 28/56语句与程序控制50Y = 50;Z = 80;X = 30;X = Z +Y;If Y>Z X = X-Y; ElseX= X - Z; X = X +Y;If X>Z X = Y; X = X-Z;If X>Y X = X-Y; 30/56Sum=0;For I =1 to 10000 Step 2 Sum = Sum + I;Next I语句与程序控制循环结构(冇界循环结构)Fo
16、r (计数器变量=起始值To结束值増量表达式) 衛坏体的程序语旬序列Next 计数器变量Sum=0;For I = 1 to 5 Step 1 Sum = Sum + I; Next I继续其他语句30/56语句与程序控制循环结构(条件循环结构)Do循环体的程序语句序列While (条件表达式);X=1;Y=2;Sum=0;DoSum = X+Y;X=X+1;Y=Y+1;Sum While (Sum<=10)其他语句31/56语句与程序控制循环结构(条件循环结构)Do循环体的程序语句序列While (条件表达式);X=1;Y=2;Sum=O;DoSum = X+Y;X=X+1;Y=Y+1
17、; While (Sum<0)其他语句你知道怎样控制程序的执行次序吗?32/56语句与程序控制循环结构(条件循环结构)While (条件表达式)Do 循环体的程序语句序列YSumX=1;Y=2;Sum=O;While (Sum<0)Do Sum = X+Y; X=X+1; Y=Y+1;U其他语句:34/56由机器语育到高级语言:程序编写与编译 2.4 5计算机语言(程序)的基本构成要素计算机语言(程序)的基本构成要素(II)34/56245计算机语言(程序)的基本构成要素函ft是很要的程序构造手段,你知道吗?函数函数名0数学上的函数只是一个符号表达,而计算机 程序中的函数则是一段可
18、以执行的程序35/56你知道函ft是种抽象吗?函数函数是一种抽象,用一个名字代表一个程序段落函数的使用实际参数Pt州別AT: 伽字"站:5c«nort“羽(缈"M Sum(ln1 &Mrz=Sum(6,10)y-Sum(20,30)函数的使用实际参数函体,实现函效功能的程序语句序列 以形式参散作为«要处理的对象 当被调用时,用实际參换相应的形 式參进行程序执行-你知道计算机语育或操作系统提供哪些两数吗?36/56函数的定义血 Main()形式参数系统提供的可以使用的函数类别数学运算函数-如三角函数.指数与对数函数.开方函数籌;例如sin(a)-
19、Log(x)芻:数据转换函数-如字母人小写变换、数值塑数字和字符塑数字相71转换零!字符串操作函数.如取f串、计漳字符申枚度等:例如,Lenfabcd-):输入输出函数-如输入输出数位、字符、字符出等:例如,Prinif(-).Scanf(-)等:文件操作函数如文件的打开、读取、写入、关闭等:其它函数如取系统H期、绘制图形等38/56你忘记了递归和迭代吗?程序示例:阶乘的递归程序如下示意 long int Fact(int n) long int x;If (n>1) X = Fact(n-1);广递归调用欄/return n*x; else return 1;广递归基础*/tort “
20、M*li戋W>'TgHhims-血1Am和Qt)1Ii(-4>X °k iwh、EHv -aww、 ewfij占竺:ipiituMBiech«i»ceR38/56初tofrtPriHluct1Oiuntcr循坏甜1次11循环第2次12術坏第3次23循环第4次64術坏第5次245循坏第6次1206当刃M1 H寸 ”;<1 z; X (n I) X .X I当M > 1 时你忘记了递归和迭代吗?程序示例:阶乘的迭代程序如下示意long int Fact(int n) int counter; long product = 1; for
21、counter = 1 to n step 1 product = product * counter; 广迭代/ return product;你知道变*和存備单元有什么关系吗?39/56变量及其存储变*与存储单元变量2ZV X=23:*CmtS心ZCtwZ= .ASCD:< Z才00000000 0001011101000001 0100001001000001 0100001001000011 0100010000000000存廿地址000000000000000$内容指针是什么?变量及其存储 “变*"与“指针变*”string *P/ABCCr;String V = S
22、BCD*;00000000 0001011101000001 010000104: OOMOOOO OOOOOOJ i 010000010100001001000011 010001000000000040/56存储地址存储内容OOOOOOOO 000000000000010000001000t.pooooooo 0000000.>0000000000000100400000000 00000010W00001100OOOOlOlO00000000 OOOOOOll/0000000000000000 ."68008 00000100 4010000010100001000000
23、000 OOOOQIOI010000110100010000000000 000001100000000000000000OOOOOOOO OOCXXI HI0100000101000010OOOOOOCX) 0000)00001(X)00110100010000000000 000010010000000000000000变*为什么需要声明类型?41/56变量及其存储 “变*”与“变量类型”及其存储如何控«读取向最/数組和变*的不同元*?42/56用名字表示的存储 朋址,即安毎名存储地址存储内容(即茂量值)MarkOQOOQOOO 00000000QOOOOOOO 00000001
24、00000000 0000001000000000 00000011(注:可诵过ISftrt(发生改变)Sum00000000 0000010000000000 00000101(注:可通过航值发生改变)Distance00000000 0000011000000000 00000111(注:可退过賦佰发生?If变)向量实例2*illOHOCH “ I dCH(0M«rM OU ME(«Hoai> itijatctlOHM OOmcB.ICIMM:& 1趺4事wi>«e*a3ciA0U»鼻.Miu*呷y(«H«CH
25、UINU1町逋wiet就賣44|向量存储实例Next J Avg s Sum/(n+1);多元索变量及其存储向最或列表是有序数据的集合熨变址.向锻中的每一个尤董 都WT同一个数据类51,用一个统一的向名和卜标来唯一的确 定(435中的尤賞在存*疔设计谄有中,又称为数组。向屋名通常农示该向址的起始存储地址.而向虽F标农示所招 向元素相对于起蛉存储地址的偏移位a-n = 4;Sum=O;For J =0 to n Step 1 Sum = Sum + mark J ;多元素变*使得程序可通过下标来操作多元素变*中的毎一个元素43/56E如轲控«读取向*/数組变*的不同元*?多元素变量及其
26、存储矩阵或表是按行按列组织数据的集介熨变堆通常是一个二醴向»可我示为如M?3 或M23形式,即用符号名加购个下标來唯一确定表中的一个元索,前一下标为行序号,応 一下标为列序号。系统会白动将其转换为对应的“储地址.找到相应的存储单元°住程序设 it Iff d中)31所或农足-个多细:故组变航。衣实例II2522X45398丿442128010034837516彳234列234 冲Sum=0;For I =1 to 4 Step 1 For J =1 to 4 Step 1 Sum = Sum + MIJ; Next JNext I Avg = Sum/16;逻辑上是二维的按
27、行、列下标来»作一个元素,如M【2,3或M2】【3n物理上仍I日是一 维存储的-由“表起始地址*(行下标"ir列ft/行列下标"-这种转换可由系统自动 完成.程序中只需按下标操作即可.即如M23程序是构造的,不是编的?44/56传统程庁构造及其衣达方法宙粗到细为控制货杂性,先以函数来代替 琐碎的细节,着重考虑函数之间 的关系,以及如何解决问题 在前一阶段考虑清楚后或编制完 成后,再编写其中的每个函数. 而歯数的处理同样采取这种思路MainOimFunc1(,)t /PuncIfinMttUnW耀何/八小* imFunc2()"C 锻体 Fune4(); /.JimFunc3(.,Jc /Func3enffl13tf4-Func6();1.产Func1|.-J; kFunc2();"Func3();intFunc4)*Pur)e4帕的«体 庙句序刿imFunc5(.)4/;FuncA(n£An# 力程序是构遗的,不是编的?45/56传统程庁构造及其衣达方法也可以山细到粗上一层次的函数依据下层 函数来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏产业的现状与发展趋势分析
- 旅游行业服务标准化培训教程
- 合同模板2026年版系统方法(速成版)
- 冬季防静电小技巧及日常生活中的应用
- 虚拟现实技术在游戏设计中的创新应用
- 房地产项目开发流程标准化研究
- 金融科技在金融稳定中的作用
- 金融投资中的风险冲突分析
- 新媒体环境下信息传播的创意与策划
- 历史事件与人物研究报告集
- 审计村组财务管理制度范本
- 蓝色产业工人背景的冬季安全指南及应对措施2
- 2026年国企物业招聘考试试题及答案
- 工装夹具管理规范
- 2026年山西药科职业学院单招职业技能考试题库含答案详解ab卷
- 2026年部编版三年级道德与法治下册全册教案
- 2026四川广安市邻水县招聘县属国有企业领导人员4人笔试备考试题及答案解析
- 饮用水备用水源工程社会稳定风险评估报告
- 医护人员手卫生的重要性
- 危重患者感染控制
- 2025年电梯管理人员考试题及答案
评论
0/150
提交评论