范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

编译原理小论文

  编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。那么编译原理小论文要怎么写呢?不妨来参考一下小编带来的编译原理小论文样本。希望大家喜欢哦!  编译原理小论文
  摘要:本文探讨了在计算机软件技术快速发展的情况下,高校计算机类专业编译原理课程的改革问题。提出了编译原理课程教学模型从过程式向对象式的转变、编译程序的面向对象构造(包括编译算法的描述)等问题,以及由此带来的教学内容的调整和课程实验的设计问题。
  关键词:编译程序;教学改革;对象式程序设计;Java
  1 引言
  编译原理课程是高校计算机类专业的重要基础和骨干课程。编译原理对计算机专业的学生的重要性与高等数学对理科学生的重要性几乎可以相提并论。同时,由于这门课程涉及其他多门课程的知识,使得它成为大学阶段中最难学的课程之一。
  从表面上看,编译程序是将高级语言源程序翻译成低级语言程序,但编译程序构造的基本原理和技术也广泛应用于一般软件的设计和实现,其中的设计思想、算法、思维方式和技术都可能会对学生今后的职业发展产生比较大的影响。
  当今,程序设计已经基本上从传统的过程式转向对象式,并且正在从对象式转向组件型。这其实是程序设计范型的变迁,是在计算机技术背景下认识世界的观点的变化:过程式将完成事务看成是一系列的步骤,而对象式却将世界看成是由一系列对象组成的,这些对象之间交互合作完成特定的事务。从过程式到对象式,有着质的变化,而非一般的修改和完善,由此带来了语言(算法描述工具)的变化。编程语言影响思维,面向对象的思维方法又促进了编程语言的发展。
  目前,程序设计的一些后继课程,如数据结构等都进行了同步跟进,出现了诸如用C++或Java描述的数据结构教材。但编译原理课程却没有及时跟进,上述改变基本上没有反映到编译原理课程中。这门课程近20年来基本上没有大的变化,教学内容仍然是基于过程式语言展开的,编译算法和模型描述是用PASCAL语言或者C语言。虽然个别教材加入了少量关于对象式语言编译技术的内容,那也是稍加点缀而已,作用不大。这就造成了一种奇怪的现象:对象式语言已经成了高校计算机教学的主流语言,社会上大量使用的也是对象式语言,而我们的编译原理教学仍然沿袭旧的一套。这种"状态"严重地脱离了计算机技术的发展和社会的实际需要,因此需要进行"调态",其根本做法是"转型",即将本课程的讨论对象从过程式语言转到对象式语言。
  国外近年关于编译原理方面的新教材已经有了重要改变,不再连篇累牍地讨论那些已经过时的内容,增加了许多新的内容。其中一个重大改变是出现了用对象式语言描述编译算法和教学模型的编译原理教材,如:用Java语言描述的编译原理教材,且其教学模型为MiniJava。
  这种改变也涉及到课程上机实践。众所周知,编译原理课程的学术性和实践性都很强:学术性是这门课程的生命所在,实践性是这门课程的活力所在。因而本课程的上机实践也要作同步调整。
  2 课程内容围绕对象式语言展开
  研究程序设计语言的.语法描述需要有文法理论的支持,老教材中文法、词法分析和语法分析部分内容基本上不需要作什么变动。词法分析主要依赖有穷状态自动机理论,语法分析主要讲述LL方法和LR方法,其他方法略做介绍即可,无需展开讨论。LL方法和LR方法含盖了许多分析技术,理论性和应用性都很强,完全可以代表主流技术。
  重要的就是研究对象和教学模型的改变。首先,研究对象将从过程式程序设计语言转到对象式程序设计语言(当然还可以兼顾过程式),例如Java、C++等,围绕实现这类语言的编译实现技术展开讨论。对象式程序设计语言的要素是封装、继承、多态性,在编译实现时都必须仔细考虑。其次,涉及到对象式程序设计语言编译程序教学的模型选择问题。目前传统的教材选择的教学模型有PL/0、Tini C等。实践证明,围绕某个模型展开编译设计技术的讨论,效果是比较好的。课程研究对象和教学模型的改变涉及到调整的章节主要有语法分析、语义分析、代码生成、符号表管理、存贮分配等方面。
  一旦我们讨论的模型发生变化,这些章节的内容就要作很大调整。如对象式语言的作用域规则、语言动态特性、模块化封装(类)、类的继承、多态性的实现等,都需要具体的技术来实现,这些都要反映在教材和教学中。
  就课程中关于代码生成内容来看,目前Java编译程序生成Java虚拟机(JVM)代码,C#生成MSIL虚拟机代码。这两个虚拟机作为教学模型来说可能比较复杂了一些,在教学中可以选定一个简单的子集;或者在PL/0虚拟机上适当增加一些指令代码,以便于代码生成、存贮分配等部分的讲解。
  实践证明,作为教学模型,在教材上提供一个小型语言的编译程序供学生分析和研究,非常有利于加深对基本原理的理解和掌握。这个小型编译程序可以比较小但应该能够说明一些基本问题,例如传统的编译原理课程中选择PL/0编译程序作为教学模型,就收到了比较好的教学效果。在对象式程序设计语言编译原理课程中选择Object—pl/0或者MiniJava作为教学模型是比较恰当的。前者是在传统的PL/0语言上增加类,补充封装、继承、多态性之语言成分得到的;后者是对Java语言进行适当简化得到的,其主要语法描述 。
  编译原理课程可以围绕此模型展开讨论。国外已经有这类教材出现,并且不少大学已经开始使用。
  3 用对象式语言描述编译算法和教学模型
  本课程中各类编译算法都应该伴随着教学模型的变化,改用对象式语言来描述,如用Java语言描述或者用C++语言描述。其中一个重大的变化是教学模型如MiniJava或Object—pl/0要用对象式语言实现,也就是提出了教学模型的面向对象构造问题,这就比较好地将讨论对象和描述讨论对象的语言统一起来了。国外有的教材就选择了用Java描述MiniJava编译程序。
  编译程序是一个重要的中大型软件,传统的编译程序大都是用PASCAL、C等语言描述的(参见图2)。像编译程序这样的中大型程序如何用类这个工具来进行分解,其实是对学生的对象式程序设计能力的一个重要检验。学习用对象式语言来描述编译程序,学生可能会受到一次严格的对象式语言程序设计训练,编译程序如何用类这个工具进行分解,这些类(对象)如何合作完成编译任务,都需要较好的对象式程序设计基础。图3是一个程序设计语言文法的面向对象表示。
  传统的编译程序构造主要存在如下一些问题:
  (1)传统编译程序试图通过将编译程序根据功能模块分解,而使整个编译程序的复杂性降低。这种方法虽然在一定程度上简化了编译过程。但为了处理大型、复杂且多变的编译程序,仅仅将它按照功能分解成词法分析、语法分析、语义处理和代码生成几个阶段是远远不够的。
  (2)传统的编译程序构造中,编译的每个阶段依然是大型、复杂的,且每个阶段内部依然存在复杂的联系,这对编译程序的可维护性没有实际上的改变,反而造成维护困难。
  (3)虽然传统的编译程序构造有着丰富的理论基础,也有一些工具诸如Lex、Yacc等,但对一个具体的编译程序的构造仍然要从最基本的描述开始。传统的编译程序构造的功能分解方法缺乏支持复用的良好机制。
  总之,过程式程序设计范式存在的问题在编译程序设计中广泛存在。而用对象式程序设计语言来描述编译程序,则对象式程序设计范式带来的好处基本上都能够得到。具体主要表现在:
  (1)编译程序效率高。由于面向对象的编译程序构造采用的是语法树构造法,可以得到上下文相关信息,并根据上下文进行语法树的优化,所以生成的代码效率高。
  (2)复用方便。由于语法类和具体的语法结构一一对应,所以在复用语法结构时,可以直接得到能被复用的语法类,不需要经过查找过程。
  (3)修改方便。由于面向对象方法中的封装和多态等技术的实现,语义处理方法中所用到的数据都是局部数据,因此要做语义修改时,只要继承相应的语法类,并且重载相应的语义处理方法即可,需修改的内容较之传统方法要少。
  (4)有利于构造编译程序类库,使得编译程序的构造能够大量复用已有的类,这是更高层次上的复用。
  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]。

