5
语言
• 语言:对字母表Σ来说,Σ*上的任意一个子集都
称为Σ上的一个语言,记为L(L Σ*)
• 句子:语言L的每一个字符串称为该语言的一个
语句或句子。 • 例:字母表{0,1}上的语言
{0,1} {00,11} {0,1,00,11} {0,1,00,11,01,10} {00,11}* {01,10}*
例:构造产生标识符的文法(续)
• 作为“标识符”的非终结符I,它或者是一 单个字母,或者为一字母后跟字母数字串, 即 I→L∣LS 因此,产生标识符的文法G[I]为: G=({a,b,…,z,0,…,9},{I,S,T,L,D},I,ξ)
ξ: I→L∣LS
S→T∣ST T→L∣D L→a∣b∣…∣z D→0∣1∣…∣9
构造产生标识符的文法标识符是以字母开头的字母数字串用l表示字母类非终结符用d表示数字类非终结符而用t表示字母或数字类非终结符则如果用s表示字母数字串类则t是一字母或数字st也是字母数字串即有stst产生式stst是一种左递归形式由它可以产生一串t
编译原理 第4讲 语法分析(1)
贾西平 Email: jiaxp@
M B DD … D A
中间位 最 高 位 最 低 位
14
例3.2
• 由于中间部分可出现任意位,所以 另引入了一个非终结符M,它包括 M 最高位和中间位部分。假定开始符 B DD … 为N,则可得到文法G[N]为: • G=({0,1,„,9},{N,A,M,B,D},N,ξ) ξ:N→A∣MA /*一位数字│多位数字*/ M→B∣MD /*仅两位数字(无中间位)│
17
推导符号
• 通常,用 1 n 表示:从1出发,经过 一步或若干步,可以推出n。 用 1 n 表示:从1出发,经过0步或 若干步,可以推出n。