
CompilerPrinciples
文章平均质量分 81
slvher
这个作者很懒,什么都没留下…
展开
-
【龙书笔记】编译器简介及程序构建过程综述
备注:本文是近期重新阅读编译器经典教材一书(又称DragonBook,龙书)的其中一篇读书笔记。 1. 什么是编译器 从本质来看,平时提到的“编程语言”其实都是一些助记符,用于向其他人或机器描述我们想要完成的逻辑运算。这些易于人类理解的语言想要被计算机理解并正确执行,就必须被转换成机器码,而完成这一转换过程的软件系统就是编译器。 简言之,编译器其实也是一个计算机程序,它可以读取用一种编程原创 2015-03-15 19:31:55 · 1776 阅读 · 0 评论 -
【龙书笔记】编译器前端之语法分析涉及的基本概念
前一篇龙书笔记主要介绍了编译器内部实现的几个主要步骤,本篇笔记主要说明编译器前端涉及到的重要基础概念。 编译器前端主要包括词法分析、语法分析、语义分析及中间码生成4个阶段,一个典型的编译器前端处理模型如下图所示: 下面出现的术语或基础概念均是语法分析阶段会涉及到的。 1. syntax & semantics 我们会在很多地方听到到“语法”和“语义”这两个概念,那么,从编译器角度来看,原创 2015-03-22 21:40:31 · 1767 阅读 · 0 评论 -
【龙书笔记】编译器内部实现流程初探
上篇龙书笔记对编译器在程序构建中的作用做了整体的黑盒介绍,本篇笔记的目的是拆开这个盒子,对编译器内部实现流程做说明。 1. Phases of a compiler 从整体来看,编译器内部流程可以分为2大类:分析(analysis)和综合(synthesis)。 在analysis阶段,编译器将源码分解为一系列片段并为它们构建语法结构(grammatical structure),然后利原创 2015-03-22 14:04:30 · 1816 阅读 · 0 评论 -
【龙书笔记】语法分析涉及的基础概念简介
本篇笔记是我对龙书第2.3-2.5节内容的理解,主要介绍编译器前端关于语法分析的众多基础概念。下篇笔记将根据本篇笔记的主要内容,实现一个针对简单表达式的后缀式语法翻译器Demo(原书中是java实例,我给出的将是逻辑一致的Python版本的实现)。 1. 语法分析(Syntax Analysis) 简单来说,语法分析的任务是分析输入的符号字符串(string of symbols, 通常是词法原创 2015-04-06 09:59:47 · 3679 阅读 · 2 评论 -
【龙书笔记】用Python实现一个简单数学表达式从中缀到后缀语法的翻译器(采用递归下降分析法)
上篇笔记介绍了语法分析相关的一些基础概念,本篇笔记根据龙书第2.5节的内容实现一个针对简单表达式的后缀式语法翻译器Demo。 备注:原书中的demo是java实例,我给出的将是逻辑一致的Python版本的实现。 在简单后缀翻译器代码实现之前,还需要介绍几个基本概念。 1. 自顶向下分析法(top-down parsing) 顾名思义,top-down分析法的思路是推导产生式时,以产生式开始原创 2015-04-06 12:59:19 · 3436 阅读 · 0 评论