线上期刊服务咨询,发表咨询:400-808-1701 订阅咨询:400-808-1721

编程技术论文8篇

时间:2023-03-29 09:19:35

编程技术论文

编程技术论文篇1

对于当前企业的工程造价中,应该全面系统的收集整理归纳造价数据信息,针对人工费、材料费、施工机具使用费、企业管理费、利润、规费、税金进行造价管理,并对其作出相关研究。如在邮电系统建筑安装工程,编制新建邮电通信综合楼估算及预算,还有编制邮电基站机房、营业厅、办公楼的装修估算及预算中,工程项目不仅具有特征多式多样的特点,同时其工程功能也各有不同,故此在工程建筑中使用的标准也有所不同,一定要采取具有可靠性与的代表性的信息数据,提升数据信息的精确度才行,不仅可以提高企业的竞争力,还可以促进工程造价行业的快速发展。对于工程造价管理中,应该合理设定自己的技术经济指标数据库,并将其作为衡量自身执业水平的标准,可以极大的提高企业造价咨询执业的行业水平。

2工程造价编制内容及技术经济指标

2.1确定技术经济指标

在工程造价预算之前,应该合理确定工程管理的技术经济指标,不仅是投资估算以及初步设计概算的重要依据,同时造价编制估算中的设备投资率法、估算指标法都离不开技术经济指标,对于审查施工图预算以及结算、决算都具有很重要的作用。如针对该工程中,针对新建办公楼装修指标,其经济指标单位造价为520元/m2左右,报审的预算为620元/m2,这样显然表明其造价中存在问题,应该及时改进纠正造价方案,才可以确保实际工程质量安全。建筑装饰装修工程中,由于其工艺复杂、材料品种繁多、施工方法灵活,因此在确定项目定额费用中,应该明确主材具有可操作性,尽可能完善工艺造型描述,就室内装饰中的地毯材料来说,其最便宜国产地毯不到30元/m2,然而高档国产地毯价可超过300元/m2以上,由此可见,在工程定额费用确定中,一定要明确材料的产地、厂家、规格、型号,以避免投标过程中产生偏差。

2.2定额费用确定

在项目定额费用确定中,对于项目特征的描述应该达到投标人需求标准,提高描述的可使用性,完善工程量清单,提高报价的公平性、定额的约束性、造价的合理性。对于计算新规格砌块的人工定额含量的方法,如下所示:首先,在计价表中查得3-29标准砖一砖外墙,其砌块含量为536块,其人工含量为1.38工日;在补充定额中查得锡3-1八五砖,其砌块含量为755块,其人工含量为1.61工日。而新砌块的规格正好界于这两种规格之间,适合进行人工含量的换算测定。其次,可以根据上述数据,计算出二者的砌块含量差为219块,人工含量差为0.23工日。根据:0.23÷219=0.001(块)675-536=139(块)再根据砌块含量差得出工日:139×0.001=0.139(日)从而可以计算出采用新规格砌块的人工定额含量:1.38+0.139=1.519(日)自主报价也必须建立在现行工程定额的基础上,对于其工程定额费用之中,可以采用砌块量差插入法推算人工费含量,首先在定额中找到界于比新砌块规格大和小的两条子目,对这两条子目先计算出它们的砌块量差和人工量差;根据人工量差除砌块量差,从而得出砌块单位人工,再利用单位人工去乘新砌块增加的块数,从而就可以得到所增加的人工含量;在定额费用确定中,应该将问题考虑周全,利用现有定额子目比较完整的换算,就可以得到最为兼顾各方利益的数据。

2.3工程量清单计价

工程量清单计价编制中,需要按《辽宁省建设工程计价定额》中的清单项目编码、项目名称以及项目特征、计量单位与工程量计算规则(五大要件在清单组成中缺一不可)、工作内容及本编制说明所规定的附表编制工程量清单,按实际的发生工程项目进行计价。工程量清单编制中,是根据计价定额已确定的项目内容,针对在工程施工过程中消耗的非工程实体,由承包人提出,发包人确认,从而可以形成新的清单明细。工程量清单计价中,需采用统一格式,根据各省、自治区的实际情况,综合单价,针对材料价格风险,采取有效审核措施,在计价规范计价表的基础之上进行补充完善。

2.4技术经济指标可行性估算常见错误

可行性研究估算的编制中,常见有如下误差问题:1)设计人员在提资阶段估算的工程量过大,造成工程可研估算费用偏高;2)装置性材料价格未按信息价计入工程本体,而是直接以市场价格计入工程本体,造成不必要的工程费用增加;3)设备单独调试费用及系统联合调试费用等直接计列在工程本体费中,未按要求计列在其他费用中;4)未按要求计列项目前期核准必需完成的支持性文件所需的相关费用;5)对于建筑工程、线路工程常常以单位工程造价进行框算,深度无法满足报告要求;6)建设期贷款利息费率未能及时调整,建设周期考虑不合理;7)设备购置费的参考价格,未合理考虑物流运输及涨价因素;8)大型的设备运输未制订切实可行的运输方案,单纯以经验估算,造成较大的费用偏差;9)对于改、扩建工程,缺乏对原有设备改造的相应估算。针对以上问题,需要技术经济人员加强对标准化设计的文件学习,同时加强与各专业人员的沟通,才能有效避免缺项、漏项及估算失误。

3结语

编程技术论文篇2

1.1有效避免资源浪费现象的发生

对于计算机软件系统而言,数据库作为其中的核心内容,需要得到人们的重点关注。在数据库设计的过程中,需要通过对软件工程的定义分析,实现对不同软件工程项目的认识及理解,满足数据库编程的基本需求,从而有效避免了数据资源浪费现象的发生。在软件设计中,设计人员需要提高对软件数据库编程的重视,通过对数据库资源的综合性分析,避免数据库出现使用性能不高的问题,解决数据故障限制因素。对于不良的数据库而言,其后期系统的维护频率会不断增多,从而造成了计算机软件维修中资源浪费的现象。

1.2提高计算机软件系统运行速度

在计算机系统设计及分析中,需要通过对软件系统的运用,实现对程序功能的稳定发挥,为数据资源的系统运行提供有效支持。而且,在高性能数据软件系统运用中,可以通过对计算机系统的操作分析,进行准确、快速的信息传输,全面提高软件系统的运行速度。同时,在计算机软件系统使用的过程中,通过对数据库资源的拓展分析,可以为用户提供便利性的服务支持,减少数据资源浪费现象的发生。通過计算机软件数据库的构建,可以实现对数据库资源的合理革新,从而为数据资源的储存软件系统的管理提供有效支持。

2计算机软件工程中的数据库建立

开展计算机软件工程建设过程中,首先要针对数据库系统进行完善,设计构建基础的框架,计算机软件通常是在网络环境下运行使用的,因此在建设期间,也要考虑是否存在影响因素,通过各个系统之间的相互配合,来实现软件功能,数据库中的信息安全性也能够得到保障。对于软件工程中针对数据库编程管理问题,在建立初期要有明确的使用方向,完成基础框架设计后需要针对功能方面采取完善措施,不断的补充其中的功能,并提升软件自身防御能力,这样即使是在网络运行使用环境下,也能最大限度的避免受到病毒攻击,确保数据信息安全,同时数据库中信息的更新速率也能够达到使用需求标准。数据库建立是基于编程技术基础上来开展的,对于一些技术性问题,通过功能之间的协调使用,可以更好的避免出现技术性问题,同时在软件工程投入使用后最大限度的利用数据库资源,在网络环境中也能够实现软件的自动更新检测。建立过程中要选择适合的程序汇编语言,通过语言来完成功能框架编写,选择适合的汇编语言,针对不同的功能模块也可以做出区分,这样可以更好的帮助提升设计效果。

3对数据库文件的应用

3.1面向对象的数据库存储模式选择

数据库存储模式选择,需要在分区后进行,存储功能中可能会出现不同程度的功能隐患问题。这种数据库存储模式选择也是对用户访问权限的定义,在软件使用过程中,为确保内部重要信息的安全性,会对用户的访问权限进行定义,这样不同级别的用户所能够登陆到的界面也存在差异,数据库信息也都得到安全保障。基于文件类型选择基础上所进行的文件访问,也更高效合理,实现上述功能在程序编写期间要重点设计,根据所存储的信息类型来对数据库做出选择,避免出现更深层次的问题,并帮助合理优化资源,利用过程中达到更理想的效果。不同资源在使用时需要根据所接收到的指令来调动数据库内部信息,实现资源利用方面的优化。

3.2数据库文件的加密保护

文件加密保护主要是针对基础信息来进行的,这部分信息关系到使用者的个人隐私,一旦泄露会造成严重的影响,因此在所开展的数据库文件加密保护中,要根据不同信息的重要程度来设置等级,采用登陆口令以及密码加密的形式来进行保护,登陆到数据库文件内部需要输入相应的加密密匙,这样工作人员可以根据常见问题来探讨解决加密措施,以免文件应用过程中受到网络病毒的影响,造成数据库使用期间瘫痪问题。对于文件加密期间的数据信息选择,通过各个系统之间的文件加密选择,如果出现功能方面的冲突问题,可以通过系统的框架结构优化来达到更理想的优化使用模式。为各个系统之间的功能优化创造有利环境。

