编译原理第二章 文法和语言的基本知识

本文档详细介绍了编译原理中关于文法和语言的基础知识,包括字母表、符号串的定义和运算,文法的定义及其分类,以及推导、短语、句柄等相关概念。此外,还探讨了文法的二义性和消除二义性的方法。
摘要由CSDN通过智能技术生成

概述

如果一种程序设计语言要进行编译,编译程序需要获取它的语法、语义和语用。
语法:对语言结构的定义,即程序是由什么元素组成的。
语义:描述了语言的含义,即一语句是以什么方式运行的。
语用:从使用的角度去描述语言,即一语句的作用是什么。

1、字母表、符号、符号串的定义

字母表:元素的非空 有穷集合。如:∑={a,b,c}
符号(字符):特定字母表的元素。如∑的a,b,c
符号串(字):特定字母表上符号的有穷 有序的序列。如∑上的:ab,ba,bc。
空字符串:ε,长度为0,ε不包含任何符号。

2、符号串的运算:连接、集合的乘积、符号串的幂运算、集合的幂运算

  1. 符号串的连接:设x,y为字符串,则串xy为x和y的连接。对于任意字符串x,有εx=xε=x。
  2. 集合的乘积:符号串集合A和B的乘积定义为:AB = { xy | x∈A, y∈B},特别的,{ε} A = A {ε} = A
  3. 符号串的幂运算:符号串x:x0 = ε, x1 = x, x2 = xx, x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值