程序语言的语法描述

程序语言的语法描述

ID:46479931

大小:1.19 MB

页数:56页

时间:2019-11-24

程序语言的语法描述_第1页
程序语言的语法描述_第2页
程序语言的语法描述_第3页
程序语言的语法描述_第4页
程序语言的语法描述_第5页
资源描述:

《程序语言的语法描述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高级语言及其语法描述西北大学软件工程研究所龚晓庆2021/7/16SEI2Contents程序语言的定义1高级语言的一般特性2上下文无关文法3形式语言42021/7/16SEI32.1程序语言的定义一个程序语言是一个记号系统如同自然语言一样,程序主要由语法和语义两个方面定义语法描述程序中单词的排列方式或结构语义描述程序的含义有时候语言定义也包含语用信息语用主要是有关程序设计技术和语言成分的使用方法,它使语言的基本概念与语言的外界(如数学或计算机的对象和操作)联系起来2021/7/16SEI4语法任何语

2、言程序都可以看作是一定字符集(字母表)上的字符串合式的程序形式上正确的程序所谓一个语言的语法是指这样一组规则,用它可以形成和产生一个合式的程序这些规则的一部分称为词法规则另一部分称为语法规则(产生规则)词法规则和语法规则规定了程序的形式结构,是判断输入字符串是否构成一个合式程序的依据。2021/7/16SEI5词法规则单词符号单词符号是语言中具有独立意义的最基本结构常数、标识符、基本字、算符、界符词法规则是指单词符号的形成规则描述和分析的工具有限自动机(FiniteAutomata)正规表达式正规文法

3、2021/7/16SEI6语法规则语法范畴(语法单位)表达式、语句、过程、程序语法规则是语法单位的形成规则,它规定了如何从单词符号形成更大的结构,即语法单位。描述工具上下文无关文法(Context-FreeGrammar,CFG)2021/7/16SEI7语义所谓一个语言的语义是指这样的一组规则,使用它可以定义一个程序的意义。这些规则称为语义规则语义规则的描述没有公认的形式系统现常用属性文法2021/7/16SEI8程序语言和程序程序语言的基本功能描述数据和对数据的运算程序所谓一个程序,从本质上说是描

4、述一定数据的处理过程2021/7/16SEI9程序的层次结构程序子程序或分程序语句数据引用表达式算符函数调用2021/7/16SEI102.2高级语言的一般特性高级语言的分类1程序结构2数据类型和数据结构3语句与控制结构42021/7/16SEI11高级语言的分类强制式语言命令驱动,面向语句应用式语言函数式语言,LISP基于规则的语言检查条件,执行动作,Prolog面向对象语言封装,继承,多态2021/7/16SEI12程序结构示例过程式程序FORTRANPascal基于对象/面向对象程序AdaJav

5、a2021/7/16SEI13数据类型与操作数据类型的三要素用于区别这种类型数据的属性这种类型的数据对象可以具有的值可以作用于这种类型的数据对象的操作数据类型初等数据类型数据结构抽象数据类型2021/7/16SEI14初等数据类型数值数据整数,实数;可以进行算术运算逻辑数据逻辑型数据,位串;字符数据字符和字符串指针类型2021/7/16SEI15标识符和名字标识符程序中的各种名字都用标识符表示标识符的构成规则名字具有明确的意义和属性存储单元、值类型、作用域2021/7/16SEI16数据结构数组下标、

6、下标变量数组的存放方式与元素地址记录字段,域存放方式与边界对齐其它字符串、表、栈2021/7/16SEI17抽象数据类型抽象数据类型包括数据对象的一个集合作用于这些数据对象的抽象运算的集合这种类型对象的封装2021/7/16SEI18语句与控制结构表达式变量、常数是表达式;若E1、E2为表达式,θ是一个二元算符,则E1θE2是表达式;若E是表达式,θ是一元算符,则θE(或Eθ)是表达式;若E是表达式,则(E)是表达式。算符操作数个数、优先级、结合性例——C语言运算符2021/7/16SEI20语句按功

7、能分类说明性语句执行性语句赋值、控制、输入输出按形式分类简单语句复合语句2021/7/16SEI212.3程序语言的语法描述上下文无关文法1文法和语言2推导、语法分析树3二义文法4语法语言的语法是程序或句子中单词的排列方式自然语言形式语言我们使用产生规则来描述语言的语法上面的产生规则说明一个C语言的if语句的结构一个if然后一个(,某种表达式,再一个)最后是某种语句2021/7/16SEI222021/7/16SEI23基本术语和概念有穷字母表∑一个符号的集合如ASCII、unicode、简体中文GB

8、符号字母表∑中的元素如‘a’‘王’符号串由∑中的符号构成的一个有穷序列如”a”、”while”、”a=b+2”、”王者之风”2021/7/16SEI24基本术语和概念空字ε不包含任何符号的序列不是空格如C语言中的""∑*∑上所有符号串的全体,ε也包含在其中如∑={a,b},则∑*={ε,a,b,aa,bb,ab,ba,aaa,…}空集ø不包含任何元素的集合基本术语和概念∑*的子集U和V的(连接)积定义为即集合UV中的符号串是由U和V的符号串连接而成的不满

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。