编译2

  1. 编译基础知识
  2. 字母表和符号表
  3. 文法与语言的关系

高级语言描述

编译基础知识

  1. 高级语言:程序语言是一个记号系统
  2. 语法
    • 语法使得这串字符形成一个形式上正确的程序。
    • 语法=词法规则+语法规则
    • 例如:
      • 0.5*x1+c *
      • 0.5、x1、c、+是语言的单词符号
      • 0.5*x1+c是语言的语法单位
    • 语法单位:表达式、子句、语句、函数、过程、程序
    • 语言的词法规则和语法规则定义了程序的形 式结构,是判断输入字符串是否构成一个形 式上正确的程序的依据。
  3. 语义

字母表和符号表

一些概念:

  1. 字母表:是符号的非空有穷集合,是符号的非空有穷集合

  2. 符号串:顾名思义。空串:不含有任何符号的串称作空串,记作ε

  3. 句子:字母表上符合某种规则构成的串。串就是句子

    (注:约定用a,b,c…表示符号;用α,β,γ…表示符号串; 用A,B,C…表示其集合)

符号串集合的运算:

image-20230112222858340

符号串集合的运算:

例如:A={a,b}; B={c,e,d}

则AB={ac,ae,ad,bc,be,bd}

A中的元素必须在B元素的前面,否则是错的,这个顺序要搞对

例如:串集A={a}的各次方幂定义为:

– A0={ε}

– A1=A={a}

– ……

– An=AAn-1(n>0)={a…a}

字母表的闭包与正闭包

  1. 字母表A的闭包(A):A=A0∪A1∪A2∪… 即:由A上符号组成的所有串的集合(包括空串 ε )
  2. 字母表A的正闭包(A+):A+= A1 ∪A2∪ …=A*-{ε} 即:由A上符号组成的所有串的集合(不包括空 串ε )
  3. 字母表上语言:是字母表上正闭包的子集

文法与语言的关系

文法:

  • 其语法规则如下:
    • – <句子>→<主语><谓语>
    • – <主语> →<形容词><名词>
    • – <谓语> →<动词><宾语>
    • – <宾语> → <形容词><名词>
    • – <形容词> →Young | pop
    • – <名词> →men | music
    • – <动词> →like

相关概念:

  1. 非终结符
    • 出现在规则的左部、用<>括起来、表示一定 语法概念的词
    • 非终结符集合用VN表示。
  2. 终结符
    • 语言中不可再分割的字符串(包括单个字符 组成的串)。注:终结符是组成句子的基本单位
    • 终结符集合用VT表示。
  3. 开始符号

image-20230114204912084


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