编译原理第一、二章总结

第一章     引论      

   1.  什么是编译?

           编译通俗来将就是语言转换成另一种语言。

   2.   编译的过程:词法分析,语法分析,语法分析与中间代码产生,优化,目标代码生成。

   3.   编译程序的结构:词法分析器(扫描器)     语法分析器(分析器)     语义分析与中间代码产生器     优化器     目标代码生成器 

第二章     高级语言及其语法描绘

   1.    语言

          语法:一组规则,用这组规则可以产生形式上正确的程序

          语义是指这样的一组规则,使用它可以定义一个程序的意义。

   


   2.    高级语言的一般特征

        根据不同的特征可以分为:

                  强制式语言

                  应用式语言

                  基于规则的语言

                  面向对象的语言

                  静态类型语言(c,c++,java)

                  动态类型语言(Python, Ruby,PHP)

                  弱类型语言(C,C++,VB)

                  强类型语言(JAVA, C#)

    3.    程序语言的语法描述(上下文无关法,语法分析树与二义性,形式语言鸟瞰)

              1.   上下文无关法

                 上下文无关法所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。它具有独立性但是不能用来描述自然语言。

                 上下文无关文法G包括四个组成部分:一组终结符号,一组非终结符,一个开始符号,以及一组产生式。

                 所谓终结符号乃是组成语言的基本符号,即在程序语言中以前屡次提到的单词符号。

                 非终结符代表一个一定的语法概念。因此非终结符是一个类(或集合)记号,而不是个体记号

                 开始符号是一个特殊的非终结符号

                 产生式(也称为产生规则或简称规则)是定义语法范畴的一种书写规则。

                 最左最右两种推导    最右被称为规范推导

            2.   语法分析树与二义性

                      语法分析树:简称语法树。 语法树用来表示推导的过程。

                      二义性就是一个句子对应两棵不同的语法树。

           3.    形式语言鸟瞰

                          文法分为0型   1型    2型     3型(其中0型是最强的)

                          123型可以说是从0型演化来的

                          0型文法产生式    a->b

                          1型文法产生式    a->b  

                          2型文法产生式     A->a

                          3型文法产生式      A->aB   A->Ba

个人总结:这三周的知识重点主要再文法方面,特别是在文法的推导,我感觉通过看课件对知识的掌握还是不够的,最重要的还是有具体的例子,在课堂上老师讲解例题的时候先给我们放出题目不给答案,我感觉特别有用,当自己只看题目去想答案的时候,就是对知识的深理解,简单的题还可以(比如用文法来表示偶数),但一到比较复杂的题目就有一种看起来不是很难,也感觉很会,就是写不出答案,最后一看答案又感觉(对,就是这样)的一种感觉。

                       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值