`

学习编译原理的步骤

阅读更多

我不知道我是不是头脑发热,突然对编译原理,特别是ANTLR的使用很感兴趣,转个别人总结的步骤。

1.先利用ANTLR之类的编译器生成工具,做一个小程序(如上面提到的HTML文件转化成纯文本文件的程序),所需知识只是正则表达式的基本知识和生成工具本身的使用方法 这样做的好处是:

1)可以体会到编译原理的实用性,提高学习兴趣

2)入门容易,消除编译原理学习的畏难情绪.

3)获得词法分析器和语法分析器的感性认识,有利于加深对理论的理解.

4)获得编译器自动生成工具(compiler compiler)的使用经验,提高解决实际问题的能力.(实际工作很多都不是手编而是利用工具的)

2.象ANTLR之类的工具是开源(open source)的,可研究其源码,以便必要时自己手编分析程序.

3.回过头来看编译原理教材. 这时大概会发现,很多理论很容易懂,剩下的只有上面说的几个难点,多看几遍,重点突破.

4.结合教材所附源码,进一步加深对教材的理解

我决定充实下这篇文章,今天读了anstlr很多文章,来自庄表伟的anstlr系列学习笔记。感觉编译原理并非我想象中那么困难,实现一个简单的脚本解释引擎对我来说还是完全可以做到的,发现我前段时间花大力气学习正则表达式派上了用场,理解起来事半功倍。我决定买本《编译原理》方面的书籍老老实实读一下。不知道有没有人给我推荐一本?



分享到:
评论
1 楼 iceman1952 2011-12-08  
呵呵,想知道你最终买的那本书啊
我这两周也脑子发热,对着词法分析研究了不少时间了

相关推荐

    编译原理实验报告答案

    PL/0语言和类pcode的描述 2.2 PL/0编译程序的结构 2.3 PL/0编译程序的语法语义分析 2.4 PL/0编译程序的错误处理 2.5 类pcode代码解释器 ...本章目的:以PL/0为实例,学习编译程序实现的 基本步骤和相关技术

    基于C++的编译原理词法分析器.zip

    基于C++的编译原理词法分析器 基于C++的编译原理词法分析器是一个使用C++编写的程序...通过实现C++词法分析器,开发者可以深入理解编译器的工作原理,提高C++编程技能,并为进一步学习编译原理和编程语言理论打下基础。

    编译原理TINY+编译器 词法分析.zip

    编译原理TINY+编译器 词法分析 TINY+是一个简单的教学编程语言,常用于编译原理的...通过实现TINY+词法分析器,开发者可以深入理解编译器的工作原理,提高编程技能,并为进一步学习编译原理和编程语言理论打下基础。

    编译原理实验词法分析器、SLR(1)语法分析器.zip

    通过实现这样一个编译器前端,学生可以深入理解编译器的工作原理,提高C编程技能,并为进一步学习编译原理和编程语言理论打下基础。此外,这个项目对于希望进入编译器设计、程序分析和代码生成等领域的人来说,是一...

    操作系统、计算机网络、计算机组成原理、数据库概论、编译原理、C语言、汇编等.zip

    每份实验报告都详细记录了实验步骤、结果及分析,助您巩固知识点。 学习笔记:由资深学者精心整理的学习笔记,重点突出,为您梳理课程脉络,把握核心内容。 复习资料与试卷:涵盖了各类复习资料和历年试卷,助您备战...

    _研究性学习专题五_LR分析方法程序设计原理与实现技术\编译原理-语法分析

    析的程序,了解构造LR(0)分析表的步骤,对文法的要求,能够从文法G出发生成LR(0)分析表,并对给定的符号串进行分析。要求以表格或图形的方式实现。 [实验项目] 实现LR(0)分析法,完成以下文法。 G[E]: E→aA∣bB...

    plo编译的实现

    掌握语言的形式化描述:语法描述图与巴科斯范式EBNF。以PL/0为例学习编译程序实现的基本步骤和相关技术,熟悉并理解编译程序的基本原理和概念。对于一段给定的程序,给出其形式化描述

    计算机专业主要学习哪些课程.docx

    编译原理的学习和实践通常基于对计算机编译过程、计算机基本工作原理、甚至一定的数学知识有一定积累,这些知识分别分布并应用在了编译原理的不同阶段。没有这些基本知识的积累,很快就会在某个阶段由于功底不够而...

    PL0编译器教程

    以PL/0为例学习编译程序实现的基本步骤和相关技术,熟悉并理解编译程序的基本原理和概念。

    quartus18.0编译仿真的十进制计数器

    利用quartus18.0软件编译仿真的十进制计数器,含测试文件,供学习电子设计自动化(eda)的新人参考

    2020编译原理练习记录——40分大题揭幕(3)

    经过两周的学习,我们知道了如何用NFA转化为DFA,今天带来的是一道比较综合的大题,涵盖了学过的正规文法,NFA,DFA…  题目是这样描述的:有一个正规文法G[S]:S→aA|bQ, A→aA|bB|b, B→bD|aQ, Q→aQ|bD|b, D...

    C语言词法分析器.zip

    C语言词法分析器 C语言词法分析器是一个程序,它读取C语言源代码并将其转换为一系列...通过实现C语言词法分析器,开发者可以深入理解编译器的工作原理,提高编程技能,并为进一步学习编译原理和编程语言理论打下基础。

    简单编译器 编译技术课程设计源代码及文档

    主要步骤 (1)画出识别上述语言单词的状态转换图 (2)用C/C++语言编写词法分析程序(应考虑能被语法分析程序调用) (3)预处理,去除注释、多余空格、回车换行符等 (3)设计实现语法分析程序(调用上述词法程序分析单词) ...

    C语言的词法分析和抽象语法树(AST)分析器.zip

    通过实现这样一个编译器前端,学生可以深入理解编译器的工作原理,提高C编程技能,并为进一步学习编译原理和编程语言理论打下基础。此外,这个项目对于希望进入编译器设计、程序分析和代码生成等领域的人来说,是一...

    编译器词法与语法分析的实现(基于c++11).zip

    通过实现这样一个编译器,开发者可以深入理解编译器的工作原理,提高C++编程技能,并为进一步学习编译原理和编程语言理论打下基础。此外,这个项目对于希望进入编译器设计、程序分析和代码生成等领域的人来说,是一...

    网络安全开发包详解代码

    书中对每个开发包的功能、原理和安装步骤进行了介绍,对开发包的各种数据结构和输出函数进行了详细阐述,并通过举例对开发包的使用方法进行了详细说明,每个例子都给出了完整的源代码并有详细的注解和结果分析。...

    学编程的步骤.txt

    至于在以后,编译原理,操作系统,还有软件工程等等基础知识,是必不可少的! 14:如果现在再来学习JAVA,C#等别的语言的话,应该是触类旁通,拿来就用了, 到此,你才可以称得上是一个高手!

    翻写拍砖游戏--说明Windows编程原理

    但是,由于该书比较老,同时大师的代码不完整,并且使用VC++ 5.0编译的,在VC++ 6.0环境下有bug,所以当我把代码补全,并且调试出结果时本人非常开心。放到网上,是希望给学习Windows游戏开发的人员带来帮助!

    《Java程序设计》课程实验指导书程序代码(答案)(实验一)

    熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序...

    C语言实践实验一一一一一

    学习并熟悉C语言开发环境的安装与下载及配置; 熟悉C语言开发环境的使用步骤; C语言编程环境的搭建及使用,运行C语言程序的步骤和方法。 二、实验原理 (技术原理:文字、图、表、公式等) 编写一个简单的...

Global site tag (gtag.js) - Google Analytics