3.3数据存储模式使用方法比较

存储功能使用性能是否稳定,要从使用方法对比过程中来进行探讨,观察运行状态下的软件是否存在功能不稳定的现象,并从技术性角度来深入探讨预防措施。设计期间的功能选择直接关系到后续网络访问所选择的形式,以及工作任务开展期间可能会遇到的相关问题,帮助提升系统投入使用后的功能稳定性,通过这种工作模式上的创新利用,可以帮助避免网络环境中软件使用受到计算机病毒的入侵,并最大程度的保护数据库中信息的安全性,对于一些比较常见的技术性问题,对于这种配合方法的选择也能够达到更理想的运行效果。系统在运行过程中会对所接收到的信息快速筛选,将其中的有用信息进行归类,这样可以根据使用需求快速的调动数据库内的信息,软件投入使用后也可以根据操作需求对功能进行更新处理,这种方法的实现也需要各个系统之间的相互配合。对存储模式进行对比,观察其中所存在的问题,更有利于下一阶段软件功能设计的实现。

3.4开发设计中的编程技术选择

编程技术选择过程中,要以软件功能的稳定性来进行探讨,观察在系统设计中对资源的利用是否优化,以及可能会出现的功能不稳定现象。针对比较常见的系统功能问题,在编程阶段的技术选择可以采用对比的方法来进行,观察系统功能的稳定性,发现数据传输不准确的现象要及时采取解决控制措施,预防软件的功能出现大面积瘫痪,影响到正常工作使用。程序检测工作开展也是针对这些技术选择问题来进行的,对所开发设计出的软件进行稳定性检测,为系统的运行创造出安全适合的环境,在这样的环境下才能够解决运行稳定性问题,并达到系统需求的工作环境。软件功能稳定性与编程技术的选择之间有很大关系,因此在选择编程方法时要考虑是否可以解决这一技术优化利用的问题。开发初期阶段出现问题可以重新优化基础框架结构,这样后续的建设计划也可以顺序开展,在这样的环境下,计算机程序汇编面临着功能实现与网络环境安全防护的双重任务,实现各项工作任务也是十分复杂的。

编程技术论文篇3

【关键词】数控技术 课程改革 教学改革

【基金项目】辽宁省教育科学规划培育课题;辽东学院教育教学质量评价专项课题。

【中图分类号】G42 【文献标识码】A 【文章编号】2095-3089(2013)08-0221-02

1.前言

《数控技术与编程》是“数控加工技术”专业的一门主干课程,不但需要掌握一定的理论知识,还需要掌握较高的实践操作知识。国内多所职业院校数控加工技术专业都经历了一系列教学内容的调整以及教学方法的改革,目的是尽快培养出能胜任数控工艺编程工作岗位的数控操作人才。目前,国内大大小小企业,新进设备多为数字控制,急需能快速上岗的数控操作人员。另外,围绕教改内容和教学方法,针对数控加工技术专业学生进行了《数控技术与编程》课程学习情况问卷调查,学生对该课程内容感兴趣者较多,希望能多安排实训内容、增加数控自动编程等实践内容[1-4]。因此,从社会对数控操作人员的需求以及学生对数控技术的渴求来看,强化实践能力培养的数控技术教学改革具有一定的现实意义。

2.数控技术教学改革

2.1理论教学的改革

根据《数控技术与编程》课程教学内容要围绕基础性、实用性、时效性和新颖性的要求,对《数控技术与编程》理论教学内容进行了尝试性的调整。教材以讲明基本概念、基本原理为度,删除一些计算过程繁锁、理论性太强以及过时的、岗位实用性较低的内容。比如,删除复杂曲线的数学处理内容,删除穿孔纸带等过时内容;结合目前的数控技术的实际应用,增加自动编程方面内容。同时增加实践技能性强的教学内容,并将教材中内容接近的部分进行合并。针对数控加工技术专业,将数控机床机械结构、数控车床、铣床、加工中心、计算机辅助编程进行合并;对于模具设计与制造专业,将数控车床、铣床、加工中心编程、数控电火花、线切割机床编程进行合并。这样,《数控技术与编程》课程教学内容的安排就体现了系统性、完整性、科学性和先进性,同时注重汲取近期先进制造技术和数控技术的最新研究成果,注重知识的前后连贯,注重基础知识的完整性。

2.2 实践教学的改革

为了建设好实践教学体系,与使之与理论教学体系互相联系、相互融合,丰富数控技术教学的实践教学内容,通过实际调研研究,建立了《数控技术与编程》课程的实践教学体系,即课程实验──数控机床操作实训──综合实践训练[5]。

(1)课程实验

开设数控机床结构实验,使学生了解数控机床的机械结构;开设数控编程实验,使每个学生独立完成数控车床、数控铣床的编程训练;利用计算机辅助编程(自动编程)完成复杂形状零件自动编程训练;通过编程训练使学生掌握数控编程的方法和技巧。

(2)数控机床操作实训

学生进行数控车床、铣床和加工中心实际操作训练,让学生掌握数控机床、加工中心的程序输入、刀具参数设置、机床调整、机床维护知识,使学生能够操作数控机床并加工出合格零件,培养学生操作机床的基本技能。

(3)综合实践训练

学生自己选择中等复杂程度的零件,分析零件结构、制订工艺过程、工艺路线,选择数控机床、刀具、夹具等,编制加工程序,自己动手操作加工出零件,培养学生综合运用所学理论知识解决实际问题的能力。

2.3数控技术考核改革

融入职业技能考核,实行“双证制”教育。将学历教育融入职业技能鉴定内涵,将课程教学全面覆盖职业技能鉴定标准所包含的全部知识。在课程结构、教学内容、教学进度安排和教学质量评价等方面为学生获得职业资格证书提供可靠的保障,突出职业能力培养,实施“双证制”教育[6]。具体做法是:理论教学课程综合相应工种应该掌握的知识,实践教学环节融合相应工种的技能部分,通过正常的理论和实践教学,达到相应工种的职业技能鉴定标准,经过考试与鉴定,获得相应工种的职业资格证书,实现职业资格“零培训”,实现技术工人的“零距离上岗”。

3.成效分析

《数控技术与编程》教学改革之后,分别对05级和06级数控技术专业部分学生进行问卷调查,得到了一定的信息反馈(Z0501班24份、Z0502班21份、Z0605班30份、Z0606班32份)。经过汇总整理后得到教改前和教改后的学生对《数控技术与编程》课程改革的态度,如表1所示。

表1数控技术与编程教学改革前后比较

由表1中可以看出,教学改革得到学生的认可,课程内容的安排更趋合理,学生对课程内容的兴趣大幅度的提高。通过一系列的教改实践,针对数控加工技术的特点,突出面向综合应用、加强工程实践环节的原则,形成了该课程的总体结构框架,收到了良好的效果。

由于本次教改侧重数控工艺编程能力的提高。从平时作业、期末考试、期末实训中学生对知识点掌握的程度比较分析,强调实践教学后,学生的知识掌握比以前扎实,能将所学知识运用到实践操作中。教改之前,学生在期末的考试中对编程题的失分率高达32%,考试成绩不太理想。教改之后,学生在考试中编程题的失分率下降到8%,学生编程时能主动考虑工艺问题,大大提高了所编程序的实用性。

4.结论

目前,高职院校都在进行相应的教学改革和课程改革,目的是培养学生能快速胜任数控操作岗位。而《数控技术及编程》是高职数控技术专业的一门主干专业课,具有实践性强的特点。论文以培养学生熟练掌握数控设备基本编程技能为目标,进行了《数控技术与编程》课程的教学改革、考核改革。通过强化实践教学,提高了学生的实践能力;通过改革课程群的教学内容和形式,融入了职业技能考核方法,形成了新的教学体系,实行“双证制”教育体制,获得了良好的教学效果。

参考文献:

[1]孙海滨,宫衍香.理论力学教学改革的实践与探索[J].高等理科教育.2007.5:94-96

[2]陈书法,张南乔,张淑兰.《机床数控技术》教学改革的探索与实践[J].高教论坛. 2005.12(6):126-127。

[3]李谟树,张钟,覃岭,周华.数控技术一体化课程教学改革的探索与实践[J].顺德职业技术学院学报.2006.6(1):81-83

[4]郭剑.关于校级实验教学质量评价体系的思考[J].实验科学与技术,2010(8):126-127

[5]董德民.经管类创新应用型实验教学体系的构建与实践[J].中国科技信息, 2009(15): 244-245

[6]高宏毅,周洁文,韩倩.教学与考证结合的教学改革探索[J].计算机教育.2007.10:104-105

