c解释器:先放个最原始版的demo给大家看看,征集修改意见

作者在 2010-05-19 20:09:51 发布以下内容
     c解释器,使用ActionScript3.0编写,将简单的c代码解释执行,并使用动画的方式将变量在内存的动作演示出来。是为完全没有变成基础的c语言初学者或是教授c语言而编写的一个教学与练习工具。
 
     以下是我编写的c解释器原始版版本。非常的简陋,支持的仅支持int数据类型(含一维数组)
、if语句(必须要有大括号,不支持else)、for语句(必须有大括号)、不识别注释符号、出现语法错误无提示(若写了个无限循环或是引用了不存在的变量,会导致flash出错或崩溃)、支持简单的表达式(&&、||、!=、==、<、>、<=、>=、+、-、*、\、%、++、--、+=、-=)……
 
     目前我正在完善第二版本:支持所有的c基本数据类型,条件分支语句,循环语句,所有的表达式运算,虚拟了内存地址与数据段堆栈段等,可以实现简单的指针操作,具有语法错误提示,演示器部分的功能也更加强大,但是指针运算还存在一些问题,程序作用域功能还没有实现,是否支持函数的声明与调用还在考虑中……
     总之,目前还在不断完善中,希望大家提出一些修改意见建议等。若有人对解释器的实现感兴趣,请告诉我,我会在随后的日志里将实现代码贴出来。
 
操作说明:
      编辑框(code):放置代码的地方,相当于是在main函数里写代码。
     go按钮:执行一个内存动作动画
     X按钮:清除内存中的变量
[flash]http://up.qzone.net.cn/flash14/20100520025922_CDemo.swf[/flash]
下面列出一些简单的测试代码(将测试代码放如文本框(不含注释),不断点击“go”即可):
//测试一
int a ;
int b ;
int c ;
int d ;
int e ;
//测试二
int testA [5];
int testB [3*4];
int testC[2+5];
//测试三
int test[10]={1,2,4,33,0,123,90,45,75,8977};
int temp;
temp=test[6];
//测试四
int a[10]={0,1,2,3,4,5,6,7,8,9} ;
int b[10]={0,1,2,3,4};
int c[10]={0,0,0,0,0,0,0,0,0,0};
int d[10]={0};
int e[5]={9,8,7,6,5};
int f[]={9,8,7,6,5};
//测试五:用数组来处理求Fibonacci数列问题。
int i;
int f[6]={1,2};
for(i=2;i<6;i++)
{
 f[i]=f[i-2]+f[i-1];
}
//测试六:从小到大排序
int i,j,t;
int a[5]={3,5,1,7,4};
for(j=0;j<4;j++)
{
 for(i=0;i<4-j;i++)
 {
  if(a[i]>a[i+1])
  {
   t=a[i];
   a[i]=a[i+1];
   a[i+1]=t;
  }
 }
}
 
 
AS3.0写C解释器 | 阅读 1068 次
文章评论,共0条
游客请输入验证码
文章归档
最新评论