网络教学 Programming Language Design and Implementation 程序设计语言 E
程 序 设 计 语 言 Programming Language Design and Implementation 网络教学
第3语言翻译问题 学习目标]:学习和掌握语言的语法的基本概念 和基本要素,理解翻译的步骤;学习和掌握BNF 文法 了解通用语法的标准,学习语法的基本要素; 了解几种语言的特点; 学习和掌握源程序分析和目标程序综合的原理和 方法; 掌握和使用BNF文法;
第3 语言翻译问题 [学习目标]:学习和掌握语言的语法的基本概念 和基本要素,理解翻译的步骤;学习和掌握BNF 文法。 -了解通用语法的标准,学习语法的基本要素; -了解几种语言的特点; -学习和掌握源程序分析和目标程序综合的原理和 方法; -掌握和使用BNF文法;
[重点和难点]: 本章的重点是:源程序的分析和目标程序综合的 原理与方法;BNF文法 本章的难点是:语法二义性,语义分析原理; [知识点] 语法;语义;二义性;独立子程序定义;独立数 据定义;嵌套子程序定义;独立接口定义;词法 分析;语法分析;语义分析;优化;连接与载入; 系统自举;语法树;BNF文法
[重点和难点]: 本章的重点是:源程序的分析和目标程序综合的 原理与方法;BNF文法; 本章的难点是:语法二义性,语义分析原理; [知识点]: 语法;语义;二义性;独立子程序定义;独立数 据定义;嵌套子程序定义;独立接口定义;词法 分析;语法分析;语义分析;优化;连接与载入; 系统自举;语法树;BNF文法
本章概述 ●对于在虚拟计算机上实现的高级语言程序, 必须经过翻译才能在实际的计算机上运行。 ●翻译一般要经“词法分析”一>语法分 析”一>“语义分析” 代码优化” “目标程序生成”等5个阶段。其中,“语 法分析”阶段最为重要,它是描述程序结构 的主要手段。 “遍”的概念? “一遍”翻译?“二遍”翻译? 遍 翻译?
⚫ 对于在虚拟计算机上实现的高级语言程序, 必须经过翻译才能在实际的计算机上运行。 ⚫ 翻译一般要经“词法分析”—>“语法分 析” —>“语义分析” —>“代码优化” — >“目标程序生成”等5个阶段。其中, “语 法分析”阶段最为重要,它是描述程序结构 的主要手段。 ⚫ “遍”的概念? ⚫ “一遍”翻译?“二遍”翻译? “三遍” 翻译? 本章概述
本章主要内容 3,1编程语言语法 3,2翻译步骤 3.3BNF文法
本章主要内容 3.1 编程语言语法 3.2 翻译步骤 3.3 BNF文法
31编程语言语法 ●语法:以句子中词的排列来表明它们的彼此关系 如C语言中,x=y+l具有正确的语法,而x+-则语 法错误。 语法是理解一个程序的重要手段,也为将源程序 翻译成目标程序提供了必要的信息。 ●但,只有语法是不够的。如“张三踢足球”和 “足球踢张三”,语法都正确,但语义?如 x=254+367,结果为5,6,6,21?
3.1 编程语言语法 ⚫ 语法:以句子中词的排列来表明它们的彼此关系。 如C语言中,x=y+z具有正确的语法,而x+-则语 法错误。 ⚫ 语法是理解一个程序的重要手段,也为将源程序 翻译成目标程序提供了必要的信息。 ⚫ 但,只有语法是不够的。如“张三踢足球”和 “足球踢张三”,语法都正确,但语义?如 x = 2.54+3.67, 结果为5,6,6.21?
本节主要内容 ●通用语法标准 ●语言的语法要素 主程序一子程序结构
本节主要内容 ⚫ 通用语法标准 ⚫ 语言的语法要素 ⚫ 主程序-子程序结构
通用语法标准 ●可读性: 如果一个程序的算法和数据结构能够明显的 从程序文本中观察出来,则这个程序是可读 的。可读的程序称之为自引证的。 可读性成为如今程序编制的重要目标是一。 增加可读性的方法:用自然语句格式、结构 化、自由使用关键字和噪声码、注释、不限 标识符长度、助记符、自由域格式、完整的 声明
通用语法标准 ⚫ 可读性: – 如果一个程序的算法和数据结构能够明显的 从程序文本中观察出来,则这个程序是可读 的。可读的程序称之为自引证的。 – 可读性成为如今程序编制的重要目标是一。 – 增加可读性的方法:用自然语句格式、结构 化、自由使用关键字和噪声码、注释、不限 标识符长度、助记符、自由域格式、完整的 声明
可写性: 可写性是指程序易于编写。语法结构简单的 语言程序可写性好。 增加可写性的方法:设计简洁、整齐的语法 结构。允许保留不明确声明和操作的隐含。 可写性与可读性是一对矛盾。简洁的结构可 增强程序的可写性,但降低了程序的可读性 如C语言,可写性较好,但可读性差。允许 保留不明确声明和操作的隐含可增强可写性, 但会降低可读性,同时可检验性差
⚫ 可写性: –可写性是指程序易于编写。语法结构简单的 语言程序可写性好。 – 增加可写性的方法:设计简洁、整齐的语法 结构。允许保留不明确声明和操作的隐含。 – 可写性与可读性是一对矛盾。简洁的结构可 增强程序的可写性,但降低了程序的可读性。 如C语言,可写性较好,但可读性差。允许 保留不明确声明和操作的隐含可增强可写性, 但会降低可读性,同时可检验性差
●易检验性: 证明程序的正确性。 这不仅涉及到语法,主要涉及到语义的正确 性验证。 目前,主要通过一些测试方法,以及谓词演 算方法来验证
⚫ 易检验性: – 证明程序的正确性。 – 这不仅涉及到语法,主要涉及到语义的正确 性验证。 – 目前,主要通过一些测试方法,以及谓词演 算方法来验证