编程技术论文篇4

关键词:编译原理;编程语言;教学目标;教学内容

中图分类号:G642 文献标识码:A

1引言

编程语言的“编译原理”是计算机专业一门非常有用的核心课程,又是一门需要较大投入的课程。怎样激发学生的学习热情,努力学好本课程?在正确的教学目标下选择适当的教学内容是非常重要的一环。基于笔者长期承担“编译原理”教学的体会,以及多年从事编程语言理论和实现技术研究的积累,本文阐述笔者对该问题的认识。

国外和国内分别从二十世纪六十和八十年代开始设置“编译原理”课程,几十年来,“编译原理”课程可以讲授的内容越来越多,从文献[1,2]这两本专著的内容看出。和第一版相比,第二版压缩了编译原理传统部分的内容,大量增加了新技术内容,书的厚度从接近800页猛增到超过1000页。第一版中被删除的部分包括:语法分析中的算符优先分析法,语法制导翻译中的递归计算方法、语法制导翻译的实现细节和语法制导定义的分析,最后两章的编译器自展和一些具体编译器的介绍。在静态检查一章介绍的类型系统和类型检查被分散和弱化到中间代码生成一章中。第二版中增加的内容包括:

(1) 堆管理和各种垃圾收集算法。

(2) 独立于机器的代码优化增加了数据流分析的理论基础,强调了在一个数据流分析的一般框架下解决各种具体数据流问题,能使读者对程序分析和代码优化有更深刻的认识。

(3) 依赖于机器的优化,包括现代处理器体系结构、指令调度、基本块调度、全局调度和软件流水等。

(4) 并行性和数据局部性优化,重点介绍在多处理器系统上,使用数组作为数据结构,并且以简单而有序模式访问这些数据的计算密集型程序的优化问题。

(5) 过程间的分析,包括调用图、上下文敏感分析和指针分析等。

国外另一本著名的专著是Appel的《Modern Compiler Implementation in C(3rd. Edition)》(还有Java语言描述和ML语言描述的版本)。全书21章,表明它涉及的内容广泛,比Aho第二版覆盖的范围还要广,包括了面向对象编程语言和函数式编程语言的实现方法。但是全书不到550页。因为Appel强调编译原理的学习离不开具体的实践,他精心设计了一个“学生项目编译器”的框架和模块接口,每章的结尾给出与该章内容相关的编译器模块的设计任务,要求学生逐步实现一个编译器。对相关的理论,该书的介绍都比较粗略;对相关算法,除了直接用代码表达的以外,大多数只通过例子表达思想。

从这两本教材可以看出国际教材的变化趋势是压缩仅和编译器前端有关的部分,增加独立于机器的优化和依赖于机器的优化等内容。

国内的编译原理教材基本上都是根据国外教材编写的,在跟踪过程中,总显得有些滞后。例如,国外2000年以后出版的教材已经不介绍算符优先分析法,而国内2004年和2005年出版的一些较有影响的教材仍然介绍算符优先分析法。在增加新内容方面,国内教材也相对落后,笔者力图克服这一缺点,在新近改版的教材(详见文献[5])中,加入了依赖于机器的优化内容。

真正从事主流编程语言编译器设计的虽然只是极少数一部分人,但是编译技术在计算机体系结构设计、提高软件开发效率与质量的工具开发等方面有着重要的应用,这是学习编译原理的主要理由。在编译原理所涉及的知识越来越多,而“编译原理”课程的课时数不足的情况下,如何选择编译原理的教学内容是一件值得探讨的事情。

2教学目标

笔者认为,虽然编译原理和技术对计算机专业的学生来说是重要的基础知识之一,但是对不同层次的高校,应该编写不同深度的教材,讲授不同的内容,以达到不同的教学目标。

可以将教学目标分成三个层次:普通高校本科的目标、重点高校本科的目标和研究生阶段的目标。下面概述的这些目标中,后者包括了前者,并且边界不是绝对的。

(1) 普通高校本科的目标是:通过编程语言实现技术的学习,提高学习编程语言及在程序开发中应用编程语言的能力,具体解释如下:

提高学习、理解和使用编程语言的能力;

提高程序排错的能力,即快速理解、定位和解决在程序开发与程序运行中碰到的问题的能力;

提高编写高质量代码的能力。

(2) 重点高校本科的目标是:通过对与编程语言相关的理论和技术的学习,提高在软件工程中应用这些理论和技术的能力。和编程语言有关的理论和技术包括:

形式语言和自动机理论、语法制导的翻译技术、类型论和类型系统、数据流分析的理论基础等,可以选择一部分作为教学内容;

LR分析和语法制导翻译等技术,代码生成和代码优化中的一些重要算法。

(3) 研究生阶段的目标是:通过对与编程语言密切相关的、更宽泛的理论和技术的学习,提高在科研工作中应用相关理论和技术的能力。这些理论和技术列举如下:

依赖于机器的各种优化技术;

其它范型的编程语言的理论和实现技术;

程序分析的理论和技术;

并行编译理论和技术。

3教学内容的选择

本节探讨在三种不同教学目标下的教学内容。不管怎样选择教学内容,都要有恰当的课程实践作为课堂教学的非常重要的补充。笔者已另外行文专门介绍在课程实践方面的经验和体会,因此本文不再讨论课程实践。

3.1普通高校本科

根据前面提到的目标,笔者认为,教学内容应强调对编译原理和技术的宏观理解及全局把握,而不要把学生的注意力分散到一些枝节的算法上,如计算开始符号集合和后继符号集合的算法、回填技术等。另一方面,教学内容和习题要包括一些从实际碰到的问题中抽象出来的例题和习题,鼓励学生用所学的知识去分析和解决实际问题。笔者在这方面已经有所尝试(详见文献[6, 7]),教材中主要各章都有配合该章内容的C语言小程序作为例题或习题。

针对编译的各逻辑阶段,笔者建议的教学内容如下。

(1) 词法分析

正规式、不确定的有限自动机、确定的有限自动机及其最小化是主线;同时要有用C语言写的一个简单语言的词法分析器,并介绍词法分析器的生成器。

有限自动机是一种经常用得着的概念和工具,放在编译原理课程中介绍最为合适。词法分析器的生成器是上述主线的自然产物,由于它比较简单,让学生通过它来开始理解程序生成的概念和工具较为合适。

(2) 语法分析

上下文无关文法是必备的基础知识。LL(1)文法和递归下降分析方法比较直观,便于学生接受,应首先介绍,并伴有一个简单语言的递归下降分析程序作为例子。在介绍自下而上分析的一般概念和使用LR分析表进行移进归约分析后,直接介绍分析器的自动生成器,并介绍归约时的语义动作,为下面阶段语义工作的描述奠定基础。

算符优先分析法没有必要讲,因为编译器的语法分析已不再使用这种方法。LR分析方法固然很重要,但由于SLR(1)分析、规范LR(1)分析和向前看LR(1)分析的介绍需要占用较多课时,因此以不介绍这几种LR分析表的生成算法而直接介绍LR分析表的使用为好。

(3) 静态语义检查

概述静态语义检查包括哪些方面,然后重点放在类型检查上。类型系统在编程语言的设计中占据重要位置,可以先介绍一下类型系统在编程语言中的作用,然后用语义动作来表达类型检查算法。

(4) 运行时存储空间的组织和管理

这是最需要搞明白的部分。尤其在用C这样比较低级的语言时,掌握这部分内容对编写程序和程序排错都很有帮助。具体应该介绍局部存储分配策略(即一个活动记录中各类数据的组织),静态分配、栈式分配和堆式分配等三种全局存储分配策略,非局部名字的访问方式和各种参数传递方式的实现。

(5) 中间代码生成

主要介绍各种形式的中间语言,把赋值语句和各种控制流语句翻译成中间代码的语义动作。对于类型和变量声明语句,主要关注怎样按语言的作用域规则组织符号表。至于符号表中符号的插入和查找方法在数据结构课程中已经介绍过,没有必要在这里重复。

(6) 代码生成

选择一种采用简单的寄存器分配策略的代码生成算法加以介绍,让学生对代码生成有所了解即可。

(7) 代码优化

用实例来介绍各类优化,让学生明白编译器能完成哪些优化,而不要给学生介绍各种优化算法。这对编程有用处,例如,在可读性好的源代码和优化的源代码两者之间做选择时,若知道那些优化可以由优化编译完成,则宁可选择可读性好的代码。

(8) 编译系统和运行系统

通常,除了编译器外,还需要一些其它工具的帮助,才能得到可执行的目标程序,这些工具包括预处理器、汇编器和连接器等。这些工具都较简单和明显。了解这些工具有助于掌握从源程序到可执行目标程序的实际处理过程,这些知识对于参与大型软件系统的开发是很有用的。

这部分主要是让学生了解预处理、编译、汇编和连接这个流程,目标文件的格式,连接时的符号解析,静态库和动态库等。

