• 大小: 1.81MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-11
  • 语言: 其他
  • 标签: 编译原理  

资源简介

编程演示三种存储管理方式的地址换算过程,分别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算。程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算。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个文件信息

评论

共有 条评论