亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? interpreter.java

?? pl/0編譯程序的java版
?? JAVA
字號(hào):
import java.io.*;

/**
 *  這個(gè)類對(duì)應(yīng)C語言版本中的 fct 枚舉類型和 instruction 結(jié)構(gòu),代表虛擬機(jī)指令
 */
class Instr {
	// fct枚舉類型的常數(shù)
	public static final int lit = 0;
	public static final int opr = 1;
	public static final int lod = 2;
	public static final int sto = 3;
	public static final int cal = 4;
	public static final int inte= 5;
	public static final int jmp = 6;
	public static final int jpc = 7;
	
	// 各符號(hào)的名字
	public static final String[] mnemonic = new String[]{
			"lit", "opr", "lod", "sto", 
			"cal", "int", "jmp", "jpc"};
	
	/**
	 * 虛擬機(jī)代碼指令
	 */
	public int f;
	
	/**
	 * 引用層與聲明層的層次差
	 */
	public int l;
	
	/**
	 * 指令參數(shù)
	 */
	public int a;
}

/**
 *  類P-Code代碼解釋器(含代碼生成函數(shù)),這個(gè)類包含了C語言版中兩個(gè)重要的全局變量 cx 和 code
 * @author 梁英毅
 *
 */
public class Interpreter {
	// 解釋執(zhí)行時(shí)使用的棧大小
	final int stacksize = 500;
	
	/**
	 * 虛擬機(jī)代碼指針,取值范圍[0, cxmax-1] 
	 */
	public int cx = 0;
	
	/**
	 * 存放虛擬機(jī)代碼的數(shù)組
	 */
	public Instr[] code = new Instr[PL0.cxmax];
	
	/**
	 * 生成虛擬機(jī)代碼
	 * @param x instruction.f
	 * @param y instruction.l
	 * @param z instruction.a
	 */
	public void gen(int x, int y, int z) {
		if (cx >= PL0.cxmax) {
			throw new Error("Program too long");
		}
		
		code[cx] = new Instr();
		code[cx].f = x;
		code[cx].l = y;
		code[cx].a = z;
		cx ++;
	}

	/**
	 * 輸出目標(biāo)代碼清單
	 * @param start 開始輸出的位置
	 */
	public void listcode(int start) {
		if (PL0.listswitch) {
			for (int i=start; i<cx; i++) {
				String msg = i + " " + Instr.mnemonic[code[i].f] + " " + code[i].l + " " + code[i].a;
				System.out.println(msg);
				PL0.fa.println(msg);
			}
		}
	}
	
