
Java
文章平均质量分 71
Shawon
什么都懂一点,但是不精
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows下安装Java JDK
windows下安装Java JDK,首先在oracle上下载Java JDK,一般选SE就行,注意下自己对应系统的JDK,比如系统是windows 32位的下载X86的,是64位的下载X64的下载后解压缩,把jdk的文件夹放在一个路径不带空格的位置。假如我的路径是D:\Java\jdk1.7.0_09右键【我的电脑】,在属性里面,win7的话是在左侧【高级系统设置】里,【高级】选项卡原创 2013-10-20 19:59:58 · 1269 阅读 · 0 评论 -
完整cmm解释器构造实践(三):语法分析
完整cmm解释器构造实践(三):语法分析语法树节点我的语法分析器不仅会判断cmm代码的语法是否正确, 同时会存储分析过程中得到的信息, 完成语法树的构建. 为什么要有语法树呢, 其实还是为了计算机方便做进一步的处理才用的, 语法树里面存储了从代码里面提取的信息, 我们生成语法树之后再通过遍历语法树来得到中间代码. 当然直接遍历语法树并解释执行也是可以的, 我们老师非得让我们有中间原创 2015-02-07 17:36:05 · 7557 阅读 · 3 评论 -
完整cmm解释器构造实践(四):语义分析与代码生成
语义分析语法分析只是分析了代码在语法上是不是合法的, 但是代码仍然有可能存在问题, 比如一些需要上下文才能分析的错误, 语法分析就不能分析出来. 比如下面的代码a = 10;从语法上来看, 这是一句合法的赋值语句. 但是从语义上看, 我们并不知道a有没有被声明为变量, 类型是否和10匹配. 这一次我们将介绍语义分析.分析内容不同的人做语义分析, 分析的内容都有不同, 比如有些人会把数组越界作为分析的原创 2015-02-17 21:54:30 · 5287 阅读 · 1 评论 -
完整cmm解释器构造实践(五):解释执行与GUI
解释执行接下来要做的事情就是解释执行, 我们只需要将中间代码一条一条执行下来就行. 我们可以模仿CPU的执行方式, 使用一个叫pc的变量存储下一条需要执行的指令的序号. 每次执行一条执行就将pc+1, 当然, 如果是跳转指令要求跳转, 就将值赋给pc, 而不是加1. 中间代码的意思可以自己理解, 根据代码很容易完成. 上一次忘记讲了, 在生成代码的时候, 由于TreeNode的存储结构, 导致表原创 2015-02-17 23:13:33 · 3323 阅读 · 1 评论 -
完整cmm解释器构造实践(一):搭建环境
事先声明:本教程弱化编译理论,侧重实践,如果想详细了解编译原理,务必自己看书!从一个编译器的角度来看,我这个解释器做的实际上功能不强,也就是说如果想增加函数等的功能,可能需要比较多的思考和代码,但是对于cmm解释器的功能来说是绝对够用了。原创 2015-01-23 16:05:31 · 4264 阅读 · 1 评论 -
完整cmm解释器构造实践(二):词法分析
cmm是c的一个子集,保留字只有如下几个if else while read write int real特殊符号有如下几个+ - * / = ( ) ; { } [ ] /* */标识符:由数字,字母或下划线组成的字符串,且不能使关键字,第一个字母不能是数字如果了解c很容易明白上面的是什么意思,也会明白cmm其实有的东西并不多,所以做cmm解释器相对来说比较简单。原创 2015-01-23 18:22:24 · 5716 阅读 · 1 评论 -
细说Java内部类, 静态内部类, 局部类, 匿名内部类
前言自己看了一眼oracle官网关于内部类的介绍, 不多, 但是有些点还是要注意的. 当然这些知识只能说是面试有用, 平时使用内部类, 如果违反规则, 编译器会提示你的, 所以看看就行, 没必要背熟.名词介绍先把我们用的名词说清楚. 我们说的内部类, 官方的叫法是嵌套类(Nested Classes), 嵌套类包括两种, 分别是静态嵌套类(Static Nested Classes)和内部类(In原创 2015-09-24 22:38:09 · 5726 阅读 · 0 评论