3.2重点高校本科

粗略地说,普通高校本科计算机专业在软件方面主要培养软件编程人员,而重点高校本科培养高一个层次的软件设计和开发人员。因此需要学生掌握或了解和编程语言有关的理论以及和编程语言实现有关的重要算法。

(1) 形式语言和自动机理论

形式语言理论是用数学方法研究自然语言和人工语言(如编程语言)的语法的理论,它只研究语言的组成规则而不研究语言的含义。自动机理论是以研究离散数学系统的结构、功能以及两者之间关系为主要内容的数学理论。形式语言分层的四类文法和图灵机等某些自动机的对应(接受同样语言)是形式语言和自动机之间的重要联系。形式语言和自动机理论在编程语言的描述和编译、自然语言的理解和翻译以及语法制导的模式识别等方面有着广泛应用。若想给学生介绍一点形式语言和自动机理论,编译原理课程是最理想的场所。

(2)LR分析方法

LR分析方法是一种高效的、自下而上的语法分析技术,它能适用于一大类上下文无关文法的分析。LR分析方法被广泛采用,各种分析器的生成器几乎都是生成LR分析器。因此在全面介绍语法分析方法时,必须把LR分析方法当作重点来介绍。LR分析表的生成算法较复杂,因此还需把该算法当难点来讲解。只有能全面把握LR分析方法时,才能说比较好地掌握了语法分析方法。

(3) 语法制导翻译

语法制导的定义和语法制导的翻译方案是描述编程语言翻译的两种常用形式方法。它们描述严格并便于理解,因此大部分有一定深度的教材都用它们来描述静态语义检查和中间代码生成等。它们易于实现,所以编译器的生成器都要求编译器的设计者用这样的方法来表达识别出输入串中的语法构造时要执行的动作。通过对语法制导翻译的实现技术的学习,会对程序生成器有更多的理解,这在软件工程中是很有用处的。

(4) 类型论和类型系统

类型论是为了避免集合论悖论而建立起来的数学理论,主要研究集合的分层、分类方法。类型系统是一种依据程序短语语义值的种类来对程序短语进行分类的语法方法,它用来防止程序出现某些上下文有关的错误。在计算机科学的编程语言理论中,类型论提供了研究、设计和分析类型系统的形式基础。编程语言的设计现在都是以类型系统的设计为中心来展开的;掌握类型系统知识对学习编程语言有重要的指导作用。此外,类型系统在软件工程、软件安全、高性能编译器的实现和程序分析等领域都有深入的应用。

目前,国内编译原理的教材一般最多从类型系统的实现――类型检查算法来粗浅地介绍类型系统的知识,缺乏类型系统在编程语言中作用的全面介绍,缺乏对多态类型这样的非普通类型及其类型检查方法的介绍。

形式语言、语法制导翻译和类型系统知识的学习有助于提高学生的形式描述能力。

(5) 数据流分析的理论基础

国内介绍代码优化的编译原理教材,对各种数据流分析问题,分别给出数据流方程及其迭代求解算法,也谈及它们之间的联系,但是没有把它们作为一个整体来抽象地研究。文献[2]突出数据流分析的理论基础,强调在数据流分析的一个一般框架下解决各种具体数据流问题,使教材能站在更高层面上讨论代码优化,给学生一种洞察数据流分析本质的认识。

通过从半格定义开始的数据流分析一般框架的学习和理解,可以提高学生的数学抽象能力。

(6) 代码生成和代码优化的算法

简单的代码生成算法离实际的代码生成器相差太远。寄存器分配的图着色算法、树重写方式的指令选择方法、为表达式树产生最优代码的算法、动态规划的代码生成算法、使表达式的计算次数最小化的程序变换方法和程序流图中自然循环的识别算法等,不仅能让学生了解代码生成和代码优化的技术,而且能给学生算法设计方面的启迪。

随着嵌入式系统应用越来越广,自主设计嵌入式系统软硬件的机会越来越多,要求软件开发人员具备这部分知识的场合也不断出现。

3.3研究生阶段

在国内,就现阶段来看,虽然直接参与编译器的设计和开发的工程师还是很少,但是编译器的设计影响着计算机科学的一些其它领域,如针对计算机体系结构的优化、新计算机体系结构的设计、软件质量、软件安全、程序翻译和提高软件开发效率的工具等,这些领域的研究和开发工作都需要编译原理的知识。

研究生阶段学习编译原理的有关知识,主要是提高在科研和开发工作中应用相关理论和技术的能力。由于授课对象是本科毕业于不同学校的研究生,他们在编译原理方面的知识背景大不一样,因此可以挑选文献[5]中第3.2节和该节列举的部分理论和技术作为讲课内容。

(1) 依赖于机器的各种优化技术

计算机体系结构的迅速演化引起对新的编译器技术一种不知足的需要,几乎所有的高性能系统都在利用两种基本技术:并行化和内存分层。并行性可以在指令级和处理器级分别发掘;内存分层针对这样的基本局限:构造非常快的存储器或者非常大的存储器是可能的,但是构造不出既快又大的存储器。

所有现代微处理器都开拓指令级的并行。这种并行对程序员是隐蔽的,程序员理解为串行执行的指令序列,会被硬件动态地检查其中的相关性,并尽可能并行发射这些指令。编译器对此的配合作用是重新整理指令,使得指令级的并行更有效。

文献[2]有这些内容的较详细介绍。这部分内容也可以在计算机体系结构的相关课程中介绍。

(2) 其它范型的编程语言的理论和实现技术

对于不同范型的语言,主要是让学生了解其影响语言实现技术的重要语言特征,以及它们对实现技术的具体影响。

就面向对象编程语言来说,其信息封装虽是非常重要的特性;但对编译器来说,实现这些作用域规则是简单而明显的。因此重点是在另一个重要的语言特征――继承性及其实现上,实现中的关键数据结构是虚方法表。

理解函数式编程语言并不困难,重要的是理解其既允许高阶函数又支持函数嵌套声明给实现带来的影响。重要的是明白此时栈式存储分配不再适用,活动记录必须创建在堆上。实现中的一些重要概念是函数变量的闭包、垃圾收集、逃逸变量、惰性计算和换名调用等。

其它还有逻辑编程语言,例如Prolog语言,使用这类语言的人很少,无特别需要则不必介绍。

(3) 程序分析的理论和技术

程序分析指的是以程序为对象的静态(如编译时)预测技术,它们可用来预言程序运行时的动态布局或行为的一种安全(忠实于语义)且有效(所需时空少)的近似(因为一般而言不能期望精确的解答)。除了用于代码优化外,程序分析还用在程序理解、程序测试、程序安全性分析和程序重构等许多方面。

除了代码优化中提到的数据流分析外,常用的程序分析技术还有基于约束的分析、抽象解释、类型和结果系统、符号执行等。

国内已经有一些高校开设了专门的程序分析课程,相应教材(文献[8])也已经问世。

(4) 并行编译理论和技术

并行编译器是指处理并行编程语言或将串行编程语言的程序并行化的编译器。这样的编译器对程序员隐蔽了它发现程序并行性、把计算分布到多个处理器、极小化处理器之间的同步和通信的详情。并行化技术已经用于自动地把串行科学计算程序翻译成多处理器代码。

并行编译中采用的主要技术是依赖性分析和循环并行化等。这些内容已经被写入国内个别编译原理教材(文献[9])中。

参考文献:

[1]Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. Compilers: principles, techniques, and tools[M]. New York: Addison- Wesley, 1986.

[2]Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Compilers: principles, techniques, and tools[M]. 2nd edition. New York: Addison-Wesley, 2007.

[3]Andrew W. Appel. Modern compiler implementation in C[M]. Cambridge, England: Cambridge University Press, 1998.

[4] 张素琴,吕映芝,蒋维杜,等. 编译原理[M]. 2版.北京:清华大学出版社,2005.

[5] 陈意云,张昱. 编译原理[M]. 2版.北京:高等教育出版社,2008.

[6] 张昱,陈意云. 编译原理课程实践改革探索[J]. 计算机教育,2008(8):2426.

[7] 陈意云,张昱. 编译原理习题精选与解析[M]. 北京:高等教育出版社,2005.

[8] 刘磊,张晶,单郸,等. 程序分析技术[M]. 北京:机械工业出版社,2005.

[9] 陈火旺,刘春林,谭庆平,等. 程序设计语言编译原理[M]. 3版.北京:电子工业出版社,2001.

Discuss on Teaching Content of Compiling Principles

ZHANG Yu, CHEN Yi-yun, Guo Yu, LI Zhao-peng

(School of Computer Science & Technology, University of Science & Technology of China, Hefei 230026,China)

编程技术论文篇5

关键词: 科技期刊; 质量; 学术论文; 审编校

中图分类号: G232 文献标识码: A 文章编号: 1009-8631(2012)01-0121-02