	/**
	 * 解釋程序
	 */
	public void interpret() {
		BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
		int p, b, t;						// 指令指針,指令基址,棧頂指針
		Instr i;							// 存放當(dāng)前指令
		int[] s = new int[stacksize];		// 棧
		
		System.out.println("start pl0");
		t = b = p = 0;
		s[0] = s[1] = s[2] = 0;
		do {
			i = code[p];					// 讀當(dāng)前指令
			p ++;
			switch (i.f) {
			case Instr.lit:				// 將a的值取到棧頂
				s[t] = i.a;
				t++;
				break;
			case Instr.opr:				// 數(shù)學(xué)、邏輯運(yùn)算
				switch (i.a)
				{
				case 0:
					t = b;
					p = s[t+2];
					b = s[t+1];
					break;
				case 1:
					s[t-1] = -s[t-1];
					break;
				case 2:
					t--;
					s[t-1] = s[t-1]+s[t];
					break;
				case 3:
					t--;
					s[t-1] = s[t-1]-s[t];
					break;
				case 4:
					t--;
					s[t-1] = s[t-1]*s[t];
					break;
				case 5:
					t--;
					s[t-1] = s[t-1]/s[t];
					break;
				case 6:
					s[t-1] = s[t-1]%2;
					break;
				case 8:
					t--;
					s[t-1] = (s[t-1] == s[t] ? 1 : 0);
					break;
				case 9:
					t--;
					s[t-1] = (s[t-1] != s[t] ? 1 : 0);
					break;
				case 10:
					t--;
					s[t-1] = (s[t-1] < s[t] ? 1 : 0);
					break;
				case 11:
					t--;
					s[t-1] = (s[t-1] >= s[t] ? 1 : 0);
					break;
				case 12:
					t--;
					s[t-1] = (s[t-1] > s[t] ? 1 : 0);
					break;
				case 13:
					t--;
					s[t-1] = (s[t-1] <= s[t] ? 1 : 0);
					break;
				case 14:
					System.out.print(s[t-1]);
					PL0.fa2.print(s[t-1]);
					t--;
					break;
				case 15:
					System.out.println();
					PL0.fa2.println();
					break;
				case 16:
					System.out.print("?");
					PL0.fa2.print("?");
					s[t] = 0;
					try {
						s[t] = Integer.parseInt(stdin.readLine());
					} catch (Exception e) {}
					PL0.fa2.println(s[t]);
					t++;
					break;
				}
				break;
			case Instr.lod:				// 取相對(duì)當(dāng)前過程的數(shù)據(jù)基地址為a的內(nèi)存的值到棧頂
				s[t] = s[base(i.l,s,b)+i.a];
				t++;
				break;
			case Instr.sto:				// 棧頂?shù)闹荡娴较鄬?duì)當(dāng)前過程的數(shù)據(jù)基地址為a的內(nèi)存
				t--;
				s[base(i.l, s, b) + i.a] = s[t];
				break;
			case Instr.cal:				// 調(diào)用子過程
				s[t] = base(i.l, s, b); 	// 將靜態(tài)作用域基地址入棧
				s[t+1] = b;					// 將動(dòng)態(tài)作用域基地址入棧
				s[t+2] = p;					// 將當(dāng)前指令指針入棧
				b = t;  					// 改變基地址指針值為新過程的基地址
				p = i.a;   					// 跳轉(zhuǎn)
				break;
			case Instr.inte:			// 分配內(nèi)存
				t += i.a;
				break;
			case Instr.jmp:				// 直接跳轉(zhuǎn)
				p = i.a;
				break;
			case Instr.jpc:				// 條件跳轉(zhuǎn)(當(dāng)棧頂為0的時(shí)候跳轉(zhuǎn))
				t--;
				if (s[t] == 0)
					p = i.a;
				break;
			}
		} while (p != 0);
	}
	
