1: package compiler; 2:   3: import java.io.BufferedReader; 4: import java.io.BufferedWriter; 5: import java.io.IOException; 6: import java.util.Arrays; 7: import java.util.logging.Level; 8: import java.util.logging.Logger; 9:   10: /** 11: * 类P-code…
1: /* 2: * To change this license header, choose License Headers in Project Properties. 3: * To change this template file, choose Tools | Templates 4: * and open the template in the editor. 5: */ 6: package compiler; 7:   8: import fileSystem.fileFil…
花了几天时间,把清华版的<编译原理>一书中的PL/0编译器实践了一遍.颇有收获,记录如下: 理解代码的技巧,如何理解一份代码,比如这个程序,其逻辑相对于一般程序就比较复杂了,如何翻译,虚拟机代码执行时数据栈如何变化等,都比较抽象,很难在大脑中有形象的感受,这时,最好的办法就是单步调试,比如vs2015就很强大,还能监视变量,绘制流程图,等等. 对代码的追求,除了九月十月,感觉最近一段时间一直在学习而不是实践,一方面由于自己习惯不好,被动接受,缺乏思考,比如代码是不是可以更简洁,更优雅:另一方面…
1: package compiler; 2:   3: import java.io.IOException; 4: import java.util.BitSet; 5:   6: /** 7: * 语法分析器. 这是PL/0分析器中最重要的部分, 在语法分析的过程中嵌入了语法错误检查和目标代码生成. 8: * 9: * @author jiangnan 10: * 11: */ 12: public class Praser { 13:   14: /** 15: * 当前符号,由next…
1: package compiler; 2:   3: import java.io.BufferedWriter; 4: import java.io.FileWriter; 5:   6: /** 7: * 组织输入输出接口 8: * 9: * @author jiangnan 10: */ 11: public class PL0 { 12:   13: 14: public static final String pcodeFile = "d:\\pcode.txt"; 15…
1: package compiler; 2: //竟然没有对符号表检查大小,会溢出的. 3:   4: import java.io.IOException; 5:   6: public class SymbolTable { 7:   8: /** 9: * 当前名字表项指针(有效的符号表大小)table size 10: */ 11: public int tablePtr = 0; 12: /** 13: * 符号表的大小 14: */ 15: public static final…
1: package compiler; 2:   3: import java.io.BufferedReader; 4: import java.io.FileNotFoundException; 5: import java.io.FileReader; 6: import java.util.Arrays; 7:   8: public class Scanner { 9:   10: public int lineCnt=0; 11: private char curCh = ' ';…
1: package compiler; 2:   3: import java.io.BufferedWriter; 4:   5: public class Err { 6:   7: public int errCount = 0; 8: public static final String[] errInfo = new String[]{ 9: "", 10: "1.应是=而不是:=", 11: "2.=后应为数", 12: "…
1: package compiler; 2:   3: /** 4: * 采用全局变量sym来存储符号码,并用全局变量id和num来传递语义值 5: * 6: * @author jiangnan 7: * 8: */ 9: public class Symbol { 10:   11: //各类符号码 12: public static final int nul = 0; //NULL 13: public static final int ident = 1; //标识符 14: pub…
1: package compiler; 2:   3: /** 4: * //虚拟机指令 5: * 6: * @author jiangnan 7: * 8: */ 9: public class Pcode { 10:   11: public Pcode(int f, int l, int a) { 12: this.f = f; 13: this.l = l; 14: this.a = a; 15: } 16: public static final int LIT = 0; 17: p…
一.设计任务 1.1程序实现要求 PL/0语言可以看成PASCAL语言的子集,它的编译程序是一个编译解释执行系统.PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关. PL/0的编译程序和目标程序的解释执行程序都是用JAVA语言书写的,因此PL/0语言可在配备JDK的任何机器上实现. 其编译过程采用一趟扫描方式,以语法分析程序为核心,词法分析和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就调用词法分析程序,而当语法分析正确需要生成相应的目标代码时,则调用代码生成程序. 用…
这个方面适用于报错为:java 找不到或无法加载主类,一般是找不到类的路径,问题出在CLASSPATH环境变量上,当然这是大多数.大概率的出错点 不排除根据个人情况不况,所以想起来伟大领袖毛主席的话:具体问题具体分析 1.整个配置环境过程,不再赘述,请按照如下博客进行配置(我认为很全的一篇) http://www.cnblogs.com/liuhongfeng/p/4177568.html 2.检查环境变量是否配置成功 运行cmd 分别输入java,javac, java -version (j…
---------- android培训.java培训.期待与您交流! ---------- 一.Java语言概述及三大技术架构 1.Java语言概述 Java是SUN公司于1995年推出的一种面向Internet的编程语言.其特点是:面向对象.通用性.高效性.安全性.跨平台.随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言.  2.Java三大技术架构 Java由四方面组成:Java编程语言. Java文件格式. Java虚拟机(JVM). Java应用程序接口(J…
内容提要: 1.下载JDK: 2.安装JDK: 3.配置JDK;   第一,下载JDK:  1.登陆网址:www.oracle.com 2.点击 Downloads 3.选择 Java SE 4.选择 Java SE(includes JavaFX) 5.点击 JDK Download 6.选择Accpet License Agreement 版本对应: windows x86--32位操作系统 windows x64--64位操作系统 (如图) 下载完毕: 第二,安装JDK: 1.选择 要安装…
描述 本篇文章主要讲解基于windows 10系统搭建java开发环境,主要内容包括如下: (1)安装资料准备 (2)安装过程讲解 (3)测试是否安装成功 (4)Hello Word测试 1   安装材料准备 java开发环境搭建前,需要准备JDK和Eclipse. 1.1  JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.2  Eclipse 下载地址:http://www.eclips…
Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification version 原因:Tomcat7和Tomcat6在标签配置上稍有不同. 解决: You just need to confirm the allowed tags by web.xml confirming DTD file. e.g. version=”2.5″ compatible web.…
当我导入Gradle项目初试Java spring的时候,遇到下面报错: Gradle complete project refresh failed Error:Could not determine java version . 参考这篇 http://www.ddiinnxx.com/solving-not-determine-java-version-9-0-1-gradle-intellij-macosx/ 进行的设置 不过这篇是macosx的,但是步骤大同小异 第一步:检查JDK版本…
首先进行java安装 http://www.cnblogs.com/someone9/p/8670585.html 2. 然后查看版本信息,仍然是1.5.0 [root@OKC java]# java -version java version "1.5.0" gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-18) Copyright (C) 2007 Free Software Foundation, Inc. This…
我把 JAVA_HOME 从8改成了 7 , 为什么还是 显示的8啊 ! E:\sv0\jars>java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) JAVA_HOME 是 E:\Java\jdk7 path 是: C:\ProgramData\Oracle\Java\javapath;.;%HADOOP_HOME%\bin;f:\aspectj1…
原博地址:http://blog.csdn.net/dingchenxixi/article/details/51496998 一看知道是因为jdk版本不一致所导致,如何解决? 方法一: 选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version 方法二: 在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下; <…
一看知道是因为jdk版本不一致所导致,如何解决? 方法一: 选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version  方法二: 在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下; <?xml version="1.0" encoding="UTF-8"?> <…
在移植eclipse项目时,如果遇到 “Project facet Java version 1.7 is not supported.” 项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: 法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可. 法2,在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.…
学校编译课的作业之一,要求阅读两个较为简单的编译器的代码并做注释, 个人感觉是一次挺有意义的锻炼, 将自己的心得分享出来与一同在进步的同学们分享. 今后有时间再做进一步的更新和总结,其中可能有不少错误,也请各位大佬不吝指正. 代码可以通过使用Lazarus等pascal环境执行. 源码仓库:https://github.com/luxiaodou/Pascal-S-and-PL0-complier-comments PL0编译器源码 PL0语言是Pascal的一个子集,编译器也比较简单,逐行注释…
转载: http://my.oschina.net/nly/blog/349081 在移植eclipse项目时,如果遇到 报:“Project facet Java version 1.7 is not supported.”项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持.解决办法:法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version 即可法2,在 项目的目录下有一个…
Question: I have the 64bit version of the jdk installed on windows 7. I installed the 32 bit version of the jre as websites complained that I didn't have the java plugin. I tried in vain to get firefox to recognize the 64bit jre probably because fire…
可能你用的jdk1.5的包,而开发是用的jdk1.6,不允许1.5进行安装 法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可 法2,在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下; 修改 <installed facet="java" versi…
在Eclipse打开一个项目,并用Tomcat运行时,报错:Project facet Java version 1.7 is not supported. 大致的截图如下: "项目中的jdk1.7不支持". 说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: (1)选中项目 Properties , 选择 Project Facets,右击选择 Java , 更改 Version 为1.6或者其他支持的版本即可.(亲测可用)   (2)在项目的目录下…
在移植eclipse项目时,如果遇到 "Project facet Java version 1.7 is not supported." 项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: ,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可. ,在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org…
在移植eclipse项目时,如果遇到 "Project facet Java version 1.7 is not supported." 项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: 法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可. 法2,在 项目的目录下有一个.settings的文件夹,该文件夹下有一…
我把 JAVA_HOME 从8改成了 7 , 为什么还是 显示的8啊 ! E:\sv0\jars>java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) JAVA_HOME 是 E:\Java\jdk7 path 是: C:\ProgramData\Oracle\Java\javapath;.;%HADOOP_HOME%\bin;f:\aspectj1…