Chinaunix首页 | 论坛 | 博客
  • 博客访问: 738163
  • 博文数量: 251
  • 博客积分: 10367
  • 博客等级: 上将
  • 技术积分: 2750
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-10 14:43
文章分类

全部博文(251)

文章存档

2009年(2)

2008年(86)

2007年(163)

分类: C/C++

2008-03-18 07:18:56

 昨晚调了一晚的程序,没有出结果,于是今天起了个早床。。。搞定了:)

 另外觉得gcc的提错方式还可以改一下,不小心敲错一个函数后,eg:
  t1 = interStm( s->u.compound.stm1 , t);  //掉了一个p
 // t1 = interpStm( s->u.compound.stm1 , t);
  提示错误,类型转换不兼容 这样很难查错,提示没有定义该函数可能会更好。

 该程序解释一个语句:
  A_CompoundStm(A_AssignStm("a",
                 A_OpExp(A_NumExp(5), A_plus, A_NumExp(3))),
  A_CompoundStm(A_AssignStm("b",
      A_EseqExp(A_PrintStm(A_PairExpList(A_IdExp("a"),
                 A_LastExpList(A_OpExp(A_IdExp("a"), A_minus,
                                       A_NumExp(1))))),
              A_OpExp(A_NumExp(10), A_times, A_IdExp("a")))),
   A_PrintStm(A_LastExpList(A_IdExp("b")))));

 输出结果为:
 

[heixia@localhost chap1]$ ./a.out
8 7 80


 OK!

文件:直线式程序解释器.tar.gz
大小:2KB
下载:下载

阅读(1597) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-19 18:53:20

呵,我也在看函数式编程,那本《计算机程序的构造和解释》和《ML》,希望有机会和你交流 :) 至于“副作用”,我觉得这是命令式语言的特性,呵呵

chinaunix网友2008-11-19 10:07:35

最近看了点函数式编程的东西,感觉要做成“无副作用”就必须使用函数的参数传递的方式来保持状态而不是定义变量。

chinaunix网友2008-08-17 23:56:08

不好意思,这段时间不能上网了,估计十天左右,你问的问题我会尽力解答的,呵~ "无副作用" <==== 为那个变量再增加一个结点,应该可以,能上网了再看看~

chinaunix网友2008-08-17 00:37:33

倒是不错,不过,怎么才能把这个程序写成书中描述的“无副作用”?