毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

词法分析-编译原理-词法分析 第2页

更新时间:2008-12-15:  来源:毕业论文

词法分析-编译原理-词法分析 第2页
⑵ 源代码
# include <stdio.h>
# include <string.h>
char prog[80]={"begin r12 #"},token[8];
char ch;
int syn,p=0,m,n,sum=0;
char *rwtab[6]={"begin","if","then","while","do","end"};
void scaner();

main()
{
 p=0;
 printf("\n please input string:\n");
 int i=0;
 p=0;
 do{
  scaner();
  switch(syn)
  {
  case 11:printf("(11,%d)",sum);break;
  case -1:printf("error!");break;
  default:printf("(%d,%s)",syn,token);
  }
 }while(syn!=0);
}

void scaner()
{
 for(n=0;n<8;n++)
  token[n]=NULL;
 ch=prog[p++];
 while(ch==' ')
  ch=prog[p++];
 if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
 {
  m=0;
  while((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9'))
  {
   
   token[m++]=ch;
   ch=prog[p++];
  }
  token[m++]='\0';
  syn=10;
  for(n=0;n<6;n++)
   if(strcmp(token,rwtab[n])==0)
   {
    syn=n+1;
    break;
   }
 }
 else
 {
  if(ch>='0'&&ch<='9')
  {
   while(ch>='0'&&ch<='9')
   {
    sum=sum*10+(ch-'0');
    ch=prog[p++];
   }
   syn=11;
  }
  else{
   switch(ch)
751com.cn
    else
    {
     syn=20;
    }
    break;
   case '>':
    m=0;
    token[m++]=ch;
    ch=prog[p++];
    if(ch=='=')
    {
     syn=24;
     token[m++]=ch;
    }
    else
    {
     syn=23;
    }
    break;
   case ':':
    m=0;
    token[m++]=ch;
    ch=prog[p++];
    if(ch=='=')
    {
     syn=18;
     token[m++]=ch;
    }
    else
    {
     syn=17;
    }
    break;
   case'+':syn=13;token[0]=ch;break;
   case'-':syn=14;token[0]=ch;break;
case'*':syn=15;token[0]=ch;break;
   case'/':syn=16;token[0]=ch;break;
   case'=':syn=25;token[0]=ch;break;
   case';':syn=26;token[0]=ch;break;
   case'(':syn=27;token[0]=ch;break;
   case')':syn=28;token[0]=ch;break;
   case'#':syn=0;token[0]=ch;break;
   default:syn=-1;
  }
  }
 }

}

4、 测试数据与实验结果(可以抓图粘贴)
1.对源程序 begin  r12  #
 
2.对源程序 begin if x>0  then x=3  end #
 
3.对于源程序begin do x++ while x>0 end # 

5、 结果分析与实验体会
  本次编译原理的实验做的是词法分析程序的编写。词法分析算法的基本任务是从字符串标识的源程序中识别出具有独立意义的单词符号。
  词法分析程序是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。这个程序在书上有了C语言程序框架,但是其中细节部分没有具体描述,需要我们添加进去。程序框架由c语言描写,还是比较好理解的。但是其中也有一些问题出现,没有做到十分的完善。
  本次编译原理程序是一个基础,后续还有语法分析,语义分析等。这次的实验课让我们更加的了解了编译原理,将课本上的理论化成实践,我们应该继续努力好好学习这门课程

上一页  [1] [2] 

词法分析-编译原理-词法分析 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。