资源简介
编程演示三种存储管理方式的地址换算过程,分别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算。程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算。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个文件信息
相关资源
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 编译原理课程设计:词法语法编译器
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- 《编译原理》清华大学版中的pl0扩充
- PL/0功能扩充break功能
- 编译原理LR(0)语法分析
- 编译原理中间代码生成程序
- 编译原理:LR分析程序
- 编译原理实验:词法分析,语法分析
- 吉林大学编译原理课件
- 编译原理龙书答案
- 编译原理 第三章课后习题答案
- 易语言变量和数组的编译原理
- 编译原理语法分析器、词法分析器
- 山东大学编译原理PL/0语言 compiler实验
- FOR循环语句的翻译程序设计简单优先
- NFA的确定化NFA->DFA完整可运行代码
- 哈工大威海编译原理实验报告和源代
- 哈工大威海-编译原理实验报告和源码
- 编译原理课设c编译器
- 赋值语句翻译四元式
- 河北工业大学编译原理实验代码及实
- 编译原理课程设计 while do循环语句翻
- 编译原理课程设计do——while简单优先
- 南开大学编译原理课件及作业
- 华工往年编译原理试卷
- 编译原理课程设计for循环LR法三元式
- 哈工程-编译原理课程设计(2016级)
评论
共有 条评论