俺要做毕业设计了,选的课题是《微分技术的简单递归实现》,当时是冲着“简单”去的,结果,却选到了这个导师手下最难的课题,晕。  想请大家帮个忙,当然不会是帮我把设计搞完啦。就帮我推荐几本书,然后能够给我那么一点点的提示,让我有个入手点就好了,谢谢哈~~~~  老师当时说这个东西可以用《编译原理》里提及的那些东西来做,是一个叫 YACC 的东东。但他跟我说不用这个玩意,用面向对象的思想来解决这个问题。
  具体就是,用面向对象的多态特性来办,涉及到递归调用,当然不是方法自己调用自己的简单递归,而是互调的,如f1()调用f2(),f2()调用f3(),而f3()又调用f1(),诸如此类。  我不知道有没有表达清楚,反正我现在是一点思绪都没有,希望大家给我个提示,再介绍一些书吧,谢过。

解决方案 »

  1.   

    老师当时说这个东西可以用《编译原理》里提及的那些东西来做,是一个叫 YACC 的东东。但他跟我说不用这个玩意,用面向对象的思想来解决这个问题。研究一下YACC的算法,用面向对象的方法实现就行了,呵呵,好像有点简单,但是思考的方法就是这样,你没有办法,只能参考别人的办法,搞懂了你就能够自己用你的方法写了。
      

  2.   

    导师的意思是说,应该先自己写出文法,用自顶向下递归的方法来实现算法.
    文法比如,
    <项> ::= <因子>{<乘法运算符><因子>}
    <因子> ::= <标识符>|<无符号整数>|'('<表达式>')'
    ....................................
    当然具体要自己写了,否则就不叫研究课题了.
    自顶向下递归的方法就不多说了,编译原理讲的很明白.
    祝楼主好运!
      

  3.   

    呵呵 是不是信息与计算科学的朋友!!把面向对象了解一下 <<thinking in java >>
      

  4.   

    http://www-128.ibm.com/developerworks/cn/linux/sdk/lex/
    西安电子科技大学有有关编译原理的教科书,我感觉比较通俗易懂,还有个高级教程供研究生用的,你可以参考去看