随笔分类 -  编译原理

摘要:1概念 ELF。Exucutable and Linkable Format,译为“可执行和可链接的格式”。 它是关于可执行文件、对象代码、共享库和内核导出的一种公共标准文件的格式定义,广泛应用于类unix系统。每个ELF文件由三个部分组成:Program header table、Sectoin 阅读全文
posted @ 2018-07-29 16:11 翻书 阅读(4746) 评论(0) 推荐(1)
摘要:1 教程 cmake界的hello world[2] 进阶的入门教程参考[3] 2 引用 "1] [cmake官网" "2] [在 linux 下使用 CMake 构建应用程序" "3] [Valgrind官网" 阅读全文
posted @ 2018-07-27 21:29 翻书 阅读(224) 评论(0) 推荐(0)
摘要:cmake与autoconf+automakes是同类的编译工具,本人常用的是cmake。 这有一篇对比的文章,记录一下。 "cmake与autoconf+automake的对比" 阅读全文
posted @ 2018-07-17 11:34 翻书 阅读(1114) 评论(0) 推荐(0)
摘要:1. gcc (1)是什么? 它是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器。它可以编译很多种编程语言(括C、C++、Objective C、Fortran、Java等等)。 (2)怎么用? 当你的程序只有一个源文件时,直接就可以用gcc命令编译它 阅读全文
posted @ 2018-07-16 18:26 翻书 阅读(502) 评论(0) 推荐(0)
摘要:麻雀虽小,五脏俱全!本文试图用最简单的示例覆盖最多的知识点。文中主要通过加减法器的设计来介绍基于Gold的解释器(关于解释器和编译器的区别联系见《儿子和女儿-解释器和编译器的区别与联系》)开发方法,不仅介绍了基于Gold的词法分析和语法分析,同时还介绍了如何在自动生成的基本骨架代码上来完成语义分析、解释执行和错误提示功能。1.目标介绍:  首先说一下,我们开发的解释器究竟是面对什么语言呢?例子非常... 阅读全文
posted @ 2010-06-28 02:20 翻书 阅读(4680) 评论(11) 推荐(5)
摘要:菜鸟经常将编译器和解释器弄混淆,无奈之下,于是向高手请教。  高手说:“   解释器是一条一条的解释执行源语言。比如php,postscritp,javascript就是典型的解释性语言。    编译器是把源代码整个编译成目标代码,执行时不在需要编译器,直接在支持目标代码的平台上运行,这样执行效率比解释执行快很多。比如C语言代码被编译成二进制代码(exe程序),在windows平台上执... 阅读全文
posted @ 2010-06-27 13:40 翻书 阅读(35721) 评论(8) 推荐(20)
摘要:下面是Gold与其它语法分析工具(主要有ANTLR,Grammatica,Spirit,Yacc/Bison)的对比图:有几点说明:(1)Grammatica 目前只支持LL。然而,其官方网站上声称将会支持LR。(2)ANTLR有一个集成开发环境,叫做“ANTLRWorks。(3)一些引擎可以被编译成.Net模块,以便供支持.Net的集成开发环境使用。(4)一些引擎被编译成Active... 阅读全文
posted @ 2010-06-25 00:48 翻书 阅读(1744) 评论(0) 推荐(0)
摘要:阅读本文之前,请先简要了解Gold系统的结构和原理,推荐阅读《【翻译】语法分析工具Gold介绍(1)--系统介绍》。开发流程如左图所示: 1.第一步要设计编译器或者解释器,也就是用Gold元语言编写出所需要的文法。利用Gold Builder软件能很方便的编写文法、测试、查错等。 2.如果文法编写完毕,使用Gold Builder软件分析,得到编译文法表。在这个过程中,LALR和DFA解析表被建立... 阅读全文
posted @ 2010-06-24 23:43 翻书 阅读(2740) 评论(1) 推荐(0)
摘要:系统介绍:  Gold语法分析系统的设计目标是支持多种语言的编译器、解释器和翻译器的开发。为了达到这个目标,系统吸取了LALR和DFA算法的长处,后两种方法都能实现简单的状态转移图。这种融合的结果就是,我们能够非常容易的编写不同语言的识别算法,因为逻辑上似乎(实际上也正是这样)在表格中填值一样。这些表格的创新性在于它代替了“思考”。 系统组成  整个系统由两个不同的部分组成... 阅读全文
posted @ 2010-06-24 15:51 翻书 阅读(3235) 评论(1) 推荐(0)
摘要:最近打算重做以前的一个留下遗憾的工作,当中的一项小任务就是要求编写一个简易SQL语言的语法分析器。 本科的《编译原理》课程依稀在我脑中留下些许映象。当初的课程大作业是写一个叫Dicuf(貌似是这么发音)的编译器,在万恶的助教的鞭策下,我们使用了Lex和Yacc成功逃离了恐怖之狱。现在又要拾起编译来,还是有些挑战性的。 善其事,利其器。在网络上一番东游西逛,我对于时兴的一些语法分析器自动生成工具有了... 阅读全文
posted @ 2010-06-23 22:52 翻书 阅读(9566) 评论(0) 推荐(1)