高级语言描述
编译基础知识
- 高级语言:程序语言是一个记号系统
- 语法
- 语法使得这串字符形成一个形式上正确的程序。
- 语法=词法规则+语法规则
- 例如:
- 0.5*x1+c *
- 0.5、x1、c、+是语言的单词符号
- 0.5*x1+c是语言的语法单位
- 语法单位:表达式、子句、语句、函数、过程、程序
- 语言的词法规则和语法规则定义了程序的形 式结构,是判断输入字符串是否构成一个形 式上正确的程序的依据。
- 语义
字母表和符号表
一些概念:
字母表:是符号的非空有穷集合,是符号的非空有穷集合
符号串:顾名思义。空串:不含有任何符号的串称作空串,记作ε
句子:字母表上符合某种规则构成的串。串就是句子
(注:约定用a,b,c…表示符号;用α,β,γ…表示符号串; 用A,B,C…表示其集合)
符号串集合的运算:
符号串集合的运算:
例如: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}
字母表的闭包与正闭包
- 字母表A的闭包(A):A=A0∪A1∪A2∪… 即:由A上符号组成的所有串的集合(包括空串 ε )
- 字母表A的正闭包(A+):A+= A1 ∪A2∪ …=A*-{ε} 即:由A上符号组成的所有串的集合(不包括空 串ε )
- 字母表上语言:是字母表上正闭包的子集
文法与语言的关系
文法:
- 其语法规则如下:
- – <句子>→<主语><谓语>
- – <主语> →<形容词><名词>
- – <谓语> →<动词><宾语>
- – <宾语> → <形容词><名词>
- – <形容词> →Young | pop
- – <名词> →men | music
- – <动词> →like
相关概念:
- 非终结符
- 出现在规则的左部、用<>括起来、表示一定 语法概念的词
- 非终结符集合用VN表示。
- 终结符
- 语言中不可再分割的字符串(包括单个字符 组成的串)。注:终结符是组成句子的基本单位
- 终结符集合用VT表示。
- 开始符号
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com