- 博客(30)
- 资源 (3)
- 收藏
- 关注

原创 为什么学写编译器
比尔.盖茨用亲身经历启迪广大程序员:编写BASIC编译器的技术积淀对其事业成功很重要,其辉煌的人生履历从此开始。有位读者问作者:学会了写编译器能赚多少钱?作者回答:编译器编写是练內功,打基础,通过实战完成技术积淀的过程。技术积淀+机遇+坚持与毅力=成功一位程序员问作者:编译技术我虽然没学会,现在工作不也照样干?作者回答:不同层次的人竞争不同层次的工作岗位,不同层次的工作岗位有其相应...
2019-11-17 20:55:58
414
转载 常用的字符串哈希函数
Hash查找因其O(1)的查找性能而著称,在对查找性能要求高的应用所广泛采用。它的基本思想是:(1) 创建一个定长的线性Hash表,一般可以初始化时指定长度;(2) 设计Hash函数,将关键字key散射到Hash表中。其中hash函数设计是最为关键的,均匀分布、冲突概率小全在它;(3) 通常采用拉链方法来解决hash冲突问题,即散射到同一个hash表项的关键字,以链表形式来表示;(4) 给定关键字key,就可以在O(1) + O(m)的时间复杂度内定位到目标。其中,m为拉链长度。 Hash应用中
2016-01-24 10:00:30
618
转载 ANSI C 与 K&R C
C语言由Dennis M.Ritchie在1973年设计和实现。从那以后使用者逐渐增加。到1978年Ritchie和Bell实验室的另一位程序专家Kernighan合写了著名的《TheC ProgrammingLanguage》,将C语言推向全世界,许多国家都出了译本,国内有一些C语言书就是这本书的翻译或者编译。由这本书定义的C语言后来被人们称作K&R C。随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。这个标准化的工作在美国国家标准局(ANSI)的框架中进行(1983
2015-12-21 21:52:34
2292
转载 Lex与Yacc
Lex 是一种生成扫描器的工具。扫描器是一种识别文本中的词汇模式的程序。 这些词汇模式(或者常规表达式)在一种特殊的句子结构中定义,这个我们一会儿就要讨论。Yacc 代表 Yet Another Compiler Compiler。 Yacc 的 GNU 版叫做 Bison。它是一种工具,将任何一种编程语言的所有语法翻译成针对此种语言的 Yacc 语 法解析器。它用巴科斯范式(BNF, Backus Naur Form)来书写。按照惯例,Yacc 文件有 .y 后缀。编译行如下调用 Yacc 编译器:
2015-12-11 11:21:24
785
转载 Antlr 简介
ANTLR 语言识别的一个工具 (ANother Tool for Language Recognition ) 是一种语言工具,它提供了一个框架,可以通过包含 Java, C++, 或 C# 动作(action)的语法描述来构造语言识别器,编译器和解释器。 计算机语言的解析已经变成了一种非常普遍的工作,在这方面的理论和工具经过近 40 年的发展已经相当成熟,使用 Antlr 等识别工具来识别,解析,构造编译器比手工编程更加容易,同时开发的程序也更易于维护。
2015-12-11 11:12:34
12285
转载 国内外编译原理课程实践教学现状分析
本文主要从教材的选择,实践项目的设置以及实践课程占总评成绩的比例等方面分析和比较了国内外多所高校编译原理课程实践教学的基本情况和特点。根据我院编译原理课程开设的实际情况,提出相应的对策,实现对我院计算机科学与技术专业编译原理课程实践项目的科学,合理设置,以提高学生的动手能力,锻炼学生的逻辑思维能力。
2015-11-26 14:39:45
4468
转载 程序媛人生——专访“龙书”联合作者Monica S. Lam
”斯坦福大学计算机系教授、享誉全球的编译器技术专家、编译原理课程的经典教材“龙书”《Compilers》(《编译原理》)的联合作者、斯坦福MobiSocial计算机实验室的创始主任、ACM Fellow(美国计算机协会院士)、Omlet公司联合创始人兼CEO。Monica S. Lam,这位从1988年开始在斯坦福大学计算机系开始任教的亚裔女教授的头衔众多,依旧年轻如斯,从事教育工作27年,在“万物互联,移动为先”之下,Monica教授将研究方向瞄准了移动社交,希望能够通过平台将开发者、用户连接其中。
2015-10-17 13:11:51
1315
原创 赠送《自己动手写编译器、链接器》给龙书联合作者Monica
2015年10月14日,参加第六届MDCC移动开发者大会,赠送《自己动手写编译器、链接器》给龙书联合作者Monica
2015-10-16 10:40:27
3666
原创 编译实战视频教程-王博俊-专题视频课程
本课程讲授一个真实编译器、链接器的完整开发过程。编写编译器用到的知识之广是编写一般程序所无法比拟的,将综合运用编译原理,数据结构与算法,Intel x86汇编语言、机器语言,目标文件格式,可执行文件格式等知识内容。...
2015-09-14 08:33:52
482
原创 自己动手写编译器、链接器一书作者自序
本书讲述了一个真实编译器的开发过程,源语言是以C语言为蓝本,进行适当简化定义的一门新语言,称之为SC语言(简化的C语言),目标语言是大家熟悉的Intel x86机器语言。在本书中,读者将看到从SC语言定义,到SCC编译器开发的完整过程。本书介绍的SCC编译器,没有借助Lex与Yacc这些编译器自动生成工具,纯手工编写而成,更便于学习和理解。为了生成可以直接运行EXE文件,本书还实现了一个链接器。读完本书读者将知道一门全新的语言如何定义,一个真实的编译器、链接器如何编写。
2015-03-02 11:07:41
1927
原创 自己动手写编译器之序
偶然的机会,我得知王博俊在工作之余,写了一本以简化的C语言为例子讲述编译器和链接器实践的书。浏览了初稿之后,感觉全书内容简明,容易上手,又不失全面和系统,正好弥补了这方面的空白。特向大家推荐。
2015-02-10 09:56:48
2224
原创 自己动手写编译器、链接器致谢
本书临近出版之际,承蒙清华大学王生原老师阅读了本书终稿,并对书稿做了中肯评价: “本书特色鲜明,内容有深度,文笔也很不错,很值得出版。本书最大的特色是所选的目标平台,即x86处理器以及微软系统的COFF目标文件格式,这在教材中很少见到,可为国内的编译教学实践提供别具一格的素材。”
2015-02-09 15:15:09
1066
原创 自己动手写编译器、链接器
在本书中,读者将看到从SC语言定义,到SCC编译器开发的完整过程。读完后你将知道一门全新的语言如何定义,一个真实的编译器如何编写,这些对你来说也将不再神秘,编译原理讲的理论与本书中讲述的SC语言定义及SCC编译器开发过程,是理论联系实际在编译领域的最好阐释。
2014-11-27 11:13:36
3490
国内外编译原理课程实践教学现状分析
2015-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人