专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

编译原理小论文

  编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。那么编译原理小论文要怎么写呢?不妨来参考一下小编带来的编译原理小论文样本。希望大家喜欢哦!编译原理小论文
  摘要:本文探讨了在计算机软件技术快速发展的情况下,高校计算机类专业编译原理课程的改革问题。提出了编译原理课程教学模型从过程式向对象式的转变、编译程序的面向对象构造(包括编译算法的描述)等问题,以及由此带来的教学内容的调整和课程实验的设计问题。
  关键词:编译程序;教学改革;对象式程序设计;Java
  1引言
  编译原理课程是高校计算机类专业的重要基础和骨干课程。编译原理对计算机专业的学生的重要性与高等数学对理科学生的重要性几乎可以相提并论。同时,由于这门课程涉及其他多门课程的知识,使得它成为大学阶段中最难学的课程之一。
  从表面上看,编译程序是将高级语言源程序翻译成低级语言程序,但编译程序构造的基本原理和技术也广泛应用于一般软件的设计和实现,其中的设计思想、算法、思维方式和技术都可能会对学生今后的职业发展产生比较大的影响。
  当今,程序设计已经基本上从传统的过程式转向对象式,并且正在从对象式转向组件型。这其实是程序设计范型的变迁,是在计算机技术背景下认识世界的观点的变化:过程式将完成事务看成是一系列的步骤,而对象式却将世界看成是由一系列对象组成的,这些对象之间交互合作完成特定的事务。从过程式到对象式,有着质的变化,而非一般的修改和完善,由此带来了语言(算法描述工具)的变化。编程语言影响思维,面向对象的思维方法又促进了编程语言的发展。
  目前,程序设计的一些后继课程,如数据结构等都进行了同步跟进,出现了诸如用C或Java描述的数据结构教材。但编译原理课程却没有及时跟进,上述改变基本上没有反映到编译原理课程中。这门课程近20年来基本上没有大的变化,教学内容仍然是基于过程式语言展开的,编译算法和模型描述是用PASCAL语言或者C语言。虽然个别教材加入了少量关于对象式语言编译技术的内容,那也是稍加点缀而已,作用不大。这就造成了一种奇怪的现象:对象式语言已经成了高校计算机教学的主流语言,社会上大量使用的也是对象式语言,而我们的编译原理教学仍然沿袭旧的一套。这种状态严重地脱离了计算机技术的发展和社会的实际需要,因此需要进行调态,其根本做法是转型,即将本课程的讨论对象从过程式语言转到对象式语言。
  国外近年关于编译原理方面的新教材已经有了重要改变,不再连篇累牍地讨论那些已经过时的内容,增加了许多新的内容。其中一个重大改变是出现了用对象式语言描述编译算法和教学模型的编译原理教材,如:用Java语言描述的编译原理教材,且其教学模型为MiniJava。
  这种改变也涉及到课程上机实践。众所周知,编译原理课程的学术性和实践性都很强:学术性是这门课程的生命所在,实践性是这门课程的活力所在。因而本课程的上机实践也要作同步调整。
  2课程内容围绕对象式语言展开
  研究程序设计语言的。语法描述需要有文法理论的支持,老教材中文法、词法分析和语法分析部分内容基本上不需要作什么变动。词法分析主要依赖有穷状态自动机理论,语法分析主要讲述LL方法和LR方法,其他方法略做介绍即可,无需展开讨论。LL方法和LR方法含盖了许多分析技术,理论性和应用性都很强,完全可以代表主流技术。
  重要的就是研究对象和教学模型的改变。首先,研究对象将从过程式程序设计语言转到对象式程序设计语言(当然还可以兼顾过程式),例如Java、C等,围绕实现这类语言的编译实现技术展开讨论。对象式程序设计语言的要素是封装、继承、多态性,在编译实现时都必须仔细考虑。其次,涉及到对象式程序设计语言编译程序教学的模型选择问题。目前传统的教材选择的教学模型有PL0、TiniC等。实践证明,围绕某个模型展开编译设计技术的讨论,效果是比较好的。课程研究对象和教学模型的改变涉及到调整的章节主要有语法分析、语义分析、代码生成、符号表管理、存贮分配等方面。
  一旦我们讨论的模型发生变化,这些章节的内容就要作很大调整。如对象式语言的作用域规则、语言动态特性、模块化封装(类)、类的继承、多态性的实现等,都需要具体的技术来实现,这些都要反映在教材和教学中。
  就课程中关于代码生成内容来看,目前Java编译程序生成Java虚拟机(JVM)代码,C生成MSIL虚拟机代码。这两个虚拟机作为教学模型来说可能比较复杂了一些,在教学中可以选定一个简单的子集;或者在PL0虚拟机上适当增加一些指令代码,以便于代码生成、存贮分配等部分的讲解。
  实践证明,作为教学模型,在教材上提供一个小型语言的编译程序供学生分析和研究,非常有利于加深对基本原理的理解和掌握。这个小型编译程序可以比较小但应该能够说明一些基本问题,例如传统的编译原理课程中选择PL0编译程序作为教学模型,就收到了比较好的教学效果。在对象式程序设计语言编译原理课程中选择Objectpl0或者MiniJava作为教学模型是比较恰当的。前者是在传统的PL0语言上增加类,补充封装、继承、多态性之语言成分得到的;后者是对Java语言进行适当简化得到的,其主要语法描述。
  编译原理课程可以围绕此模型展开讨论。国外已经有这类教材出现,并且不少大学已经开始使用。
  3用对象式语言描述编译算法和教学模型
  本课程中各类编译算法都应该伴随着教学模型的变化,改用对象式语言来描述,如用Java语言描述或者用C语言描述。其中一个重大的变化是教学模型如MiniJava或Objectpl0要用对象式语言实现,也就是提出了教学模型的面向对象构造问题,这就比较好地将讨论对象和描述讨论对象的语言统一起来了。国外有的教材就选择了用Java描述MiniJava编译程序。
  编译程序是一个重要的中大型软件,传统的编译程序大都是用PASCAL、C等语言描述的(参见图2)。像编译程序这样的中大型程序如何用类这个工具来进行分解,其实是对学生的对象式程序设计能力的一个重要检验。学习用对象式语言来描述编译程序,学生可能会受到一次严格的对象式语言程序设计训练,编译程序如何用类这个工具进行分解,这些类(对象)如何合作完成编译任务,都需要较好的对象式程序设计基础。图3是一个程序设计语言文法的面向对象表示。
  传统的编译程序构造主要存在如下一些问题:
  (1)传统编译程序试图通过将编译程序根据功能模块分解,而使整个编译程序的复杂性降低。这种方法虽然在一定程度上简化了编译过程。但为了处理大型、复杂且多变的编译程序,仅仅将它按照功能分解成词法分析、语法分析、语义处理和代码生成几个阶段是远远不够的。
  (2)传统的编译程序构造中,编译的每个阶段依然是大型、复杂的,且每个阶段内部依然存在复杂的联系,这对编译程序的可维护性没有实际上的改变,反而造成维护困难。
  (3)虽然传统的编译程序构造有着丰富的理论基础,也有一些工具诸如Lex、Yacc等,但对一个具体的编译程序的构造仍然要从最基本的描述开始。传统的编译程序构造的功能分解方法缺乏支持复用的良好机制。
  总之,过程式程序设计范式存在的问题在编译程序设计中广泛存在。而用对象式程序设计语言来描述编译程序,则对象式程序设计范式带来的好处基本上都能够得到。具体主要表现在:
  (1)编译程序效率高。由于面向对象的编译程序构造采用的是语法树构造法,可以得到上下文相关信息,并根据上下文进行语法树的优化,所以生成的代码效率高。
  (2)复用方便。由于语法类和具体的语法结构一一对应,所以在复用语法结构时,可以直接得到能被复用的语法类,不需要经过查找过程。
  (3)修改方便。由于面向对象方法中的封装和多态等技术的实现,语义处理方法中所用到的数据都是局部数据,因此要做语义修改时,只要继承相应的语法类,并且重载相应的语义处理方法即可,需修改的内容较之传统方法要少。
  (4)有利于构造编译程序类库,使得编译程序的构造能够大量复用已有的类,这是更高层次上的复用。
  4课程实验的设计
  计算机学科是一门技术学科,它虽然有一定的科学的成分,但工程技术的成分更多一些,因此需要加强动手能力的培养。编译原理课程除了注重它的原理性,还必须注重其实践性。学习这门课程时,学生对编译的理解往往只停留在书本的概念上,而不知道怎样把编译理论应用到实际的编译程序设计的实践中。另外,有些学校只将教学内容锁定在文法、词法分析(有穷状态自动机)、语法分析(LL、LR文法)上,以应付学生考研的需要。这些做法使得学生很难掌握这门课程的精髓。
  编译系统可能是所有软件系统中最复杂的系统之一,通过本课程实践环节的教学,还可以帮助学生掌握一些大、中型软件设计的技术和技巧,提高学生面向对象软件开发的综合能力。
  传统的编译原理课程往往要求学生自己实现一个词法分析程序;实现一个基于递归子程序递归下降分析程序或基于预测分析表的语法分析程序;为某虚拟机(例如PL0虚拟机)生成代码;对教学模型(例如PL0)进行扩充,写出完整的编译程序等。且在此过程中学生可以借助词法分析自动生成程序Lex和语法分析自动生成程序Yacc进行有关实验。我们要求学生通过对教学模型的分析,能够在机器上动手实现一个小的编译系统,以加深对编译整个过程的一致性、连贯性、整体性的理解。
  一旦我们的讨论对象改变为对象式语言,则其编译程序语法和词法分析的自动生成不能再采用Lex、Yacc这类工具了,需要改用JavaCC(JavaCompilerCompiler)或SableCC等,它们都能生成Java语言代码;或者使用Jikespg(Jikespasergernerator),它生成C代码。
  我们初步制定了本课程的实践环节,它主要分四个层次:
  (1)借助JavaCC或SableCC等工具让学生自动生成小语言的词法分析和语法分析程序。这个实验的目的是教会学生关于词法分析和语法分析的自动生成,同时弄清这些工具生成出来的代码的程序结构,特别是面向对象的类结构。
  (2)为上面生成的语法树添加语义动作,完成生成代码的工作。这个实验的目的是让学生理解如何在抽象语法树上添加语义动作,理解为虚拟机生成代码的知识。
  (3)扩展教学模型,如MiniJava,为其增加一些语言成分,如有关语句等,然后为其构造完整的编译程序。这一实验让学生把握编译的总体,弄清各部分之间的关系。
  (4)逐步构造面向对象的编译程序类库,使得编写编译程序逐步走向组装编译程序。
  5结束语
  对计算机人才的层次结构、知识、能力与素质等方面的要求在很大程度上取决于计算机市场。我们需要与时俱进,适时考虑相应教学体系和内容的改变。依赖过程范性的编译原理课程势必要被依赖对象范性的编译原理课程所取代,这是软件技术发展和社会实际应用的需要。但建立本课程新的课程信念、课程价值、课程技术等尚需时日,需要不断探索和创新。
  编译原理课程的改革不仅需要教师付出大量辛勤劳动,及时跟进技术的发展,还需要好的教材、好的课程实验设计。《对象式程序设计语言编译原理》便是我们按照上述思路来编写的教材。
  参考文献
  〔1〕中国计算机本科专业发展战略研究报告〔J〕。中国大学教学,2005,5:710。
  〔2〕AndrewW。Apple。现代编译器的Java实现〔M〕。北京:电子工业出版社,2004。
  〔3〕DickGruneetc。ModernCompilerDesign〔M〕。JOHNWILEYamp;SONS,LTD,2002。
  〔4〕胡学联。开设软件新技术课程的实践探索〔J〕。黄河科技大学学报,2004,2。
  〔5〕胡学联等。对象式程序设计语言编译原理〔M〕。

