编译原理小论文(2)

2020-06-20实用文

4 课程实验的设计

  计算机学科是一门技术学科,它虽然有一定的科学的成分,但工程技术的成分更多一些,因此需要加强动手能力的培养。编译原理课程除了注重它的原理性,还必须注重其实践性。学习这门课程时,学生对编译的理解往往只停留在书本的概念上,而不知道怎样把编译理论应用到实际的编译程序设计的实践中。另外,有些学校只将教学内容锁定在文法、词法分析(有穷状态自动机)、语法分析(LL、LR文法)上,以应付学生考研的需要。这些做法使得学生很难掌握这门课程的精髓。

  编译系统可能是所有软件系统中最复杂的系统之一,通过本课程实践环节的教学,还可以帮助学生掌握一些大、中型软件设计的技术和技巧,提高学生面向对象软件开发的综合能力。

  传统的编译原理课程往往要求学生自己实现一个词法分析程序;实现一个基于递归子程序递归下降分析程序或基于预测分析表的语法分析程序;为某虚拟机(例如PL/0虚拟机)生成代码;对教学模型(例如PL/0)进行扩充,写出完整的编译程序等。且在此过程中学生可以借助词法分析自动生成程序Lex和语法分析自动生成程序Yacc进行有关实验。我们要求学生通过对教学模型的分析,能够在机器上动手实现一个小的编译系统,以加深对编译整个过程的一致性、连贯性、整体性的理解。

  一旦我们的讨论对象改变为对象式语言,则其编译程序语法和词法分析的自动生成不能再采用Lex、Yacc这类工具了,需要改用JavaCC(Java Compiler Compiler)或SableCC等,它们都能生成Java语言代码;或者使用Jikespg(Jikes paser gernerator),它生成C++代码。

  我们初步制定了本课程的实践环节,它主要分四个层次:

  (1)借助JavaCC或SableCC等工具让学生自动生成小语言的词法分析和语法分析程序。这个实验的目的是教会学生关于词法分析和语法分析的自动生成,同时弄清这些工具生成出来的代码的程序结构,特别是面向对象的类结构。

  (2)为上面生成的语法树添加语义动作,完成生成代码的工作。这个实验的目的是让学生理解如何在抽象语法树上添加语义动作,理解为虚拟机生成代码的知识。

  (3)扩展教学模型,如MiniJava,为其增加一些语言成分,如有关语句等,然后为其构造完整的编译程序。这一实验让学生把握编译的总体,弄清各部分之间的关系。

  (4)逐步构造面向对象的编译程序类库,使得“编写”编译程序逐步走向“组装”编译程序。

5 结束语

  对计算机人才的层次结构、知识、能力与素质等方面的要求在很大程度上取决于计算机市场。我们需要与时俱进,适时考虑相应教学体系和内容的改变。依赖过程范性的编译原理课程势必要被依赖对象范性的编译原理课程所取代,这是软件技术发展和社会实际应用的需要。但建立本课程新的课程信念、课程价值、课程技术等尚需时日,需要不断探索和创新。

  编译原理课程的改革不仅需要教师付出大量辛勤劳动,及时跟进技术的发展,还需要好的教材、好的课程实验设计。《对象式程序设计语言编译原理》便是我们按照上述思路来编写的教材。

参考文献

  [1] 中国计算机本科专业发展战略研究报告[J]。中国大学教学,2005,5:7—10。

  [2]Andrew W。Apple。现代编译器的Java实现[M]。北京:电子工业出版社,2004。

  [3]Dick Grune etc。Modern Compiler Design[M]。JOHN WILEY&SONS,LTD,2002。

  [4] 胡学联。开设软件新技术课程的实践探索[J]。黄河科技大学学报,2004 ,2。

  [5] 胡学联等。对象式程序设计语言编译原理[M]。

【编译原理小论文】相关文章:

1.编译原理期末总结复习

2.编译原理知识点总结

3.化工原理实验小论文

4.学生科学小论文之杠杆原理

5.编译原理的学习心得体会

6.《编译原理》教学过程中的思考与探讨论文

7.编译原理实验课程教学设计的改进论文

8.学生数学小论文

上一篇:社区儿童健康教育意义论文下一篇:编译原理期末总结复习