Java语言在编译原理课程中的应用

编译原理是计算机专业课程中最难学的课程之一。使用Java语言描述教学模型和编译算法除了使学生更直观的掌握相关理论,也可帮助学生掌握一些大、中型软件设计的技术和技巧,提高学生面向对象软件开发的综合能力。

采用Java语言需要改变研究对象和教学模型。研究对象从传统的过程化程序语言转到Java语言,新的内容(如Java语言的作用域规则、动态特性、类、类的继承和多态的实现等)就要反映在教学内容中。实践证明,围绕某个教学模型展开编译设计技术的讲授,非常有利于学生理解和掌握基本原理。但以实际Java语言作为教学模型来说可能复杂了一些,因此课程中选择MiniJava作为教学模型是比较恰当的,其是对Java语言进行适当简化得到的且具有很好的扩展性[2]。课程中各类编译算法都应该随着教学模型的变化,改用Java语言来描述。语法和词法分析的自动生成也不能采用Lex、Yacc这类工具了,而需要改用JavaCC或SableCC等以生成Java语言代码。

面向对象的编译程序构造采用的是语法树构造法,可以得到上下文相关信息,并根据上下文进行语法树的优化,所以生成的代码效率较高。利用Java语言的面向对象特性,语义处理方法中所用到的数据都被封装在相应类中,若需语义修改时,只要继承相应的语法类,并重写相应的语义处理方法即可,所需修改的代码较之传统要少很多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值