简析急性心肌梗死合并心源性休克的研究进展心源性休克是一种发病率较高的急性心肌梗死临床并发症,也是导致急性心肌梗死患者死亡的基本原因。90年代的临床医学研究结果证实,急性心肌梗死合并心源性休克患者的临床死亡率高达60,且其护理本科生科研能力与评判性思维态度倾向性的相关性探究自1987年国家教委提出护理本科毕业生应具备护理科研的初步能力,科研能力作为衡量高级专业人才的一个重要指标已经越来越受重视。各大学高校也逐步将护理科研课程列入教学计划。我国的护理科关于离体子宫张力测定在药物生殖毒性研究中的应用前言离体子宫平滑肌是生物活性组织,通过人工模拟的生理环境测定药物对子宫平滑肌舒张和收缩变化的影响,同时采用计算机生物信号采集处理系统,使子宫平滑肌收缩的复杂信号量化,绘制出给药前后关于抗感冒药物的临床应用和不良反应抗感冒类药物因其应用较为广泛常被不易引起广大临床工作者的重视,且由于绝大多数患者缺乏相应的用药常识,易出现用药错误等情况,例如当患者表现为发烧咳嗽流涕咽痛等症状时,将多种抗感冒药物关于组蛋白高乙酰化介导的Egr1结合促进gdnf基因高转录胶质细胞系源性神经营养因子(GNDF)是一种新型的神经营养因子,属于转化生长因子(TGF)超家族成员,在胚胎发育过程中的表达量迅速上调,至成年期维持在较低水平。由于GDNF对多巴胺阴道中分泌物对于尿常规的临床检查的影响分析尿常规检测是患者进行检验疾病中最为常见的一种检测方式,也是较为重要的一种检测方式。随着医学的进步发展,对于实验室检测也有了更高的要求。因为针对患者检测标本的质量将严重影响患者疾病的气管切开治疗咽喉疾患术后的护理思考我科于2008年8月至2012年8月通过对收治的喉癌切除术喉梗阻等需留置气管套管等86例患者进行精心护理,取得了良好的效果,现将护理体会总结如下。1资料与方法对在院的86例患者进行风邪恋肺在支气管哮喘慢性持续期中的认识和临床运用摘要本文探讨了支气管哮喘慢性持续期中医病因病机中风邪致病的特点,认为风邪恋肺是支气管哮喘慢性持续期的重要病因病机,根据该病因病机理论自拟了宣肺平喘汤,介绍了该方组成主治特点及临床运颅外因素对重型颅脑损伤患者预后的影响研究重型颅脑损伤是严重的创伤性疾病,此类患者有高致残率和高病死率。重型颅脑损伤的及时有效救治是改善患者预后的关键,在救治过程中除了处理颅内相关因素外,颅外因素也不容忽视,如低氧血症低血食管中段癌手术切口及术式选择的临床体会近年来,食道癌已经成为危害社会和人类健康的一大疾病之一,它给人类带来了极大的痛苦和困扰。食管癌多发生于中下段食管,由于食管中段解剖结构特殊复杂,而使手术切除难度加大,如何正确选择合颅脑损伤在临床上的观察及护理1临床资料我科自2011年1月2014年6月共收治颅脑损伤病人32例,其中头皮损伤12例硬膜外血肿8例硬膜下血肿7例脑内血肿5例。其中男22人,年龄1869岁女10人,年龄2265
浅谈传统文化在医院管理中的运用(实践)浅谈传统文化在医院管理中的运用(实践)1医院管理中的以人为本随着社会与经济的不断发展,医院职工的文化素质普遍得到提高,社会主义精神文明的道德意识不断增强,那种重物轻人的早期管理模式试论五四对传统文化的批判试论ldquo五四rdquo对传统文化的批判摘要对ldquo五四rdquo的性质的理解近年来逐渐形成三种解释,即自由主义的保守主义的和社会主义的解释。从制度经济学的角度来看,ldq中国四大传统文化说中国四大传统文化说中国传统文化有几个影响特别大的流派?学术界几乎是都维护这样一个定论的儒释道三大家。那么中国究竟是四大传统文化还是三大传统文化?还有没有和儒释道三大传统文化并列的文县级供电局企业文化战略分析前言企业文化,是企业发展中逐步形成的文化观念历史传统共同价值观念道德规范行为准则等企业的意识形态,是企业为强化生产经营管理而形成的观念的总和。作为世界500强企业,南方电网经过多年对中国文化战略路径的思考提升国家的文化软实力,是关系到国家文化持续发展的战略性命题。在开展国家文化软实力理论研究的同时,我们在现实层面上也面临着如何制定文化软实力的提升策略问题中华民族正在经历一场伟大的历担当起教育在传承繁荣和发展中国文化中的战略使命文化是根,是魂,是凝聚力,是竞争力,是持续力。当今时代,世界多极化经济全球化深入发展,各种思想文化交流交融交锋日益频繁,文化实力越来越成为民族凝聚力和创造力的重要源泉,越来越成为综以企业文化建设为载体推动企业思想政治工作的创新思想政治工作是一切工作的生命线,企业思想政治工作是党的思想政治工作与企业具体实际相结合的产物,是企业管理的重要组成部分。企业文化作为一种新型的管理文化,是管理思想的发展和创新,是企浅谈企业文化建设的途径企业文化是一个企业或一个组织在发展过程中形成的以价值为核心的独特的文化管理模式,是一种凝聚人心以实现自我价值提升企业竞争力的无形力量和资本。企业文化作为一种管理手段对企业有着重要作工会在企业文化建设中的地位和作用在学习贯彻落实党的十八大精神构建社会主义和谐社会的新形势下,坚持以科学发展观为指导,发挥工会组织的优势,加强企业文化建设,对于培育文明风尚,提升员工素质,增强市场竞争力,坚持内涵发从文化研究到都市文化研究从文化研究到都市文化研究一都市文化研究的基本理念席卷全球的城市化进程正对当今世界产生至为重要深刻与全面的影响。从学理上讲,社会学一直将城市化定义为一种城市居民增长的人口现象。另一方法国珠宝品牌梵克雅宝的设计文化研究法国珠宝品牌梵克雅宝的设计文化研究法国作为世界艺术之殿堂,蕴含着丰富的艺术积淀和文化内涵。梵克雅宝(VanCleefampArpels)作为法国顶级珠宝品牌之翘楚,其设计理念多元而