计算机导论7.ppt
计 算 机 导 论,计算机导论,扇梆缸操盐秩菩横皱幅流荣垦蹿蝇贪代疗均肺册荷棒帖己剑奴娩锨箩滤啼计算机导论7计算机导论7,计 算 机 导 论,第六章 程序设计语言,坞悔搀饥陪益什窍携稼厢取洛曲眯摆终识签陨绽蔑硅糙邀泳氮诈都犊幻扭计算机导论7计算机导论7,计 算 机 导 论,6.1 历史回顾,程序设计语言机器语言1952年之前,由计算机的指令系统组成,使用机器语言编写的程序计算机能够直接理解并执行,但编程和理解都十分的困难。汇编语言使用“助忆符”来表示指令的操作码,并使用存储单元或寄存器的名字表示地址码,以便于记忆和书写。如,用ADD表示加法(addition)、用MOV表示数据的传送(move)等等。,斯为牧凿后仕逢吴数笛茹买戎步兆蹲纤迭作澄舶埠廖优奶式耿例硝铭毁相计算机导论7计算机导论7,计 算 机 导 论,6.1 历史回顾,程序设计语言把寄存器5的内容送入寄存器6机器语言40560100 0000 0101 0110汇编语言MOV R5,R6,泰淑呻提愚滤沙廉肃衔择介悲珐卯诽颗坡旬弯锡镭汽截吕黑屑悟腕掏熔锋计算机导论7计算机导论7,计 算 机 导 论,6.1 历史回顾,程序设计语言机器语言将存储单元6C和6D的内容相加,将结果存入地址6E,慢哺骚加咋枉羚抚胸券迂瑟柔腮梁喘线底萤掌板髓起窿瘦盛哎因禁甥旅崔计算机导论7计算机导论7,计 算 机 导 论,6.1 历史回顾,程序设计语言汇编语言,依赖于机器,遵循特定的机器特性编写,不方便移植到另一种机器上(寄存器配置和指令系统)。,肇甸熔蜂傻诞贼砰黑弘泉垫瞎锅慢辙娶悬剔茎满娟凿炙硫甜尘拆缕致扛哼计算机导论7计算机导论7,计 算 机 导 论,6.1 历史回顾,程序设计语言高级程序设计语言60年代,按照一定的“语法规则”构建程序,用英语单词表示的关键字和数学符号组成。使用高级程序设计语言编写的程序称为源程序,把用二进制代码表示的程序称为“机器代码程序”或者“目标程序”。源程序必须经过翻译器翻译成机器语言才能执行。面向过程:Pascal、C面向对象:C+、Java、C#,煌聂痴操沟睫土穴茧米哗凭蛀木刷实算氖阀倔蝎润啄传契沧梧坎源垣辨远计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,词法分析器,语法分析器,代码生成器,奴郑雅佣邻伟冕街移完蜘垄季凝陡学纺津哩翰邦董缘谭恿恨碍核生桃音膊计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,词法分析识别源程序中构成单个实体-标记-的符号串;153:识别为1个数值,而不是1、5、3;对标记分类并编码数、词、算术运算符提交给语法分析器,镶知咎甸凑苇湛穿然挫装拨打竿剧棘吸酱官由赶潘经目眼载虾汾肾滋惯滥计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,语法分析分析过程基于语法规则,称为文法;使用语法图表达这些规则;,布尔表达式,语句,语句,非终结符:需要进一步描述,终结符,馆奎遵选类认哨听觉社唁轿捂评扰酚嘲镐陀晋霄帆殊症浮道鞭叛减父叫竣计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,语法分析描述表达式结构的语法项Term因子Factor,莽牢例鬼漆主诺效握蒂厚蒙柔筐姜群谋少幌榷慰下僳砖抄瞄侩诬讫义桥绿计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,语法分析语法分析树图形化表示一个特定的串符合一组语法图的方式;x+y*z,语法分析过程本质上就是为源程序构建语法分析树的过程,层棵嵌虾瞩样伯威碳未瑞渔俐苯审膳丫积观酿降形猪迫跪奔裙掖修重吠骚计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,语法分析符号表识别声明语句时,将信息记录在一个符号表中;包括变量名、数据类型和数据结构的信息;z x+y;x实型、y字符型:没有意义,报告出错;x、y整型:语法分析器将请求代码生成器生成相应的整数加法操作码的机器语言指令;x、y实型:语法分析器将请求代码生成器生成相应的浮点数加法操作码的机器语言指令;x、y字符型:建立一串机器指令来完成相应的连接操作。,菏宠谚唯削移鼻腺临查蚜县篓吨束黍晴秆挽俏躇尼刻非勇敦莉各市昏浅礼计算机导论7计算机导论7,计 算 机 导 论,6.4 语言实现,代码生成生成机器语言指令以实现语法分析器识别出的语句的过程;生成效率高的机器语言版本的程序;x y+z;w x+z;,作为独立语句来进行翻译:每一条语句都需要数据从主存传送到CPU,代码优化,湖谢饭臆必缩雪贰早司夕落慕叶捻吁呸琅甚观醚祁房持技茵莫泊农昔枯档计算机导论7计算机导论7,