编译原理速成

文章探讨了高级语言的语法结构,包括上下文无关文法的概念,如四元式和巴科斯范式。它解释了词法规则和语法规则,以及如何使用有限自动机和上下文无关文法进行描述。此外,文章还涉及语义、二义性问题以及文法分类,如0型、1型和2型文法。
摘要由CSDN通过智能技术生成

高级语言及其语法描述

2.1上下文无关文法

四元式的例子

几点规定

1.箭头,巴科斯范式

2.缩写,候选式,

3.文法——>开始符号和产生式

2.2程序语言

词法规则:单词符号的形成规则,是有独立意义的最基本结构(常熟、标志服、记本子、算符、界符)

描述工具:有限自动机

语法规则:语法单位的形成规则,规定了如何从单词符号形成语法单位(表达式,语句,分程序,过程,函数,程序)

描述工具:上下文无关文法

语义:字面意思,程序的意义

                基于属性文法的语法制导翻译方法

程序基本功能和层次结构

基本功能:描述数据,对数据运算

程序语言的语法描述

1. 概念

        1.有穷字母表Σ(每个元素称为一个字符

        2.Σ上的字是有Σ中的字符构成的有穷序列

        3. 不含字符的序列为空串

        4. Σ*表示Σ上所有字的全体,包括空字

 V*是V的闭包

V+是V的正规闭包(去除空字

2. 推导

 产生式,a1推导出an

推导的例子 

(一种推导

句型:右端有非终结符

句子:右端仅有终结符

语言:全体句子 L(G)

 包含E自己,都叫句型(因为这里边都是非终结符

 A--->Ab左递归

 后会多次调用

aab aaab aaaab

 给出文法(记住)

最左推导:任何一步都是最左非终结符(反应在语法树上,就是最左子节点

最右推导:任何一步都是最右非终结符

 分别是左推导和最右推导

(这里讲错了 i*i+i是句型)

 一颗语法树是不同推导过程的共性抽象

最左推导子树 最右推导子树 语法树不止一个

二义性

1.定义:某个句子对应两个不同的语法树,则说这个文法是二义性的

2.语言的二义性:没看懂

3.二义性问题是不可判定问题:不存在一个算法,在有限步骤内,确切的判定一个文法是否是二义的

4. 二义性转化为无二义性文法

 示例

限制

p->p(x)

非终结符p必须在左端出现一次

2.4 文法分类

 0 1 2 3 都是四元组

非确定下推自动机(PDA

有限自动机(FA

2型:左端只能一个

3型:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值