	/**
	 * 通過給定的層次差來獲得該層的堆棧幀基地址
	 * @param l 目標(biāo)層次與當(dāng)前層次的層次差
	 * @param s 運(yùn)行棧
	 * @param b 當(dāng)前層堆棧幀基地址
	 * @return 目標(biāo)層次的堆棧幀基地址
	 */
	private int base(int l, int[] s, int b) {
		int b1 = b;
		while (l > 0) {
			b1 = s[b1];
			l --;
		}
		return b1;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人dvd| 日精品一区二区| 成人app软件下载大全免费| 久久久91精品国产一区二区精品| 久久99九九99精品| 国产日韩欧美不卡在线| eeuss鲁片一区二区三区| 亚洲欧美日韩久久精品| 欧美综合一区二区| 日本午夜一本久久久综合| 欧美一级高清片| 国产不卡一区视频| 亚洲欧美日韩久久| 制服.丝袜.亚洲.中文.综合| 久久精品久久久精品美女| 国产欧美日韩综合| 在线视频国产一区| 免播放器亚洲一区| 中文字幕在线免费不卡| 91免费观看视频在线| 爽好多水快深点欧美视频| 久久日韩精品一区二区五区| 成人av在线影院| 丝袜诱惑亚洲看片| 国产午夜精品久久久久久免费视| 99久久99久久精品免费观看| 五月天丁香久久| 国产欧美一区二区精品秋霞影院 | 国产亚洲人成网站| 91日韩精品一区| 蜜桃av一区二区三区| 国产精品人妖ts系列视频| 在线看国产一区二区| 国产在线一区二区综合免费视频| 日韩伦理av电影| 精品国产一区二区三区忘忧草| 成人激情图片网| 麻豆精品一区二区三区| 一区二区三区美女视频| 欧美一区二区精品| 色老汉av一区二区三区| 国产一区二区三区在线观看精品| 亚洲欧美日韩国产中文在线| 2019国产精品| 欧美揉bbbbb揉bbbbb| 成人网男人的天堂| 麻豆免费精品视频| 亚洲福利一二三区| 亚洲视频一区二区免费在线观看| 精品免费日韩av| 欧美日本国产一区| 色综合一区二区三区| 福利一区在线观看| 久久99国内精品| 亚洲va欧美va人人爽午夜| 亚洲欧美一区二区三区极速播放| 国产亚洲综合av| 日韩精品在线网站| 8x8x8国产精品| 欧美在线综合视频| 在线一区二区三区四区| 成人精品免费看| 国产剧情一区在线| 久久精品国产第一区二区三区| 亚洲成人tv网| 亚洲bdsm女犯bdsm网站| 一区二区三区四区不卡视频| 国产精品久久毛片| 中文字幕不卡在线| 中文在线资源观看网站视频免费不卡 | 国产精品久久免费看| 国产性做久久久久久| 久久在线免费观看| 久久精品人人做人人爽97 | 精品国产欧美一区二区| 91麻豆精品国产91久久久久久| 欧美性生活久久| 欧美日韩在线亚洲一区蜜芽| 久久综合色8888| 日韩欧美一区在线观看| 欧美一区二视频| 日韩一卡二卡三卡国产欧美| 911国产精品| 精品处破学生在线二十三| 精品国产电影一区二区| xnxx国产精品| 亚洲国产精品v| 亚洲乱码国产乱码精品精小说| 亚洲丝袜美腿综合| 亚洲一区二区五区| 日本一区中文字幕| 国产尤物一区二区| 成人a区在线观看| 色综合久久久久综合体桃花网| 欧洲精品中文字幕| 6080国产精品一区二区| 日韩欧美电影一区| 日本一区二区视频在线观看| 中文字幕亚洲不卡| 亚洲一区二区三区四区不卡| 日韩高清欧美激情| 国产麻豆视频一区二区| 99国产精品国产精品久久| 精品视频1区2区| 欧美成人一区二区三区在线观看 | 成人美女在线视频| 91福利社在线观看| 日韩一区二区三区四区| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美日韩一区国产| 欧美精品一区二区精品网| ...av二区三区久久精品| 亚洲电影一级黄| 国产尤物一区二区在线| 色综合久久久久网| 欧美va在线播放| 亚洲欧美影音先锋| 九色|91porny| 欧美在线你懂的| 欧美精品一区二区久久久| 亚洲欧美电影院| 国产一区二区三区久久久| 欧美怡红院视频| 国产亚洲一区字幕| 日韩专区欧美专区| 91在线观看美女| 26uuu精品一区二区| 亚洲国产精品人人做人人爽| 国产精品中文有码| 91麻豆精品国产91久久久更新时间| 中文字幕av资源一区| 午夜精品成人在线| 99视频国产精品| 精品奇米国产一区二区三区| 一区二区三区日韩精品视频| 国产精品综合二区| 91精品国产综合久久精品图片| 国产精品理伦片| 国产一区二区免费在线| 7777精品久久久大香线蕉| 伊人色综合久久天天人手人婷| 国产精品自在欧美一区| 欧美一级欧美一级在线播放| 一区二区三区中文免费| 成人午夜激情视频| 久久久久免费观看| 老司机免费视频一区二区三区| 欧美系列在线观看| 亚洲色图清纯唯美| 成人国产在线观看| 国产三级精品三级| 国产精品亚洲午夜一区二区三区 | 亚洲女同一区二区| 国产盗摄一区二区| 精品国产制服丝袜高跟| 欧美a级理论片| 67194成人在线观看| 舔着乳尖日韩一区| 欧美色综合网站| 亚洲高清中文字幕| 欧美日韩综合一区| 亚洲国产欧美一区二区三区丁香婷| voyeur盗摄精品| 国产精品人成在线观看免费| 国产白丝精品91爽爽久久| 久久午夜色播影院免费高清| 久久国产精品99精品国产| 欧美成人三级在线| 麻豆精品在线观看| 久久毛片高清国产| 丁香六月综合激情| 国产精品久久久久毛片软件| 不卡一区在线观看| 亚洲另类春色校园小说| 在线欧美小视频| 午夜精品福利视频网站| 日韩欧美一级片| 久久66热偷产精品| 国产情人综合久久777777| 成人一二三区视频| 亚洲精品国产一区二区三区四区在线 | 欧美日韩三级在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美成人一区二区| 成人一级片网址| 一区二区久久久久| 欧美人妖巨大在线| 激情文学综合插| 国产精品国产精品国产专区不片| 一道本成人在线| 日韩黄色免费电影| 久久蜜桃av一区精品变态类天堂| 丁香六月久久综合狠狠色| 亚洲精品国产精品乱码不99| 欧美日韩视频在线第一区| 久久99热国产| 综合自拍亚洲综合图不卡区| 欧美日韩aaaaaa| 国产91综合一区在线观看| 一区二区三区**美女毛片|