《计算机专业是否需要开设编译原理课程》由会员分享,可在线阅读,更多相关《计算机专业是否需要开设编译原理课程(7页珍藏版)》请在金锄头文库上搜索。
1、计算机专业是否需要开设编译原理课程 随着信息技术的迅猛进展及其应用领域的不断深化,几乎全部专业的讨论与应用都离不开信息技术。信息化浪潮对高等训练也带来特别直接的变化,各专业课程设置无不将计算机学问训练作为其课程设置的组成部分。几乎全部专业的高校毕业生,都要求把握基本的计算机操作技能,非计算机专业同学需要通过计算机等级考试,而一些和信息技术亲密相关的专业,如电子信息、信息管理、电子商务等,课程设置上与计算机专业更是大量重叠,计算机学问训练在各专业中的渗透程度日渐加剧。 1 计算机专业面临的新挑战 在计算机学问正在成为各专业基本训练内容的背景下,计算机专业同学的专业优势受到很大的挑战,以往在软硬件
2、学问和应用力量上的独特优势好像在渐渐弱化,与具有特定专业背景的同学相比就业压力越来越大,由此也引发计算机专业究竟学什么、专什么的现实思索,我们必需面临的问题是:计算机专业的同学专业优势体现在哪里? 计算机学科是一门技术性、工程性和应用性很强的学科,并有其基础理论支撑的科学体系。计算机也是一种使用工具,但那种把工具使用等同于计算机专业的狭隘熟悉,其思维实际上和十多年前认为“会用计算机打字就是会用计算机”如出一辙。计算机专业同学的优势应当在于:通过系统的专业原理性学问的学习与训练,娴熟把握基本的应用技能,并能够“知其然,且知其所以然”,为此专业基础课程的熏陶必不行少。而编译原理就是一门介绍这种原理
3、性学问的综合性专业基础课程。 2 编译原理是计算机专业必不行少的基础学问 计算机专业的理论基础对培育同学的计算机专业素养具有特别重要的作用。 在众多的原理性学习课程中,编译原理主要担当了语言实现原理、方法和技术的介绍。人们借助计算机减轻自己的劳动强度,提高生产率,完成一些人类无法进行的危急、高难度工作。然而全部这些工作都必需借助程序设计语言书写的程序来指挥计算机。非机器语言程序功能的实现必需由翻译程序来完成。正是有了编译程序、解释程序、汇编程序等翻译程序,人们才可以使用自己习惯的语言将需要计算机做的事情描述成程序,并通过这些翻译程序的工作让计算机理解并执行。可以说,没有翻译程序,计算机 不行能
4、象今日这样得到如此广泛的普及,网络也不会有今日这样大的吸引力,我们的生活、学习和工作将会是另一个样子。 包括编译程序在内的翻译程序担当了实现语言的功能,它所涉及的学问包括形式语言、自动机理论等语言定义、翻译与实现的基础学问,这些学问可以让同学领悟到计算机理论的精髓,可以让同学从实现的角度重新端详软件的开发,有助于同学对软件的真正熟悉,对于今后从事应用软件、语言开发平台、编译系统甚至操作系统开发等都是特别有好处的。同时,编译原理是很多课程的一个综合性的实践,它进一步加深了同学对程序设计语言课程中语言基本单位的定义和作用的理解。例如,编译程序使用的一些数据结构和算法是“离散数学”、“数据结构”以及
5、“算法设计与分析”等课程相关学问的典型应用;编译程序对目标代码的存储组织与安排功能的实现原理又与“操作系统”的相关内容相互渗透;编译程序对中间代码的优化功能的实现则是数学、规律学、结构程序设计和优化理论的综合应用和特地化。因此,编译的原理性讨论、学习和实践,可以多角度提高同学的规律思维力量、实践动手力量、编程调试及综合应用力量,有助于切实有效地提高同学的专业素养。另外,编译课程中介绍的学问也是后续很多课程的基础。所以,编译原理是计算机专业同学必需把握的基本原理,编译原理课程是计算机专业特别重要的专业课程。 尽管经过计算机专业人员的大量努力,大量的工具软件为我们供应了极大的便利,以至于人们只需要
6、通过若干次点击鼠标左键就可以便利地完成许多工作,但这并不是说全部问题都已经解决,还有许多深层次的工作需要计算机专业人员去完成。假如我们的计算机专业毕业生也只会“点击左键”,很难想象他们会开发出更好的工具,或对计算机技术的进展作出应有的贡献。 专业理论基础的学习,可以培育同学的思维方式和洞察力。计算机技术的更新是特别快的,系统的理论基础可以让同学在将来更好地适应新技术,可以让他们在理论框架的指导下查找解决问题的方法,朝不同的方向进展!因此,“编译原理”课程应当是计算机专业必需的重要基础课。 3 编译技术的应用及需求 编译原理课程的重要性,不仅仅是由于它所介绍的学问是计算机专业理论学问的重要组成,
7、也在于编译程序所使用的一些原理、方法和技术在非编译系统的实际应用中也发挥了很大作用。 例如我们常用的文本编辑工具的实现,涉及到的字词、语法正确性等内容就是编译里介绍的词法分析、语法分析技术的详细应用;又如现在大家上网必不行少的搜寻引擎,在处理用户输入的查询要求、对文档资源的特征分析、提取与描述等工作中都用到编译的相关学问:一些特定的应用也可以用到编译中的方法来解决问题,比如用正规表达式描述网络上某种信息的特征等。 随着消费类电子产品的大量开发,嵌入式系统的应用需求也不断增加。在这种状况下,搭建适合的交叉编译环境的工作日益重要,急需把握编译器构造相关原理、方法和技术的从业人员。这不仅说明白编译学
8、问的生命力,同时也给高等学校计算机专业的编译课程设置带来了新的要求。 现实告知我们,目前的问题不是计算机专业要不要开设编译原理课程,而是该如何改进编译原理的内容与教学方式,以更好地适应社会的需求。 4 国内外编译相关课程的设置状况 我们查阅了国外一些闻名的高校计算机专业的课程设置状况,讨论了其中与编译相关的课程支配,发觉他们对与编译相关学问的介绍是特别重视的。 美国麻省理工学院的计算机专业课程设置中,与编译相关的课程就有Structure and Interpretation of ComputerPrograms,Computer Language Engineering(包括基本概念、编译
9、器的功能和结构、基本程序优化技术、理论和实践的交互作用以及使用工具编制软件),Mulfithreaded Parallelism:Languages and Compilers加州高校伯克利分校工学院的计算机课程设置中,涉及编译的课程有Implarnentation ofProgramming Languages,Programming Languages and Compilers, Structure and Interpretation of Computer Programs等:英国剑桥高校的计算机科学课程与编译相关的有Compilerconstruction和Advanced com
10、piler design等。 可以看到,这些学校的计算机专业课程有的设置了特地的编译课程,有的虽然没有设置特地的课程,但在不同的课程中都支配了特地的内容和相关的学问,不管课程设置的方式如何,编译在其中都占有很重要的重量。这足以说明国外在培育计算机专业的人材时,是特别看中其对编译相关学问的把握的。 在国内,多年来编译原理始终是各校特殊是训练部所属高校计算机专业的必修课,曾经也是计算机专业硕士入学考试的必考科目,现在某些学校的计算机专业硕士生入学面试和博士入学考试还必考编译原理。编译原理课程在我国计算机专业人材培育中起了很重要的作用,新形势下开发具有自主学问产权的计算机系统软、硬件,更需要编译原理
11、课程连续发挥作用。 5 关于我国计算机专业编译原理课程设置的建议 一般认为,编译原理课程是计算机专业最难的课程之一,它是数据结构、语言、算法和软件设计等学问的综合体现,同学对这门课程的理解的确会有肯定难度,但这正是老师工作需要解决的问题。实践证明,假如让同学熟悉到了课程内容的重要性,并辅之以合适的教学方法和教学手段,取得良好的教学效果是不难的。 为此,我们思索了新形势下编译原理课程所涉及内容的教学及课程设置的改革问题,假如必需转变现有的课程设置模式,我们建议在编译原理课程的设置上,可以考虑实行以下两种模式: (1)课程分解式将编译原理课程依据内容分成两门课:一门为必修,可命名为“编译技术”,主
12、要介绍一些为满意基本应用而需要同学把握的基础学问、方法、技术,以达到语言实现理论基础介绍的目的;另一门为选修,可命名为“编译理论”,主要介绍偏重原理性的、更深层次的内容,便利有进一步深造需要的同学学习。 (2)内容分解式 可以不单独设置一门编译课程,可将课程的内容依据其深浅,涉及到的详细问题,及与其他课程内容的相关性等分解到不同的课程中去,使同学在不同课程的学习中逐步把握相关学问。 比较两种模式,后者在目前阶段来说还存在肯定的难度:一是编译课程内容的分解不是孤立的,需要与其他课程的内容进行重新整台,因而涉及面太大,短时期内难以做到科学分解与组织;二是增加了其他课程授课老师的工作量与难度,由于他们需要重新考虑、设计新增加的编译部分内容的教学方法、教学形式等问题,有可能需要在教学实践中磨合一段时间才能取得好的教学效果。 因此,在现有形势下,比较可行的还是第一种模式。当然,在经过学科学问点合理的分解与组织之后,可以逐步过渡到其次种模式。 7