资源简介
编程演示三种存储管理方式的地址换算过程,分别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算。程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算。Switch函数包含3个case语句,分别用page,Segment,SegPagt完成分页方式的地址换算,分段方式的地址换算,段页式的地址换算。
代码片段和文件信息
#include
#include “pl0.h“
#include “string.h“
#define stacksize 500
/*主函数*/
int main()
{
bool nxtlev[symnum];
printf(“\t********** 10级软件工程4班 ********\n“);
printf(“\t********** 姓名: 陈泳鑫 ********\n“);
printf(“\t********** 学号:3110006379 ********\n“);
printf(“ 输入pl/0文件名:“);
scanf(“%s“fname); //输入文件名
fin=fopen(fname“r“);
if (fin)
{
printf(“Listobject code? (Y/N)“); //是否输出虚拟机代码
scanf(“%s“fname);
listswitch=(fname[0]==‘y‘||fname[0]==‘Y‘);
printf(“List symbol table? (Y/N)“); //是否输出名字表
scanf(“%s“fname);
tableswitch=(fname[0]==‘y‘||fname[0]==‘Y‘);
fa1=fopen(“fa1.tmp““w“);
fprintf(fa1“Input pl/0 file?“);
fprintf(fa1“%s\n“fname);
init(); //初始化
err=0;
cc=cx=ll=0;
ch=‘ ‘;
if(-1!=getsym())
{
fa=fopen(“fa.tmp““w“);
fas=fopen(“fas.tmp““w“);
addset(nxtlevdeclbegsysstatbegsyssymnum);
nxtlev[period]=true;
if(-1==block(00nxtlev)) //调用编译程序
{
fclose(fa);
fclose(fa1);
fclose(fas);
fclose(fin);
printf(“\n“);
return 0;
}
fclose(fa);
fclose(fa1);
fclose(fas);
if(sym!=period)
{
error(9);
}
if(err==0)
{
fa2=fopen(“fa2.tmp““w“);
interpret(); //调用解释执行程序
fclose(fa2);
}
else
{
printf(“Errors in pl/0 program“);
}
}
fclose(fin);
}
else
{
printf(“Can‘t open file! \n“);
}
printf(“\n“);
scanf(“%s“fname);
return 0;
}
/*
//初始化
*/
void init()
{
int i;
/*设置单字符符号*/
for (i=0;i<=255;i++)
{
ssym[i]=nul;
}
ssym[‘+‘]=plus;
ssym[‘-‘]=minus;
ssym[‘*‘]=times;
ssym[‘/‘]=slash;
ssym[‘(‘]=lparen;
ssym[‘)‘]=rparen;
ssym[‘=‘]=eql;
ssym[‘‘]=comma;
ssym[‘.‘]=period;
//ssym[‘#‘]=neq;
ssym[‘;‘]=semicolon;
/*设置保留名字,按照字母顺序,便于折半查找*/
strcpy(&(word[0][0])“begin“);
strcpy(&(word[1][0])“call“);
strcpy(&(word[2][0])“const“);
strcpy(&(word[3][0])“do“);
strcpy(&(word[4][0])“downto“);
strcpy(&(word[5][0])“else“);
strcpy(&(word[6][0])“end“);
strcpy(&(word[7][0])“for“);
strcpy(&(word[8][0])“if“);
strcpy(&(word[9][0])“odd“);
strcpy(&(word[10][0])“procedure“);
strcpy(&(word[11][0])“read“);
strcpy(&(word[12][0])“repeat“);
strcpy(&(word[13][0])“return“);
strcpy(&(word[14][0])“then“);
strcpy(&(word[15][0])“to“);
strcpy(&(word[16][0])“until“);
strcpy(&(word[17][0])“var“);
strcpy(&(word[18][0])“while“);
strcpy(&(word[19][0])“write“);
/*设置保留字符号*/
wsym[0]=beginsym;
wsym[1]=callsym;
wsym[2]=constsym;
wsym[3]=dosym;
wsym[4]=downtosym;
wsym[5]=elsesym;
wsym[6]=endsym;
wsym[7]=forsym;
wsym[8]=ifsym;
wsym[9]=oddsym;
wsym[10]=procsym;
wsym[11]=readsym;
wsym[12]=repeatsym;
wsym[13]=returnsym;
wsym[14]=thensym;
wsym[15]=tosym;
wsym[16]=untilsym;
wsym[17]=varsym;
wsym[18]=whilesym;
wsym[19]=writesym;
/*设置指令名称*/
strcpy(&(mnemonic[lit][0])“lit“);
strcpy(&(mnemonic[opr][0])“opr“);
strcpy(&(mnemonic[lod][0])“lod“);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-12-17 12:59 陈泳鑫 310006379 编译原理\
目录 0 2013-11-27 16:05 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\
目录 0 2013-01-14 23:59 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\
目录 0 2013-01-14 23:59 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\
文件 64451 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\main.obj
文件 33792 2013-01-03 20:54 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\vc60.idb
文件 53248 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\vc60.pdb
文件 213044 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\编译原理.exe
文件 210776 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\编译原理.ilk
文件 223872 2013-01-03 19:51 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\编译原理.pch
文件 517120 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\Debug\编译原理.pdb
文件 98 2013-01-03 20:33 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\else.txt
文件 332 2013-01-03 20:54 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\fa.tmp
文件 161 2013-01-03 20:54 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\fa1.tmp
文件 7 2013-01-03 20:54 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\fa2.tmp
文件 44 2013-01-03 20:54 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\fas.tmp
文件 36995 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\main.cpp
文件 4536 2013-01-03 19:51 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\pl0.h
文件 84 2013-01-03 20:32 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\uneq.txt
文件 4243 2013-01-03 19:49 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\编译原理.dsp
文件 524 2013-01-03 19:49 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\编译原理.dsw
文件 41984 2013-01-03 21:18 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\编译原理.ncb
文件 1269 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\编译原理实验 源代码,运行文件\编译原理.plg
文件 668524 2013-01-03 23:26 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理实验报告\陈泳鑫 310006379 编译原理实验报告.doc
目录 0 2013-12-17 12:59 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\
目录 0 2013-01-14 23:59 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\编译原理课程设计 源代码,运行文件\
目录 0 2013-01-14 23:59 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\编译原理课程设计 源代码,运行文件\Debug\
文件 64451 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\编译原理课程设计 源代码,运行文件\Debug\main.obj
文件 33792 2013-01-03 20:54 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\编译原理课程设计 源代码,运行文件\Debug\vc60.idb
文件 53248 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\编译原理课程设计 源代码,运行文件\Debug\vc60.pdb
文件 213044 2013-01-03 20:35 陈泳鑫 310006379 编译原理\陈泳鑫 310006379 编译原理课程设计报告\编译原理课程设计 源代码,运行文件\Debug\编译原理.exe
............此处省略18个文件信息
相关资源
- 编译原理龙书部分答案1-9
- 编译原理 第二版 龙书 习题答案
- 编译原理陈火旺第三版课本及其答案
- 编译原理实验题——PL/0语言编译器设
- 编译原理课件和每章作业答案
- 四川大学软件学院《编译原理》近三
- 西安电子科技大学编译原理考试题2
- 编译原理 (第二版) 张素琴
- 编译原理简单赋值语句的语法分析程
- 编译原理实验TINY+编译器
- 编译原理课后答案清华大学出版社
- 编译原理语法分析器课程设计
- 编译原理——for循环语句的翻译,L
- 清华《编译原理》课后习题答案
- 编译原理 清华ppt 课件
- 编译原理及实现技术 第二版 刘磊等编
- 词法分析器Lex(编译原理)
- 编译原理学习指导与习题解析
- 四川大学编译原理2011-2015期末考题
- 编译原理课程辅导+清华大学计算机系
- 北京邮电大学编译原理期末试卷
- 编译原理 for 条件语句,while 语句的翻
- 广工编译原理的复习资料试卷等
- 华工编译原理复习资料
- 杭电编译原理语法分析器
- 编译原理答案第二版 刘坚 编著
- 华工编译原理实验词法分析+语法分析
- 编译原理课件及实验源代码实验报告
- 东南大学编译原理实验 lex&&yacc
- 北方工业大学编译原理话语法分析实
评论
共有 条评论