91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

pl0解釋器的分離實現代碼程序,獻給編譯的朋友,也獻給為作業而煩惱的朋友,解壓以后就可以運行。

資源截圖

代碼片段和文件信息

//?pl0?compiler?source?code

#include?
#include?
#include?
#include?
#include?“set.h“
#include?“pl0.h“


//////////////////////////////////////////////////////////////////////
int?dx;??//?data?allocation?index

int?chuandaoshu(char?*p)
{
int?i=0;
for?(i=0;i<=7;i++)
{
if(p==cod[i])
return?0;
else?if(p==cod[i])
return?1;
else?if(p==cod[i])
return?2;
else?if(p==cod[i])
return?3;
else?if(p==cod[i])
return?4;
else?if(p==cod[i])
return?5;
else?if(p==cod[i])
return?6;
else?if(p==cod[i])
return?7;
else?return?-1;
}

}


int?base(int?stack[]?int?currentLevel?int?levelDiff)////////////////////////////////////////////////
{
int?b?=?currentLevel;

while?(levelDiff--)
b?=?stack[b];
return?b;
}?//?base

//////////////////////////////////////////////////////////////////////
//?interprets?and?executes?codes.
void?interpret()
{
int?pc;????????//?program?counter
int?stack[STACKSIZE];
int?top;???????//?top?of?stack
int?b;?????????//?program?base?and?top-stack?register
instruction?i;?//?instruction?register

printf(“開始PL/0?程序.\n“);
fprintf(outfile?“開始PL/0?程序.\n“);

pc?=?0;
b?=?1;
top?=?3;
stack[1]?=?stack[2]?=?stack[3]?=?0;
do
{
i?=?code[pc++];
switch?(i.f)
{
case?LIT:
stack[++top]?=?i.a;
break;
case?OPR:
switch?(i.a)?//?operator
{
case?OPR_RET:
top?=?b?-?1;
pc?=?stack[top?+?3];
b?=?stack[top?+?2];
break;
case?OPR_NEG:
stack[top]?=?-stack[top];
break;
case?OPR_ADD:
top--;
stack[top]?+=?stack[top?+?1];
break;
case?OPR_MIN:
top--;
stack[top]?-=?stack[top?+?1];
break;
case?OPR_MUL:
top--;
stack[top]?*=?stack[top?+?1];
break;
case?OPR_DIV:
top--;
if?(stack[top?+?1]?==?0)
{
fprintf(stderr?“Runtime?Error:?Divided?by?zero.\n“);
fprintf(stderr?“Program?terminated.\n“);
continue;
}
stack[top]?/=?stack[top?+?1];
break;
case?OPR_ODD:
stack[top]?%=?2;
break;
case?OPR_EQU:
top--;
stack[top]?=?stack[top]?==?stack[top?+?1];
break;
case?OPR_NEQ:
top--;
stack[top]?=?stack[top]?!=?stack[top?+?1];
case?OPR_LES:
top--;
stack[top]?=?stack[top]? break;
case?OPR_GEQ:
top--;
stack[top]?=?stack[top]?>=?stack[top?+?1];
case?OPR_GTR:
top--;
stack[top]?=?stack[top]?>?stack[top?+?1];
break;
case?OPR_LEQ:
top--;
stack[top]?=?stack[top]?<=?stack[top?+?1];
}?//?switch
break;
case?LOD:
stack[++top]?=?stack[base(stack?b?i.l)?+?i.a];
break;
case?STO:
stack[base(stack?b?i.l)?+?i.a]?=?stack[top];
printf(“%d\n“?stack[top]);
fprintf(outfile?“%d\n“?stack[top]);
top--;
break;
case?CAL:
stack[top?+?1]?=?base(stack?b?i.l);
//?generate?new?block?mark
stack[top?+?2]?=?b;
stack[top?+?3]?=?pc;
b?=?top?+?1;
pc?=?i.a;
break;
case?INT:
top?+=?i.a;
break;
case?JMP:

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-07-12?15:15??pl0分離解釋器的實現\
?????目錄???????????0??2012-07-10?17:10??pl0分離解釋器的實現\Debug\
?????文件??????????33??2012-07-11?14:03??pl0分離解釋器的實現\Debug\hbin.out
?????文件?????????336??2012-07-10?14:49??pl0分離解釋器的實現\Debug\hbin.txt
?????文件??????204885??2012-07-10?17:11??pl0分離解釋器的實現\Debug\pl0.exe
?????文件??????236308??2012-07-10?17:11??pl0分離解釋器的實現\Debug\pl0.ilk
?????文件???????22827??2012-07-10?17:11??pl0分離解釋器的實現\Debug\pl0.obj
?????文件??????217308??2012-07-10?17:10??pl0分離解釋器的實現\Debug\pl0.pch
?????文件??????541696??2012-07-10?17:11??pl0分離解釋器的實現\Debug\pl0.pdb
?????文件????????5953??2004-08-27?22:19??pl0分離解釋器的實現\Debug\set.obj
?????文件????????1641??2004-08-27?22:30??pl0分離解釋器的實現\Debug\test.out
?????文件?????????233??2004-08-27?22:25??pl0分離解釋器的實現\Debug\test.pl0
?????文件???????????0??2004-08-27?22:21??pl0分離解釋器的實現\Debug\test.pl0.bak
?????文件???????41984??2012-07-11?14:02??pl0分離解釋器的實現\Debug\vc60.idb
?????文件???????53248??2012-07-10?17:11??pl0分離解釋器的實現\Debug\vc60.pdb
?????文件????????4389??2012-07-10?17:11??pl0分離解釋器的實現\pl0.c
?????文件????????4420??2004-08-27?22:34??pl0分離解釋器的實現\pl0.dsp
?????文件?????????529??2004-08-27?22:34??pl0分離解釋器的實現\pl0.dsw
?????文件????????5034??2012-07-10?17:10??pl0分離解釋器的實現\pl0.h
?????文件???????58368??2012-07-11?14:03??pl0分離解釋器的實現\pl0.ncb
?????文件???????48640??2012-07-11?14:03??pl0分離解釋器的實現\pl0.opt
?????文件????????1424??2012-07-10?17:11??pl0分離解釋器的實現\pl0.plg
?????文件????????1893??2002-02-28?16:15??pl0分離解釋器的實現\set.c
?????文件?????????430??2012-07-09?16:20??pl0分離解釋器的實現\set.h
?????文件??????????56??2012-07-12?15:17??pl0分離解釋器的實現\幫助文檔.txt

評論

共有 條評論