• 编译原理复习——文法和语言


    什么是文法?   若干规则的组合就是文法
    语言 —— 形式化的内容提取
    自然语言语言 (Language)   满足 一定条件 句子 集合
    句子 (Sentence)    满足 一定规则 单词 序列
    单词 (Token)     满足 一定规则 字符 (Character) (String)
    程序设计语言 —— 形式化的内容提取
    程序设计语言 (Programming Language) :组成程序的 所有语句的集合
    程序 (Program) :满足语法规则的 语句 序列
    语句 (Sentence) :满足语法规则的 单词 序列
    单词 (Token) :满足词法规则的 字符串
    程序设计语言的描述形式 —— 文法
    语法 —— 语句   语句的组成规则
    描述方法: BNF 范式 、语法 ( 描述 )
    词法 —— 单词   单词的组成规则
    描述方法: BNF 范式 、正规式 ( 正则表达式 )
    文法的作用   严格 定义句子的结构   适当条数的规则 把句子描述出来,有穷刻画无穷
    BNF 范式 描述文法的方法
    < > 用尖括号括起来的内容表示语言构造成分,称为 语法单元,在文法中为非终结符
    := 表示左部的语法单元由右部来定义,读定义为→
    |  ,多选
    { } 可重复 0 戒者多次
    [ ] 可选,出现或者不出现
    字母表( Alphabet
    字母表 是元素的 非空 有穷集合 ,字母表中 元素 称为该字母表的 符号 ,也叫符号集
    符号串( String
    字母表 中的 符号 所组成的任何 有穷序列 称之为该字母表上的符号串
    (1) ε 上的一个符号串,也叫 符号串  ɸ 表示不含任何元素的空集
          区别 ε , ɸ {ε}
    (2) x 上的符号串,而 a 的元素 , xa 上的符号串
    (3) y 上的符号串 , 当且仅当它由 (1) (2) 导出
    注意: 符号串是有序的, ab ba不 一样
    s=abc 是符号串,则 s
    前缀 / :移 s 的尾部的零个或多于零个符号 ε a, ab , abc
    后缀 / :删去 s 头部的零个或多于零个符号 ε,c,bc ,abc
    子串 : s 中删去一个前缀和一个后缀
    逆转 :将 S 中的符号按相反次序写出而得到 的符号串 ( 如何实现符号串的逆转? )
    长度 :是该符号串中的符号的数目 例如  |abc|=3,|ε|=0
    符号串的连接和方幂
    连接 : x y 是符号串,它们的连接 xy 是把 y 的符号写在 x 的符号之后得到的符号串。
    例如, x=ba,y=nana,xy=banana
    方幂 x 0= ε ; x 1 =x; x 2 =xx; … x n =x n-1 x
    例如 , x=ba, x 1 = ba, x 2 =baba, x 3 =bababa
    文法 G 为一个四元组 : = ( N, T ,P,S ), 其中
    N :非终结符 (NonTerminal) 集,非空有穷    语法成分 —— 代表某个语言的各种子结构
    T :终结符 (Terminal) 集,非空有穷    T N
    :规则的集合
           α→ β ,被称为规则(产生式),读作: α 定义为 β 。其中
           α ( T N ) + ,且 α 中至少有V N 中元素的一个出现。
           β ( T N ) * α 称为产生式 α→ β 左部 β 为产生式 α→ β 右部
    :开始符号 (Start Symbol) S N 代表文法所定义的语言,至少在 规则 左侧出现一次
    符号串的 推导与归约 :已给文法 G=(V N ,V T , P, S )令 α, β (V N V T )* ,且 A→ γ P ,此时,由符号串 v=αAβ 能够直接推出符 号串 w=αγβ ,我们称
    符号串 αγβ 是符号串 αAβ 直接推导
    符号串 αAβ 是符号串 αγβ 直接归约
    记作 : αAβ  αγβ
    一个文法是可以用有限的规则推导出无限的句子的
    文法 G = ( V T , V N , S , P )
    乔姆斯基把文法分为四类:
    0 型文法: α→β ,α   , β  ∈ ( V N V T ) * , α  至少有一个 非终结符  也称短语文法
    1 型文法: | α   | ≤ | β | ,但S→ ε 可以例外  也称上下文有关文法
    αAβ  αγβ 1 型文法的一个产生式
    2 型文法: A →β A∈ V N , β∈   (V N V T )*   也称上下文无关文法
    3 型文法: A →α B或 A →α   A, B∈ V N , α∈ V T *  也称正规文法
    四种文法之间是逐级包含关系
  • 相关阅读:
    Coinbase Ventures团队亲述CV简史及投资版图
    Spring Cloud源码分析之eureka+feign远程调用
    zabbix日志监控:操作系统、业务系统、文件大小、多行日志
    lectin
    IDEA修改jvm的内存大小!
    【Linux信号专题】三、未决信号集、阻塞信号集与信号集操作函数
    面试官问我G1垃圾收集器,头都大了
    有哪些手机赚钱的副业?
    芒果叶病害数据集(用于图像分类,每类500张照片)
    2种方法将集合数据List构建成树形结构
  • 原文地址:https://blog.csdn.net/m0_53345417/article/details/127556517