编译原理

编译原理

4 (4人评价)
  • 课时:(44)

  • 学员:(781)

  • 浏览:(17143)

  • 加入课程

编译原理02的笔记

相关课时:
编译原理022014-07-30
笔记详情:

程序设计语言可以通过描叙语法和语义两个方面来定义

语法制导翻译技术:通过构造一个把中缀表达式转换成后缀表代式的编译器来介绍

先构造一个简单的程序,如只处理+和-的表达式,然后再扩展成功能较强的编译器,能处理一般的程序

词法分析器:把输入字符流转换成记号流,

编译器前端的结构:

字符流——(词法分析器)——记号流——(语法制导翻译器)——中间表示

1语法定义:

  (1)如c语言:if(表达式)语句else语句

stmt-if(expr) stmt else stmt

(2)上下文无关文法

     一个记号集合,称为终结符号

     一个非终结符集合

    一个产生式集合

  左部(非终结符)——右部(记号和非终结符)

  一个开始符合

约定:数字,符号,黑体字if等为终结符

        开始符号为左部的产生式列在最上面

 

       斜体名字表示非终结符号

        其他的均为记号

 2.分析树

 (1)树根标记为开始符号

  (2)每个叶接点由记号标记

(3)每个内结点由一个非终结符标识

(4)如果A-XYZ,则表示成 A

                          x        y      z

一棵分析树从左到右的叶结点是这棵分析树生成的结果。为给定的记号串找到一个分析树的过程称为这个串的语法分析

3.二义性

(1)一棵分析树读完它的叶结点只能生成唯一的一个串,但是,一个文法可能有多棵分析树生成相同的记号串,这样的文法为具有二义性的文法

3操作符的结合规则

左结合:9+5+2=(9+5)+2

右结合:a=b=c =a=(b=c)

使用expr和term分别表示两种优先级,factor表示基本单元如数字和带括号额表达式

0 0

你感兴趣的课程

3万+浏览/ 931学员/ 4.7评分
¥9.90
理论基础 数学之美
2万+浏览/ 708学员/ 4.4评分
免费
2万+浏览/ 660学员/ 4.6评分
免费