让古人类遗骸告诉我们,人类是如何扩散到全球的近年来,考古学家已经变得不太情愿从一堆陶器武器和其他陪葬品中解读过多的东西。至少有一代的考古学家,曾钻入被诅咒的牛角尖,这个诅咒就是瓶瓶罐罐不是人。物质文明不能作为历史定性的代用品火星生存实验实录我们并不是在测试自己身体的耐力。置身于外行星的典型压力源持续的人身危险以及一旦从包里拿出来就会到处乱跑的晚餐并不适用于我们这儿的情况重力正常,气压基本稳定,万一发生危险,救援直升机基于无线电管理视角的频谱重耕维度分析无线频谱是移动通信产业无可替代的重要资源。4G商用以来频谱资源更趋紧张,因此数字红利的释放低频段优质资源的再规划高频段的利用等皆成为业界关注重点,频谱重耕也势在必行。本次专题在解读汽车零部件闭环物流网络设计模型研究摘要将汽车再制造逆向物流网络与现有的正向物流网络相结合,提出运用混合整数线性规划法(MILP)建立汽车零部件闭环物流网络设施选址的数学模型,对模型的目标函数能力约束和流量平衡等条件杭州市O2O智慧配送平台构建与运营研究摘要1。0时代的O2O主攻信息流,2。0时代的O2O强调线上线下的深度融合,掀起了O2O物流热潮,树立起了竞争壁垒。文章提出构建杭州市O2O智慧配送平台的思路,旨在实现集约化信息化动态规划法在服装运输车辆路径优化中的应用研究摘要连锁服装配送中路径的优化对提高连锁服装企业的服务水平降低成本提高企业效益具有重要意义。根据动态规划的基本思想,结合连锁服装物流配送过程中的路径选择问题以及时变因素,引入突发事件BCG结合KSF分析法在交通运输业务选择中的应用研究摘要在交通运输企业中,用于业务选择的方法有很多,为了提高业务选择的科学性,文章采用BCG矩阵法结合KSF分析工具用于企业业务选择,通过案例分析可得出这种方法具有实用性。关键词交通运基于SWOT分析的珠海港集装箱运输发展战略探讨摘要在对珠海市及西江沿岸城市珠海港集装箱运输相关企事业单位调研的基础上,运用SWOT模型分析珠海港集装箱运输发展的优势劣势机遇和挑战,提出珠海港集装箱运输发展的战略定位,旨在促进珠探索广播电视大学物流管理专业实训实验室建设摘要随着物流业向专业化和标准化发展,传统纯理论教育已经很难适应社会对物流人才的需求。物流具有较强的实操性特征,利用软件模拟物流企业运行的环境和现代物流技术实践流程,通过实训提升学员社会艺术论文古典文学常见论文一词,谓交谈辞章或交流思想。当代,论文常用来指进行各个学术领域的研究和描述学术研究成果的文章,简称之为论文。下面是社会艺术论文。请参考!社会艺术论文一艺术院校德育工书法艺术的形式美探析本科论文书法艺术的繁荣期,是从东汉开始的。东汉时期出现了专门的书法理论著作,最早的书法理论提出者是东西汉之交的杨雄。第一部书法理论专著是东汉时期崔瑗的草书势。下面是小编整理的书法艺术的形式
语文课堂中的美学教育教育论文摘要本文论述了语文课堂教学中如何发挥语文教学的审美功能,培养学生的审美感受能力审美想象及联想能力,从而使他们在学习过程中达到知情意的统一,受到美的教育。文章从理趣美情感美人格美语言解决科技型中小企业的融资难题论文摘要科技型中小企业每个发展阶段的风险收益资金需求各不相同,融资方式也不应是单一的方式,而应是有效的组合。解决科技型中小企业的融资难题,近期应考虑在以下几个方面寻求突破明确政府在科技科技论文公式编辑规范范本1。公式的主体应排在同一水平线上,对于一些作为整体出现的符号缩写词等不可分离,如lim,max,sup。2。当公式过长需要转行时,需要遵循下面几点(1)优先在或,等符号处转行,关系关于初中学生科技创新能力的培养论文1999年,我国国务院召开了第三届有关教育工作的工作会议,并且在此会议上重新确立了素质教育的重要性。重视素质教育,培养科技创新型人才,现已成为我国教育工作的首要任务。针对初中教育阶科技小论文集锦篇一科技小论文在烧纸船的实验中纸船里的水会怎样?纸船又会怎样?记得有一个星期的星期四下午第三节课,我们在上科学课,在科学课上,我们做了小实验,实验的方法就是在三角架上放了一张白纸做分析高等院校横向科技合同签订的问题与对策论文我国合同法第322条规定技术合同是当事人就技术开发转让咨询或者服务订立的确立相互之间权利和义务的合同。横向科技合同是指企业事业单位或个人委托高等院校承担研发任务,并与之签订的技术开互联网技术助推农业科技的项目管理论文内容摘要本文通过分析当前天津市农业科技成果转化与推广项目管理中存在的问题,提出了解决当前存在问题的手段,介绍了利用天津市农业科技成果转化与推广项目网络信息系统优势。关键词农业科技项区域经济发展与科技人才资源研究论文区域经济作为我国国民经济的重要组成部分,协调区域经济与社会和谐发展是国家制定宏观发展的战略目标。科学技术的发展成为经济发展的主要动力,科技人才成为科技教育和技术发展的重要力量,也是科技创新与产业结构升级实证研究论文一前言改革开放以后,由于我国经济呈现出一种高速发展的趋势,使得我国在2014年获得世界第二经济体的位置。从世界上各个国家的发展进程来看,科技创新在一国的经济发展过程中起着举足轻重的基于市场需求的煤炭类工程科技人才培养的思考论文随着我国煤炭行业的十年黄金期的结束,行业停止了快速扩张。自2011年下半年开始,受国际国内经济环境和煤炭市场环境的影响,煤炭行业进入下行期,继而导致煤炭企业生存困难,多数企业日益亏科技馆展品发展科学技术论文一科技馆展品的实用价值但是对于已经产生科学兴趣,却由于个人条件无法开展有效的科学实验和科学学习的公众呢?图书馆似乎是他们的理想求知场所,但并不专业,也仅限于纸上谈兵。许多名牌的大学
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网