当今,随着信息网络技术的发展,科技期刊所处的发展环境正在发生日新月异的变化,极大地影响刊物的社会地位、编辑手段、出版发行、传播方式和读者群体。怎样在这种环境下进行期刊审编校工作,严把审编校质量关,是直接关系到科技期刊的生存与发展。

审编校人员作为期刊编辑出版活动的主体,需要对繁杂的信息进行整理、加工,从选题策划到组稿,再到审读加工、再到编辑校对出版等等,每一个环节无不渗透着编辑人员对期刊质量控制所花费的心血。审编校工作质量是期刊质量的一个重要指标。面对当前发展迅速的网络技术,期刊网络信息化势在必行。本文笔者从实际工作出发,结合《高速铁路技术》期刊具体情况,对期刊的审编校质量控制谈几点体会。

1 审稿

1.1初审

目前国内大部分科技期刊实行的是“三审”审稿制。初审是保证期刊学术水平的“第一道关口”[1]。从国际上很多名刊的实际运作可以看出编辑初审工作的重要性。例如:《Nature》的编辑权限很大,半数的稿件未经送审就直接退回;《Science》稿件首先分给熟悉该领域的编辑,大约3/4的来稿在初审过程中就被淘汰;《美国医学会杂志》有54%的稿件由编辑初审时直接退稿[2]。重视对文稿内容创新性及总体学术价值的初步评判,就要制订具体化的编辑初审工作内容:(1)形式审查,就是对论文的表现形式,也可以说是基本要素的审查,包括题名、作者署名、作者单位、单位所在地区及邮编、作者简介、基金项目、联系地址、联系电话等项目进行审查。这些内容虽然大多无关于论文的质量,但可以方便进行期刊论文的统计与分析、明确著作权归属,或方便联系作者等。另外,还要参照本刊的稿约审查论文的拟定格式是否符合要求,如摘要的内容及字数、插图绘制软件、论文篇幅、参考文献数量等。形式审查是编辑收稿时需及时进行的工作,在进一步审理稿件前就请作者作相应的补充和完善。(2)适用性审查,作为我们《高速铁路技术》科技期刊,编辑初审时要对来稿是否符合本刊的宗旨和报道范围进行审查。需要指出的是,对于符合本刊宗旨和报道范围但近期不能安排刊登的稿件应及时退回作者,建议作者另投他刊,而且一定要告知作者原因,争取作者理解,做到“退稿不退人”。(3)学术质量的初步审查,具体是指对论文的创新性、学术性和应用性进行初步判断。作为科技期刊的编辑一般具有本门学科的专业知识背景,或自学或多参加一些相关专业的技术交流会,而且对相关专业学科也有相当的了解,具有对论文的学术质量作出初步判断的能力,同时利用现代网络数据库进行检索查新,编辑可以在初审时就对论文的学术质量有一个基本的或概念性的认识和评价,为决定是否进一步送专家复审提供依据。(4)规范性审查,概括来说就是要根据相关国家标准和规定对论文的编写格式,图表表述的规范性,量和单位的规范性,评议表达的规范性等进行审查。

在审稿阶段还要注意时效性原则:编辑初审时注意审稿时滞,尽可能缩短初审时间,给下一步专家复审留有充足时间,因为我们所请专家多数是生产第一线的骨干,最不好控制的是专家复审的时间,因此,编辑在收到稿件后,要立即投入到初审工作中,尽快对稿件作出初步的评价,该退、该修改还是该送复审,都应及时进行处理,以减少稿件在编辑部的滞留时间。这对缩短期刊的发表周期是一项行之有效的措施,理应在成为编辑初审时遵循的一个重要原则。

1.2专家复审

审稿专家是同行评议的主体,同行评议是科技期刊审稿的程序,是保证和提高期刊质量的重要途径。采用双向匿名制进行审稿,使评审的意见对稿不对人,使专家有针对性地审稿,不损害其学术形象。在科技期刊发展过程中形成的同等专家审查机制奠定了科技期刊在学术交流中的“把关人”地位,国际上通常将是否有同等评议作为衡量期刊水平高低的一个标志。审稿态度对审稿质量的重要性不言而喻,它与审稿专家的常识水平同样重要。专家审稿时须一丝不苟,力争审稿质量高,审稿时间短,做一名优秀的审稿人。审稿专家是稿件科学性的把关者、创新性的鉴定者、刊物质量的支撑者,把好学术关是专家审稿的主要责任,审稿专家应对稿件作出总体评价,包括学术内容评价(创新性)和研究规范评价(科学性),以及实用价值评价,并充分解释评判的依据,为终审提供参考依据;同时,不能忽视分项评价,包括题名、结构布局、图片、表格、参考文献、语法与标点等等,提出稿件中存在的问题以及具体的修改建议[3]。如果稿件涉及多个专业,就要请多个专家,从本专业角度进行审查,最后给作者一个综合意见。审稿也是一种学术交流活动,尽管范围十分狭小,对丰富科研经验和开阔学术视野都会有很大帮助。

概括来说,编辑是联系作者与读者的桥梁。编辑这一特定的职业群体就是甘为人梯的奉献精神,精益求精的敬业精神,严谨、科学的治学精神。当今社会的评职、获学位、科研课题等都需要发表文章,编辑作为信息传播的“把关人”,“为他人做嫁衣”是编辑工作的真实写照,编辑在履行自己的职责行使修改权力的时候,对稿件字斟句酌的修改需要耗费很多的时间和精力,尤其是这种“枯燥无味”“简单重复”的繁杂、琐细的修改是日复一日的工作内容。编辑加工过程中,在文字性的修改上,特别是内容性的修改,可谓绞尽脑汁。如“的”、“地”、“得”、“了”属文字性的,这很清楚;但当碰到一段专业性很强,又比较生疏的术语时,就要不断查阅资料、规范、咨询专家,使文字、符号等都要表达准确,不能直接用口语或不准确的词句出现在文章中。因此,对编辑工作没有奉献精神,就不可能保持保量地完成这些繁琐的、复杂的工作任务。这就要求编辑具有甘为人梯的奉献精神、精益求精的敬业精神和诚心诚意为作者服务的强烈意识[4]。就会从文章题名至参考文献著录层层把关,一丝不苟;就会按照国家有关规定和标准[5],包括对研究设计、参考文献著录等进行全面的审核、修改和完善,最终使稿件的主题思想更加鲜明、逻辑结构更加严谨、字句使用更加规范、数据材料更加准确,使其符合编辑出版各环节的要求,为科技期刊高质量的出版打下了坚实的基础。

校对工作看似一项简单、平凡的工作,对能力的要求不高,实则在编辑工作中发挥着极为重要的作用。它是一项相对比较枯燥,却又来不得半点马虎的工作,因为它是整个编辑服务流程中的最后一道“关口”,因此,我们采用“四校制”,第一、二、四校由编辑部完成,第三校由作者完成,这样可使作者和编辑人员同时再次把一次关。

在校对工作中,从事文字工作的同志大都也有同感,有时陌生的东西反而出现差错较少,而较为熟悉的东西却容易犯错。就不想咬文嚼字了,就像看小说一样一目十行进行校对,就达不到校对的效果。那么,怎样克服这种思维定势,更好地开展文字校对工作呢?笔者认为,管理学中的“哥顿法”值得提倡。“哥顿法”是管理学中管理决策创新思维方法中的一个,它是由美国学者哥顿发明的,其中的一个基本观点就是“变熟悉为陌生”,即抛开对事物性质原有的认识,在“零起点”上对事物进行重新认识,从而得出相应的结论。在文字校对工作中,也要提倡“变熟悉为陌生”,在校对时,把所有熟悉的东西当成陌生的东西,对每段话、每个字、每个标点符号都保持高度的警惕,带着疑问的心态,抱着学习的态度去校对,然后把"学"到的东西与自己所了解的情况相比较,看有无出入,这样就能跳出固有的思维定势,减少出错的可能,确保文字校对工作的实效性。

4 加强期刊网络化信息化建设

当今,随着信息网络技术的发展,期刊网络化是发展趋势。期刊网络化可以实现期刊的网上组稿、收稿、审稿、编辑、排版、校对等,既快速又便捷。利用网上专家数据库实现在线审稿,既省时,又提高了工作效率,在编辑、作者、读者之间提供了一种信息交流和沟通的平台。由于网络期刊在信息检索、缩短出版周期、节约成本、市场经营、创立品牌等许多方面,与传统的印刷型期刊相比表现出明显的优势和互补作用,因此,应该正确地认识网络期刊时代的到来,促进我国铁路工程科技期刊网络化。

5 结论

