自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BURNMITE的博客

感觉来了就写一点东西

  • 博客(9)
  • 收藏
  • 关注

原创 用Scheme解释器项目来了解Java(四)

本章简介本章主要介绍编译器中最主要的设计模式,观察者模式,这里我无法讲述观察者模式的理论或者是用UML画类图等等,只想就这个项目,说说该如何运用观察者模式。观察者模式观察者模式举例以本项目为基础,结合个人理解,观察者模式具有下面的定义 观察的对象只有一个,而观察者有多个,每个观察者在对观察对象进行观察以后,可以执行不同的操作。这里就可以简单的举两个观察者的例子,最基本的例子就是如何对程序进行树

2017-10-31 21:50:20 440

原创 用Scheme解释器项目来了解Java(三)

本章简介本章承接上一章,上一章我们介绍了如何处理复杂类型,这一张我们详细的介绍一个如何从token流中分析出一个语法结构。代码概述分析简单结构SchemeAtom:第一个字母是英文字母,一直扫描到空格为止,里面只存在英文和数字以及一些合法字符。SchemeNumber:以数字开头,后面的内容只允许是数字,这里我们不分析浮点数,所以不包含小数点SchemeBoolean:只有两种情况可以分析成B

2017-10-31 11:30:34 360

原创 用Scheme解释器项目来了解Java(二)

本章简介本章主要介绍SchemeToken类的子类SchemeList,这个类是所有复杂类的父类,所有的SchemeList的子类包括自身都具有用()包含的结构,比如(+ 1 2 3)(map + '(1 2 3) '(2 3 4))类的设计类图看起来很复杂,下面我会一一介绍每个类的作用子类介绍这里为了展现子类中的每个元素所对应的成员变量,我就用数学公式表示,不用代码表示了,还未实现的先不进行列举

2017-10-30 15:59:10 478

原创 用Scheme解释器项目来了解Java(一)

本章简介本章主要介绍简答的scheme语言的语法,还有简单scheme的token所对应的类。简单介绍scheme语言有两篇ibm的文章我觉得介绍的很详细,这里我贴出来 scheme语言概要(上) scheme语言概要(下) 希望大家能在看本篇博客的时候把这两篇介绍scheme语言的语法看一下,因为我自认为写不出这么好的入门博客了。类的设计类图 从上面这张图片我们可以看出,所有的scheme

2017-10-30 11:19:17 1940

原创 用Scheme解释器项目来了解Java

首语原本打算定的题目是,基于Java8的Scheme解释器 ,但是在对项目进行编写的时候,发现有很多scheme的语言细节、理论我了解的少之又少,而本人自认为Java基础还是比很多人要好的,所以想改成现在这个题目,用Scheme解释器来学习Java。写这个项目的缘由是最近的一场面试,这里我就安利一家公司,源伞科技 ,位于深圳的一家公司,主要是做静态分析,编译器构建的。当时我把简历发过去的时候,hr问

2017-10-28 22:54:22 684

原创 如何lower基本块开头的PHI函数

问题背景最近面试一家静态分析的公司,感觉面试官问的问题非常具有代表性,问的都是《编译原理》里面的知识,并且进行扩展,其中就有一个问题,当时我就很懵逼,即如何对phi函数进行lower。what is “Lower”?简单来说,lower是一个对操作和类型进行合法化的过程,即如果芯片中的寄存器的位数是8位,而你要进行16位的运算,那么就要对两个加法操作数进行拆分,变成两个8位的相加,并分别保存到结果的

2017-10-13 11:53:16 880 1

原创 LeetCode Rotate Image

题目描述You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).Note: You have to rotate the image in-place, which means you have to modify the input 2D matrix di

2017-10-04 15:15:21 129

原创 对于上一篇文章中的Rewrite Rules的详细分析

问题背景没有背景,这篇文章是对上一篇文章从LLVM的CodeGen角度思考PIC16中的常量数组生成过程中的Rewrite Rules的分析。详细分析过程分析表达式c = arr[1] * a * e + d + f / g整个表达式对应的语法树如下 我们可以使用逆拓扑序对这个DAG图进行遍历,如果遇到了算数运算操作,就进行M阶树的构造,即不断地向上进行节点的汇集操作。如下,分别展示出第一步

2017-10-03 16:50:31 475

原创 科普LLVM中MSP430如何lower移位指令

问题背景最近在做LLVM项目的时候,碰到了一个看起来不是问题的问题,就是如何对移位指令进行lower,在LLVMIR中,移位指令使用一个节点进行表示的,表示如下(shl a, b)其中,假设a就是源操作数,b是移位次数,shl为逻辑左移,可是MSP430芯片里面只有一次移动一位的移位指令,如下(MSP430shl a)表示将源操作数a向左移动一位,那么下一步,顺理成章地就会想到,如果每次只移动一位,

2017-10-02 19:13:37 1020 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除