编译原理-01基本概念

这个学期的编译原理课上了已经有3个星期了,发现上到后面就是有一种坐火箭的感觉,究其原因 是前面的基本知识忘了哈。课本中的知识基本上要依靠前面的一些概念,符号的定义来完成的。因此在这里跟着中南大学的一个mooc将涉及的基本概念补上。 所谓”浮沙之上,勿筑高台“, 前面欠的债后面还是要还的。基础知识,是所有高级的知识的基础。

高级语言

  1. 传值方式
    • 传值
    • 传地址
    • 传名??
  2. 存储管理
    • 静态存储
    • 动态存储

程序语言的定义

一个程序语言是一个记号系统, 其完整的定义包括语法和语义 (形式语言)

  1. 语法:一组规则,可以产生和形成一个合适的程序
  2. 语义: 什么样的符号列是合法的

基本概念

  • 字母表

    元素的非空有限集合(Σ )

    字母表中的元素称为:符号

    字母表包含了语言中所出现的所有符号

  • 符号串

    符号的有穷序列

    不含元素的: ε

  • 符号串的运算

    1. 符号的串的长度: 含有字符的个数, 记号: |x| ,

      |ε|=0 空符号串的长度为0

    2. 符号串连接

      若x,y 是定义在Σ上的符号串,则 xy称为x和y的连接,xy也是Σ上的符号串

      εx = xε = x (关于空符号串的连接)

    3. 符号串集合的乘积

      令 A,B为符号串集合,定义符号串集合的乘积AB = {xy|
      x,y 来自于A,B}

    4. 符号串集合的方幂

      符号串集合自身的乘积

    5. 符号串集合的正闭包

    6. 符号串集合的自反闭包

文法

  • 文法: 定义或者描述语法结构的一组形式规则
  • 终结符 (不可以往下推导了)
  • 非终结符
  • 上下文无关文法 (开始符号,产生式,终结符,非终结符)

补漏

离散数学: 闭包相关知识

参考

慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
原文地址:https://www.cnblogs.com/rookie123/p/14661055.html