建立制度化的编辑学习制度:由于科技期刊涉及的学科和专业较多,涉及面很宽,而且学科分支越来越细,科学技术发展日新月异,这就要求编辑不但要及时了解本学科的发展现状,而且要及时了解其他学科的前沿动态,具备识别、鉴赏稿件学术质量的能力,才能更专业、更准确地对论文学术质量进行评判。另一方面,由于要与国际接轨,国家对学术期刊编排规范化、标准化的要求越来越严,随时掌握国家颁布的编辑相关规定,编辑如果只具有相关学科专业知识而不懂编辑出版专业知识,也是无法进行编辑工作的,只有熟悉、掌握编辑学的基础理论知识和技能,灵活运用编辑学方法和技巧,才能在审、编、校过程中发现来稿的闪光点及存在的问题。因此,建立自学的终身学习计划,是保障期刊质量的一项必不可少的现实要求。在学习的过程中,除了定期参加常规的各层次的培训班、学术研讨会等以外,还可以采取以下方式加强学习。

(1)对照专家复审意见进行专业知识的学习。定期或不定期深入总结专家意见,重点将初审意见与专家的复审意见进行比对,从中找出自身在学科知识方面存在的不足,并进行相应的补充学习。对于这种有针对性的学习,编辑人员要持之以恒,形成一种习惯性的自觉行为。

(2)编辑每年必须撰写一定数量的论文。在写论文和过程中,自然会先去了解相关课题的研究现状,结合自身的编辑实践,深入思考,然后形成自己的独特见解。这个过程本身就是一个很好的学习和提高的过程。这个要求虽然有一定“难度”,但是有“难度”才会有“高度”,有压力才会有动力。

论文的质量是科技期刊的生命线,审编校质量的提高必然对论文的质量以及期刊影响力产生重大影响,从而使期刊进入良性循环的运行轨道。

参考文献:

[1] 何洪英,李家林,朱丹等.论科技学术期刊论文的编辑初审[J].编辑学报,2007,19(1):17-19.

[2] 王萍,杨淑珍,于智龙等.科技期刊编辑初审对论文质量的影响[J].编辑学报,2011,23(10):414-415.

[3] 赵文义,王磊,杨琦.学术期刊编辑审稿行为的主体性分析[J].编辑学报,2008,20(5):382-383.

编程技术论文篇6

关键词 角色换位 科技期刊 编辑质量

付晓娟,北京航天总医院,中国现代医药杂志编辑部。

科技期刊质量包括政治质量、学术质量、编辑质量和出版质量,科技期刊编辑质量直接影响刊物的整体质量。[1]科技期刊的编辑质量控制主要是在三校过程中完成的,这一过程需编辑具有丰富的专业知识,扎实的编辑基本功和耐心细致的工作态度,同时也需在工作中不断总结经验,寻找技巧,变换思路,一种行之有效的编辑工作方法往往能够起到事半功倍的作用,既提高了工作效率,又可降低差错率。笔者在近几年的编辑实践中,将角色换位运用于不同校次的稿件编辑加工中,对于提高编辑质量有很大帮助。

“三校一读”是期刊在出版过程中必须坚持的制度。由于编辑和校对工作的针对性不同,以往所说的三校一般指的是校对。而现代科技在出版业的应用,使得“编校合一”成为可能。[2]相对于传统的“编校分离”,在“编校合一”形势下,已淡化了编辑和校对的区别,编校人员无论在稿件的编辑加工,还是在稿件的“三校一读”过程中,都需用审稿的眼光审视手中的稿件。[3]实际工作中的三校,已不是单纯的校对,而是编辑既负责修改稿件又负责校对,相对而言,三校过程更主要的是编辑对稿件进行编辑加工。

二、角色转换在三校中的应用

进入一校阶段的稿件虽已经过初审、外审和终审,学术质量和出版价值等方面已经过严格把关,但稿件本身很多细节之处,仍需编辑花费大量时间和精力去揣摩和修改。一校过程对于稿件的编辑加工是确保期刊编辑质量的基础性和关键性环节。编辑要以作者的角色对稿件进行编辑加工,假设自己就是作者本人,因此,首先要对论文想要表达的观点,得出的结论以及得出结论的过程和依据非常熟悉,且将这些内容以科技论文的形式表述。要逐字逐句地研读论文,从内容上看,要使论文达到目的简洁明确,方法运用得当,结果客观真实,讨论紧扣主题,且各部分互相呼应,逐渐展开,整体内容流畅,逻辑清晰。

编辑在接触一校稿件之前的初审和综合外审及终审意见时,对稿件内容只是大体的了解,只有以作者的角色去精读全文,将论文视为己作,才能真正地融入作者的思路,更准确地把握论文的内容。在此基础上,才能充分发挥编辑的作用,对稿件的结构进行调整,对内容进行必要的修改和删减,且在与作者沟通过程中才能做到游刃有余。与作者讨论稿件时,当作者发现编辑和自己一样对论文内容了如指掌,会有相遇知音的感觉,从而交流更加充分,修改更加积极,自然也就提高了编辑质量和工作效率。同时,也可避免因编辑自身对稿件内容理解不到位,向作者提出原本并不需要修改的建议,使作者对编辑的水平产生怀疑,影响再次投稿的积极性。

经过一校对稿件内容的准确把握和编辑加工,二校时则转换为编者的角色,从编辑出版要求的角度,对稿件进行精雕细琢,力求论文形式的统一和规范。重点放在改正错别字、病句,更新专业术语,规范量和单位、数字、字母、符号的使用,以及图表的编排格式,核对参考文献的引用和列出等。这一过程考验的是编者对编辑出版知识的掌握和熟练程度,需要日积月累,勤学苦练。注意总结常见的错误类型:有些是出现频率较高的错别字,如“搏动”写为“膊动”,“纵隔”写为“纵膈”;有些是文字录入和排版过程中出现的错误,如“人员”录入成“入员”,“心脏负荷”录入成“心脏符合”;有些是常用医学缩略语中字母大小写和上下标容易混淆,如血压“BP”写成“Bp”,酸碱度“pH”写成“PH”,糖化血红蛋白“HbA1C”写成“HBA1C”;有些则是编排格式方面需要改为统一形式。在处理完整篇稿件之后,再单独检查一下文题、段落标题、作者、作者单位、收稿修回日期、参考文献标引顺序及与列表的对应等,以免疏忽这些相对零散的部分,因小失大,影响整体编辑质量。

论文的创新性和科学价值,固然是科技期刊整体质量的主体,但论文毕竟要通过出版进行交流和传播,为了这一过程的顺利进行,就要求从编辑出版角度对论文进行深度加工,使语言文字符合科技期刊的风格,并保持使用的正确和统一。内容再好的论文,如果刊登出来时错字连篇,语句不通,格式混乱,其可读性会大打折扣,引起读者的反感,失去阅读兴趣,也就无法实现其交流和传播的目的。因此,论文的细节和呈现形式与主要内容同等重要。这一方面是对编辑工作的基本要求和编辑的价值体现,另一方面也是作为媒体的科技期刊在传播科技成果,促进科学发展中必须坚持的原则,是编辑在规范语言文字使用,更新专业知识中的职责所在。

在一校、二校对论文的内容和形式进行编辑加工之后,可再以读者的角色对稿件进行第三遍修改。把校样看做已经刊登的论文,而自己就是正在阅读论文的读者,亲身体验一下读者的阅读感受,这样可从整个出版过程的终端来考察稿件的编辑质量。阅读的同时,能够看到论文是否主题明确,结构合理,论据充分,逻辑清晰,有没有出现理解困难或容易引起歧义的语句,语言文字和专业术语是否已经规范等。也可用读者对于成品论文的阅读标准挑剔稿件编辑加工方面的不足,以免局限于编者的思维,一味地就改错而改错,忽视从整体角度去发现问题。

科技论文的价值是通过读者阅读并准确理解而实现的,作者写作和编辑修改的最终目的,是要为读者呈献具有科学性、可读性、实用性的科技资料,可用于了解学术前沿信息和技术发展动态,指导开展相关工作和研究。在第三校时从读者的角度考量论文的成品效果,不仅是为编辑加工工作提供新的思路,也是对读者负责、尊重读者的体现。在实际读者阅读论文之前,自己首先就是读者,如果即将付印出版的论文自己读起来都感到晦涩难懂,还时而出现错别字和已经摒弃不用的专业术语,怎能引起读者的阅读兴趣,论文的价值又如何去实现呢?

结 语

三校制度是大多数科技期刊编辑部为保证稿件编辑质量而实行的工作流程,也是决定期刊整体质量的关键环节。如果三校只是单纯地重复三遍编辑加工工作,将稿件看三遍、改三遍,容易出现思路单一、惯性思维和视觉疲劳,导致顾此失彼,产生疏漏。以作者、编者和读者的角色分别进行三校工作,使每一校次各有侧重,从不同的角度去发现问题和解决问题,既注重细节又兼顾全局,有助于提高工作效率和工作质量。

参考文献:

[1] 黄政,郝希春. 关于科技期刊编辑质量考核的思考[J]. 编辑学报,2011,23(4):291-293.

编程技术论文篇7

关键词:编译技术;编译原理;课程定位;课程内容组织

中图分类号:G642 文献标识码:B

