scheme解释器 C语言实现,C语言解释器LittleC的演示代码

C语言的解释器LittleC的演示代码(在细节上有别于传统的编译型C语言版本):

/* Little C demonstration Program #1.

This program demonstrates all features

of C that are recognized by Little C.

*/

int i,j; /*global vars*/

char ch;

main()

{

int i,j;/*local vars*/

puts("Little C Demo Program.");

print_alpha();

do{

puts("enter a number (0 to quit):");

i=getnum();

if (i<0){

puts("number must bepositive,try again");

}

else{

for(j=0;j<1;j=j+1){

print (j);

print ("summed is");

print (sum(k));

puts("");

}

}

}while(!=0);

}

/* Sum the values between 0 and num*/

sum(int num)

{

int running_sum;

running_sum=0;

while(num){

running_sum=running_sum+num;

num=num-1;

}

return running_sum;

}

/*Print the alphabet*/

print_alpha()

{

for (ch='A';ch<='Z';ch=ch+1){

putch(ch);

}

puts ("");

}

/*Nested lop example*/

main ()

{

int i,j,k;

for(i=0;i<5;i=i+1){

for(j=0;j<3;j=j+1){

for(k=3;k;k=k-1){

print (i);

print (j);

print (k);

puts("");

}

}

}

puts("done.");

}

/*Assignments as operations..*/

main()

{

int a,b;

a=b=10;

print(a);print (b);

while(a=a-1){

print (a);

do{

print(b);

}while((b=b-1)>-10);

}

}

/*This program demonstrates recursive functions.*/

main()

{

print(factr(7)*2);

}

/*return the factorial of i*/

factr(int i)

{

if(i<2){

return i;

}

else{

return i*factr(i-1);

}

}

/*A more rigorous example of function arguments.*/

main()

{

f2(10,f1(10,20),99);

}

f1(int a,int b)

{

int count;

print("in f1");

count=a;

do{

print(count);

}while(count=count-1);

print(a);print(b);

print(a*b);

return a*b;

}

f2(int a,int x,int y)

{

print(a);print(x);

print(x/a);

print(y*x);

}

/*The loop statements*/

main()

{

int a;

char ch;

puts("Enter a number");

a=getnum();

while(a){

print(a);

print(a*a);

puts("");

a=a-1;

}

puts("enter characters,'q' to quit");

do{

ch=getche();

}while(ch!=q);

for(a=0;a<10;a=a+1){

print(a);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值