1引言

“编译原理/技术”是计算机专业的一门经典课程。由于该课程包含了词法分析、语法分析方法中与形式语言及自动机相关的让人颇感晦涩的原理,以及在代码生成和代码优化部分与计算机系统结构有关的庞杂繁琐的实现技术,让许多非计算机相关专业的学生望而却步,几乎成为计算机专业“科班出身”的一种标志。与此同时,难教难学也是这门课的一个特点。如何让那些看似晦涩的原理和庞杂的实现技术对学生来说更容易理解和掌握呢?笔者认为,教学内容的组织和课程安排模式是非常重要的因素。同样的知识点,因不同的组织方式而变得逻辑性更强,更容易理解和掌握。本文结合北京航空航天大学编译课程的建设,探讨以编译过程为主导带动课程知识点的课程组织模式。

2课程定位

编译课程在不同学校教学计划中的教学定位可能不同。北京航空航天大学(简称北航)是一所具有航空航天特色和工程技术优势的多科性、开放式、研究型大学。北航计算机学院将编译课程设置为一门核心专业必修课,并命名为“编译技术”(而非“编译原理”),意在秉承工程院校强调工程技术的特点,强调编译系统的构造及其相关技术。本课程安排在大三上学期,先修课要求:一门高级程序设计语言、“数据结构和算法”以及“计算机原理和汇编语言”等课程。同时本课程安排在“操作系统”之前,是学生接触到的第一个讲述完整的软件系统的课程。本课程理论和实践并重,要求学生掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统的构造(结构和机理);能运用所学技术解决实际问题,能独立编写一个小型编译系统。

曾经一度,有人认为学生毕业后很少做编译器了,因此不必再开设编译课了。Alfred V. Aho在其著名的《编译原理》(龙书)中提到:编译器设计的原理和技术还可以用于编译器设计之外的众多领域,这些原理和技术通常会在一个计算机科学家的职业生涯中多次被用到。因此,编译课程在本科教学体系中应该承载超越“编译系统构造”的使命。笔者认为,“编译技术”课程作为一个载体,在培养学生专业素质方面起到了非常重要的作用,主要体现在:(1)让学生理解高级程序设计语言的工作原理和相关概念;(2)通过编译程序的构造和相关算法,让学生掌握软件领域重要的程序(模型)等价转换技术、程序(模型)优化技术;(3)通过编译系统的介绍,让学生了解软件系统的概念和软件系统设计的方法;(4)通过学习词法分析程序、语法分析程序的自动生成技术,让学生对程序的自动生成技术有所了解。

基于这样的理解,北航编译课程的培养定位为:基础和前沿相结合、理论和实践相结合。要求学生既要掌握编译的经典基础理论和算法,对编译系统有完整的理解,又要求学生具备简单编译系统的构造能力。

同时通过“编译课程设计”实践课程,让学生:(1)掌握编译程序构造的主要技术和算法,理解编译过程;(2)体验一个比较完整的软件系统的设计、开发、测试过程,建立系统设计观念;(3)结合软件工程课程,完成规范化文档;(4)在本科培养体系中,进一步提高数据结构的综合应用能力和程序设计能力。

3课程的组织

基于以上的定位,笔者认为“编译技术”课程的组织应强调过程完整性、系统性和实践性。

(1) 过程完整性:编译过程是一个翻译的过程,编译技术的实质是介绍程序/模型从一种语言表达形式到另一种语言表达形式的等价转化方法,所以在课程内容的安排中应该保证编译过程的完整性,至少是一个完整的翻译过程。

(2) 系统性:编译器是一个完整的软件系统,也是学生接触到的第一个系统(之前学生接触到的主要是针对语言、数据结构和算法的程序设计练习)。应该让学生理解一个完整的系统是如何构成的,各部分应如何组织和协调。

(3) 实践性:理论应该和实践相结合,无论是研究性大学、非研究性大学,都应该注重实践和学生动手能力的培养,尤其是对计算机专业的学生,实际动手能力关乎谋生大计,更不能小视。北航计算机学院为了突出实践环节的重要性,将实践环节部分设置为一门课程,单独计算学分。我校该课程的组织如下:

(1) 教学内容组织(理论课部分)

编译课程中晦涩的原理和庞杂的算法总有些让人望而生畏,它们都是必需的吗?它们之间是什么关系?学生理解吗?教师清楚吗?因此,让复杂的内容简化,让课程更简单易懂,成为本课程改革的一个重要指导思想。在十多年的教学过程中,笔者发现编译过程是一根主线,所有的知识点都是为其服务的,为此提出了以编译过程带动课程知识点的课程组织方式。

通常,编译过程可划分为5个基本阶段:词法分析、语法分析、语义分析及生成中间代码、代码优化、生成目标程序,如图1所示。经过词法分析、语法分析、语义分析及代码生成这3个阶段,就能完成将程序从一种形式转化为另一种形式,这就体现了一个完整的翻译过程。因此,最基本的要求是保证这3个阶段的内容完整。

要保证这3个阶段的内容完整,并不意味着要介绍这3个阶段的所有内容。其实,仅仅完成一个翻译过程所涉及的内容并不多、也不难。词法分析部分只需要让学生理解词法分析的功能,能基于状态图(状态图以一种直观的形式描述单词符号的拼写规则)构造出相应的词法分析程序。而在语法分析部分,可以只介绍最简单的且便于手工编程实现的递归子程序法。在确定了每种语法成分后,结合该语法成分的语义,可以及时完成语言的翻译,这就是语法制导翻译方法。每种语法成分加上其语义的属性,便构成了属性翻译文法。按照语法制导翻译方法,对各种语法成分进行语义分析并生成另一种形式的代码,这就完成了程序从一种语言形式到另一种语言形式的翻译过程。这个过程主要涉及到词法分析、语法分析和语法制导翻译技术、语义分析和代码生成、源程序的中间形式等内容。当然,作为基础,学生应该首先了解文法和语言的概念和表示等基础知识,如图1中A框所示。

要真正实现上述语言的编译过程,还需要了解符号表管理技术、错误处理技术,考虑到程序运行时需要解决的问题,还需要了解运行时的存储组织及管理方式。这部分内容构成了基本翻译过程之上第二个层次的知识点,如图1中B框所示。

要生成高质量的目标代码,还应该了解代码优化和目标代码生成有关的技术和方法。这可归于第三个层次,如图1中C框所示。

学生掌握了上述知识点,便为实现一个带有代码生成和优化的编译器打下了基础,可以不用了解在教学过程中被认为难讲难学的词法分析和语法分析的其他理论部分。这些让人觉得晦涩的部分,究竟有什么作用呢?它们与编译过程的前述知识点有什么关系呢?经过多年的教学,笔者发现,学生觉得这部分知识难学,并不是真正学不懂,他们更多的是不理解为什么要学,不能很好地建立这之间的逻辑关系。首先,我们来看看占据词法分析2/3的内容,是介绍词法分析器的自动生成技术,而自动机理论是其自动生成的理论基础。再看看语法分析部分,是学生认为最难学的部分,往往也是各个学校考查学生的重点内容。可是,大部分学生并不完全明白为什么要学习这些内容,没有认识到(或者教师没有讲解)每种方法的局限性,没有理解各种方法从简到难,同时其处理语言的范围也从小到大(见图2),没有理解这里还有相当的篇幅在介绍语法分析器的自动生成技术。正是由于介绍了语法分析器的自动生成技术,导致这部分内容涉及了相当多的理论原理和算法。对此,笔者建议不同学校可以根据教学要求适当选择这部分内容开展教学(见图1(C))。

上述知识点的组织方式可以用图1来表示。围绕编译过程,将编译技术的知识点分为三个层次,黄色A框表示实现一个语言翻译过程所需的最基本的知识点,建议各个学校都讲。进一步如果需要翻译生成的程序能在虚拟机上运行,翻译过程能够进行简单的语义检查和错误处理,还需要增加符号表管理、错误处理和运行时存储组织管理等方面的知识,这些内容不属于编译过程的某个具体阶段,如绿色B框所示。其他有关词法分析和语法分析自动生成的原理、代码优化和代码生成的知识点,可以作为第三个层次的内容,如紫色C框所示。不同的高校可以根据培养定位选择相应内容讲授。重要的是,所有内容应该围绕一个完整的编译过程,至少是一个完整的翻译过程来进行,而不应该仅限于词法分析和语法分析方法的介绍。

(2) 实践环节要求

笔者认为,在“编译技术”的实践环节,应让学生自己动手实现一个完整的编译程序,从源代码翻译为目标代码,并且要让目标代码能够运行(至少能运行在虚拟机上)。这样不仅让学生体会完整的编译过程,同时也让学生实现一个完整的编译系统。为此,北航计算机学院的“编译技术”实践环节设计了三个层次的题目,分别对应了不同的难度和分数,力求让不同程度的学生都实现一个完整的编译器,各难度的题目要求如表1所示。

从表1中可以看出,难度等级低的题目在文法要求上不高,与教材[3]中的PL/0文法类似,学生只要读懂了教材中经典的示例编译器,就应该能够实现。由于有示例编译器为参考,降低了难度,但同时也为考查学生是否独立完成增加了难度。为此,笔者设计了一套质量管理体系,从题目设置、题目分配和考核方案等方面综合考虑,加强过程管理,保证作业质量。比如,每个难度的文法都有若干个,每个文法定义的语言在形式上都有差别,学生必须按照自己所获得的文法编写编译器,才能通过测试程序的测试;借助于教学平台,每个难度的若干个文法随机分配给学生等,参见精品课程网站。

4总结

为了让“编译技术”课的内容更好地被学生掌握,为了更好地实现编译课程的教学使命,本文提出了以编译过程为主导带动课程知识点的课程组织模式,从另一个角度理清了那些看似晦涩的理论部分和编译过程的关系,而以编译过程为主导划分的三个层次知识点,也有利于各种不同定位的高校安排教学内容。笔者认为,无论哪类学校,只要是工科院校,都应该强调实践,都应该保证编译过程的完整性,让学生用最简单的方式至少完成一个完整的翻译过程。在此基础上,根据各个学校的定位适当增加词法分析和语法分析的自动生成技术,以及编译优化技术。

笔者在教学实践中发现,学生在自己编程实现了一个小型编译程序之后,通常会感慨理论课上觉得已经学会的东西,在实践之后才发现真正理解和掌握了。北航计算机学院的“编译技术”实践部分,由于有寄存器分配、生成汇编码等要求,需要学生运用C语言、数据结构、计算机原理和汇编等知识,被学生誉为“综合性的大作业”。尽管难度大,但是学生觉得收获颇丰,这正是笔者不断思考、尝试新的教学方法的无穷动力。

参考文献:

[1]Alfred V. Aho, Monica S. Lam,Ravi Sethi,et al. 编译原理[M]. 赵建华,郑滔,戴新宇,译. 北京:机械工业出版社,2009.

[2]Andrew W. Appel, Maia Ginsburg. Modern Compiler Implementation in C[M]. Cambridge: Cambridge University Press, 1998.

编程技术论文篇8

关键词:数控技术;实践教学;教学改革

中图分类号:G642.3 文献标志码:A 文章编号:1674-9324(2013)15-0038-02

数控技术与编程课程是机械工程学科的重要专业基础课,以培养学生熟练掌握数控设备基本编程技能和数控设备的应用能力为目标。本课程具有很强的实践性,在整个机械专业教学计划中占有相当重要的地位[1]。根据我校2010版机械工程学科培养方案和指导性教学计划,为机械专业学生开设了48学时的数控技术与编程课程,其中理论授课44学时,实验课程4学时,每年学生约有400人。目前,数控技术与编程的课程教学中存在着较多问题,最为突出的是实践教学环节薄弱,实验教学设施严重缺乏,实验课时占课程比例很小,实训环节人学时远远不足。我院现有的实验室条件是,只有两台数控加工中心,远远不能满足全体学生的实训需求。目前该课程授课方式以课堂讲授为主,实验环节以观看为主,学生实际编程与操作的机会很少[2]。教学内容主要以理论授课为主,教学效果不够理想,学生很难真正掌握数控技术知识与实际编程能力。目前,数控技术与编程的课程教材也存在着很多问题,如数控系统原理部分知识内容陈旧,不能反映数控技术的发展现状;数控加工程序编制部分存在较多错误,脱离数控加工生产实际等。因此非常有必要对数控技术与编程课程进行教学改革,从教学内容、课程体系、教学方法、考核方法和师资建设各方面进行全面改革,以提高教学质量,培养掌握数控技术的应用型、技能型人才,满足市场对该类人才的需求。

一、实践教学改革内容

1.课程体系。改革教学内容,精简理论课时,增加实训环节,使理论与实训课时比例达到1∶1。以Fanuc、Siemense数控编程手册为参考依据,完善数控技术与编程的教学大纲,纠正、排除现有教材中错误,对许多数控教材中关于数控系统的软硬件结构、位置检测装置、伺服系统以及数控机床的机械结构等内容进行精简。精简后的理论课时内容主要包括:(1)数控机床的组成、分类、基本原理、插补原理以及数控技术的发展现状和趋势。(2)数控加工工艺基础。一个好的程序员必须是一个好的工艺员。目前机械加工基础课程很少,甚至完全没有介绍数控加工工艺知识,因此数控加工工艺基础知识是理论课的重点内容之一。(3)数控编程基础。对于任何种类的数控机床或数控系统,存在一些共同的编程基础知识,如机床坐标系、工件坐标系、基本指令代码、程序结构等。(4)数控车床及车削加工中心的数控编程。(5)数控车床及车削加工中心的数控编程。(6)数控自动编程。学习德国在工程教育和应用型专业技能培训方面的理念、方法、教学模式,引进德国凯勒CNC仿真模拟软件,增加实训教学环节。德国凯勒CNC仿真模拟软件是德国凯勒软件有限公司开发的产品,它将数控机床工作过程、CAD/CAM、车铣削加工、系统控制编程等,利用三维模拟技术,并配以大量的图表、数据、解释、习题,进行演示与训练。实训教学环节分为二个阶段:①利用凯勒SYMplus CNC仿真软件,学习数控编程基础知识,熟练掌握各种编程指令,学习数控机床的基本操作,熟练掌握机床的各种功能;②利用两台数控加工中心,学生分组完成零件的数控加工,强化数控编程技术和数控机床操作技能。具体内容包括:零件加工程序传输,装卡毛坯,设置刀具,建立工件坐标系,启动机床,完成零件加工,检验零件的尺寸精度等。

2.教学方法。针对以往授课主要采用理论教学方式,与实践教学完全脱节,教学过程枯燥,学生抓不住学习重点,兴趣不浓,厌学现象严重,教学效果不理想的问题,改革教学方法。采用启发教学法、问答教学法、讲练结合法,将被动学习转变为自主学习,变我听为我练,变我学为我用,激发学生的学习兴趣。采用案例教学法、项目教学法等多种方式,提高学生主动思考能力,分析、解决实际问题能力[3]。将多媒体教室授课改为计算机机房授课,大班授课改为小班授课,增加学生实际练习时间,改善教师指导效果。采用多媒体课件与视频相结合方法,讲授数控编程基本知识,通过德国凯勒SYMplus CNC仿真软件,强化理解、掌握各种编程指令功能、程序结构及编程技巧。增加数控加工中心操作的实训环节,使学生熟悉数控机床的各种功能,具备数控机床的基本操作能力。

3.考核方法。以往将课程成绩分为平时成绩、实验成绩、期末考核成绩三项,其中,平时成绩10%,实验成绩10%,期末考核成绩占80%。平时成绩包括出勤情况、课堂表现、作业完成情况[4]。实验成绩为在加工中心实际加工零件的完成情况。改革后保持成绩考核比例,但是将期末闭卷考核改为上机开卷考核。结合生产实际,建立丰富的涵盖车削、铣削以及加工中心内容的考核试题库。要求学生根据生产实际零件图纸,设计制定加工工艺,选择合理刀具和切削参数,编制程序,仿真运行。评分标准依据加工工艺制定、刀具和切削参数选择的合理性,程序的完整性,仿真结果的正确性来进行,同时考查学生操作的熟练程度。上机开卷考核避免了单一的试卷模式,更有利于对学生的能力进行综合考核。

4.师资建设。教师是教学改革的实行者,只有教师的素质提高了,改革才能取得最好的效果。鉴于教师具有较高的数控技术与编程理论水平,但是缺少实践经验,安排现有在职在岗理论课教师和实训指导教师到企业参观学习,了解企业数控生产实际,进行数控技能强化培训。派出了6名教师到德国凯勒公司接受IHK教师培训,学习德国先进的数控教学理念、方法,全部获得了德国IHK颁发的数控培训师证书,提升了教师业务素质,开阔了国际化视野。

二、改革效果

通过一学期的教学实践,我校数控技术与编程的实践教学改革取得很好的效果。(1)改善了教学氛围,激发了学生的学习兴趣,提高了出勤率。(2)通过大量的编程训练,强化了学生对数控编程理论知识的理解和掌握,提高了学生的实际应用能力。(3)培养了多名青年教师,增加了他们的实践经验,提高了课程组教师专业素质。(4)建立了德国凯勒公司授权的凯勒CNC实验室以及为企业培养应用型人才和创新型人才的中德培训基地。

参考文献:

[1]明兴祖,何国旗,熊显文.数控系列课程教学改革与建设的探索与实践[J].当代教育论坛(管理研究),2011,(09):73-75.

[2]魏岩,阎长罡,陈天旗,等.数控机床计算机编程及切削加工实验教学的改革与实践[J].教育教学论坛,2012,(20):112-113.

推荐期刊