激光技术的应用范文

2022-06-19

第一篇:激光技术的应用范文

水下激光焊接技术的应用

海洋工程结构因常年在海上工作,其工作环境极为恶劣,除受到结构的工作载荷外,还要承受风暴、波浪、潮流引起的附加载荷以及海水腐蚀、砂流的磨蚀、地震或寒冷地区冰流的侵袭。此外,石油天然气的易燃易爆性对结构也存在威胁。而且海洋结构的主要部分在水下,服役后焊接接头的检查和修补很困难,费用也高,一旦发生重大结构损伤或倾覆事故,将造成生命财产的严重损失。所以对海洋工程结构的设计制造、材料选择以及焊接施工等都有严格的质量要求。而随着海洋石油和天然气工业的发展,海洋管道工程日益向深海挺进,我国作为一个发展中的沿海大国,国民经济要持续发展,就必须把海洋的开发和保护作为一项长期的战略任务。大量的海底管道施工工程对水下焊接技术提出了新的要求。

水下焊接由于水的存在,使焊接过程变得更加复杂,并且会出现各种各样陆地焊接所未遇到的问题,目前,世界各国正在应用和研究的水下焊接方法种类繁多,应用较成熟的是电弧焊。随着水下焊接技术的发展,除了常用的湿法水下焊接、局部干法水下焊接和干法水下焊接以外,又出现了一些新的水下焊接方法。但是,从各国海洋开发的前景来看,水下焊接的研究远远不能适应形势发展的需要。因此,加强这方面的研究,无论是对现在或将来,都将是一项非常有意义的工作。

湿法水下焊接

湿法焊接中,水下焊接的基本问题表现最为突出。因此采用这类方法难以得到质量好的焊接接头,尤其在重要的应用场合,湿法焊接的质量难以令人满意。但由于湿法水下焊接具有设备简单、成本低廉、操作灵活、适应性强等优点。所以,近年来各国对这种方法仍在继续进行研究,特别是涂药焊条和手工电弧焊,在今后一段时期还会得到进一步的应用。在焊条方面,比较先进的有英国Hydroweld公司发展的Hydroweld FS水下焊条,美国的专利水下焊条7018’S 焊条,以及德国Hanover大学基于渣气联合保护对熔滴过渡的影响和保护机理所开发的双层自保护药芯焊条。美国的Stephen Liu等人在焊条药皮中加入锰、钛、硼和稀土元素,改善了焊接过程中的焊接性能,细化了焊缝微观组织。水下焊条的发展促进了湿法水下焊接技术的应用。目前,在国、内外都有采用水下湿法焊条电弧焊技术进行水下焊接施工的范例。

药芯焊丝的出现和发展适应了焊接生产向高效率、低成本、高质量、自动化和智能化方向发展的趋势。英国TWI与乌克兰巴顿研究所成功开发了一套水下湿法药芯焊丝焊接的送丝结构、控制系统及其焊接工艺。华南理工大学机电工程系刘桑、钟继光等人开发了一种药芯焊丝微型排水罩水下焊接方法,从实用经济的角度出发,完全依靠焊接时自身所产生的气体以及水汽化产生的水蒸气排开水而形成一个稳定的局部无水区域,使得电弧能在其中稳定的燃烧。微型排水罩的尺寸和结构决定了焊接过程中无水区(局部排水区)的大小和稳定程度。除此之外,他们还通过复合滤光技术和水下CCD摄像系统,采集出了药芯焊丝水下焊接电弧区域图像,从而为水下湿法焊接电弧的机理分析及水下焊接过程控制奠定了基础。

20081182069光信0802林裕

第二篇:信息技术的应用

我在思品教学中充分利用信息技术,来提高课堂效率。具体做法如下:

1)借助信息技术,激发学生学习兴趣和求知欲望。思想品德课教学重视激发学生的学习兴趣,可以取得事半功倍的效果,也是提高学生学习质量的关键。思想品德课教材中大量的概念和原理,不仅使教师的讲解在学生心目中缺乏可信度,更难以激发学生的求知欲和学习兴趣。而多媒体课件利用形象的动画、生动的图像、内涵丰富的影音资料、简洁的文字说明,使学生在学习过程中充分运用眼、耳、手等感官,全方位地接受不同形式的信息刺激,消除单纯课本文字内容单调、枯燥的感觉,激发学生的兴奋点,充分调动学习的积极性和主动性,提高听课效率。

2)借助信息技术,激发学生情感,实现品德内化。思想品德课的内容知识面广、综合性强,许多理论概念显得抽象难懂。其实,再艰深的理论都来源于现实,再难懂的概念都是对客观规律的抽象和总结。对此,信息技术正可以大显神通。

比如在教授“学会自我保护”一课时,并没有像以往那样简单地提出问题、学生自学、当堂检测、反馈解析,而是用多媒体播放《未成年人自我保护》的课件,从发生在身边的典型事例讲起,一个个真实生动的故事情境,深深触动着每一个学生的心灵。然后,整堂课都围绕“如何更好地进行自我保护”展开,或讨论,或总结。貌似空话的理论不仅轻而易举地让学生理解了,更深深植入学生的心田。这样不仅完成知识目标,更重要的是让学生感受到心灵的震撼,完成由“知”到“行”的过渡,实现品德的内化。

3)借助信息技术,突出学生主体性,学会自主学习。自主性学习既是一种教学理念,又是一种学习方式,其实质就是通过学生对学习过程的主动参与来培养他们的自主意识、自主能力、自主习惯,使其成为一个学会学习的人,一个具有主体性人格的人。

4)信息技术辅助教学要切合实际,在课件制作上要遵循科学性、实用性原则。信息体技术作为辅助教学的手段,应是为完成教学目的和任务而服务的。选用多媒体课件辅助教学,要服从实际教学需要,切忌哗众取宠,忽视实际效果。在课件使用过程中,教师应对学生提出明确教学要求,布置学习任务,在学生学习过程中加强指导。制作多媒体课件,应遵循科学性、实用性原则,应围绕教学目的、教学内容设计课件,以解决教学重点、难点为切入口。

5)重视预设与生成的统一

多媒体教学中,很多教师使用的课件都是上课前准备好的。我们在使用多媒体课件进行教学需要预设,但不能预设地太死太严,应给学生留有适当的思考空间,学生在构建知识的过程中会生成很多新的问题,教师在教学中应对学生生成的新情况作出应变处理。重视预设与生成的统一。在多媒体教学中,教师应该为学生营造一个发展良好个性的空间,使学生在标准中有变化,在规范中有自由。

第三篇:20081182098-激光熔覆技术的应用

激光熔覆技术在航空领域中的应用

激光熔覆技术可显著改善金属表面的耐磨、耐腐、耐热水平及抗氧化性等。目前有关激光熔覆的研究主要集中在工艺开发、熔覆层材料体系、激光熔覆的快速凝固组织及与基体的界面结合和性能测试等方面。

航空领域是关系到国家安全的重要领域,也是国家重点支持的战略行业。如何将激光熔覆技术更好的运用于我国的航空制造具有极为重要的战略意义。航空材料是武器装备研发与生产的重要物质基础和科技先导,强化航空材料基体硬度和耐磨性能对于航空材料的改进具有极为重要的意义。如大功率激光器的开发和应用,为航空材料表面改性提供了新的手段,也为材料表面强化技术的发展开辟了一条新的途径。陶瓷材料具有金属材料不可比拟的高硬度和高化学稳定性,因此可以针对零件的不同服役条件,选择合适的陶瓷材料,利用高能密度激光束加热温度高和加热速度快的特点,在金属材料(如钛合金)表面熔覆一层陶瓷涂层,从而将陶瓷材料优异的耐磨、耐蚀性能与金属材料的高塑性、高韧性有机地结合起来,可大幅度提高航空零件的使用寿命。

激光熔覆技术在飞机零件制造中的应用

飞机机体和发动机钛合金构件除了在工作状态下承受载荷外,还会因发动机的启动/停车循环形成热疲劳载荷,在交变应力和热疲劳双重作用下,产生不同程度的裂纹,严重影响机体或发动机的使用寿命,甚至危及飞行安全。因此,需要研究航空钛合金结构的表面强化方式,发挥其性能优势,使之得以更广泛的应用。

陶瓷分为氧化物陶瓷和碳化物陶瓷,氧化铝、氧化钛、氧化钴、氧化铬及其复合化合物是应用广泛的氧化物陶瓷,也是制备陶瓷涂层的主要材料。碳化物陶瓷难以单独制备涂层,一般与具有钴、镍基的自熔合金制备成金属陶瓷,该金属陶瓷具有很高的硬度和优异的高温性能,可用作耐磨、耐擦伤、耐腐蚀涂层,常用的有碳化钨、碳化钛和碳化铬等[7]。采用激光熔覆制备陶瓷涂层可先在材料表面添加过渡层材料(如NiCr、NiAl、NiCrAl、Mb等),然后用脉冲激光熔覆,使过渡层中的Ni、Cr合金与陶瓷中Al2O

3、ZrO2等材料熔覆在基体的表面,形成多孔性,基体中的金属分子也能扩散到陶瓷层中,进而改善涂层的结构和性能。将陶瓷涂层激光熔覆用于航空发动机涡轮叶片是一项很有应用价值的高新技术,常用的激光熔覆材料见表1。

飞机制造中较多采用钛合金,如Ti-6Al-4V钛合金用于制造高强度/重量比率、耐热、耐疲劳和耐腐蚀的零部件。但在这些钛合金的加工制造中,传统工艺方法有许多难以克服的弱点,如生产隔板是由数英寸厚和数十千克重的齿形合金板加工而成的,而获得这些合金板成品需要一年以上。因为难以加工,加工这种零件需要花费加工中心数百小时的工作量,磨损大量的刀具。而激光熔覆技术在这方面具有较大优势,可以强化钛合金表面、减少制造时间。

激光熔覆是现代工业应用潜力最大的表面改性技术之一,具有显著的经济价值。20世纪80年代初,英国Rolls·Royce公司采用激光熔覆技术对RB211涡轮发动机壳体结合部位进行硬面熔覆,取得了良好效果。表2所示是激光熔覆在航空制造中应用的几个实例。

近年来,美国AeroMet公司的研发有了实质性的进展,他们生产的多个系列Ti-6Al-4V钛合金激光熔覆成形零件已获准在实际飞行中使用。其中F-22战机上的2个全尺寸接头满足疲劳寿命2倍的要求,F/A-18E/F的翼根吊环满足疲劳寿命4倍的要求,而升降用的连接杆满足飞行要求、寿命超出原技术要求30%[9]。采用激光熔覆技术表面强化制造的钛合金零部件不仅性能上超出传统工艺制造的零件,同时由于材料及加工的优势,生产成本降低20%~40%,生产周期也缩短了约80%。 激光熔覆在航空零部件修复中的应用

激光熔覆技术对飞机的修复产生了直接的影响,优点包括修复工艺自动化、低的热应力和热变形等。由于人们期待飞机寿命不断延长,需要更加复杂的修复和检修工艺。涡轮发动机叶片、叶轮和转动空气密封垫等零部件,可以通过表面激光熔覆强化得到修复。例如,用激光熔覆技术修复飞机零部件中裂纹,一些非穿透性裂纹通常发生在厚壁零部件中,裂纹深度无法直接测量,其他修复技术无法发挥作用。可采用激光熔覆技术,根据裂纹情况多次打磨、探伤,将裂纹逐步清除,打磨后的沟槽用激光熔覆添加粉末的多层熔覆工艺填平,即可重建损伤结构,恢复其使用性能[10]。

激光熔覆发动机涡轮叶片用到的基体材料和合金粉末见表3。用于熔覆的粉末粒子成球状,尺寸小于150μm。不同合金粉末的熔覆层要选用不同的工艺参数,以获得最佳的熔覆效果。

把受损涡轮叶片顶端修覆到原先的高度。激光熔覆过程中,激光束在叶片顶端形成很浅的熔深,同时金属粉末沉积到叶片顶端形成焊道。在计算机数值控制下,焊道层叠使熔覆层增长。与激光熔覆受损叶片不同的是,手工钨极氩弧堆焊的叶片堆焊后的叶片必须进行额外的后处理。叶片顶端要进行精密加工以露出冷却过程中形成的空隙,而激光熔覆省去了这些加工过程,大大缩减了时间和成本。

在航空领域,航空发动机的备件价格很高,因此在很多情况下备件维修是比较合算的。但是修复后零部件的质量必须满足飞行安全要求。例如,航空发动机螺旋桨叶片表面出现损伤时,必须通过一些表面处理技术进行修复。激光熔覆技术可以很好的用于飞机螺旋桨叶片激光三维表面熔覆修复。

图1所示的航空发动机叶片是经过激光修复的。熔覆材料(合金粉末)为Inconel 625(Cr-Ni-Fe 625合金粉末),叶片材料为Inconel 713。通过金相方法检测熔覆层的截面可以发现,激光熔覆后在叶片基体材料和熔覆层之间形成了一个冶金结合的熔覆过渡区[11]。

激光熔覆可以强化材料表面的合金熔覆层、提升合金表面的力学和化学性能。堆焊合金粉末是较理想的激光熔覆材料,具有很高的应用价值。堆焊合金粉末可以在激光束照射下快速地熔化,而后熔覆在航空零部件的表面。这个过程可以采用预置涂层法,预置材料可以是丝材、板材、粉末等,最常用的材料为合金粉末。激光熔覆先将熔覆材料预置于基体表面的待熔覆部分,然后用激光束扫描熔化熔覆材料和基体表面来实现表面强化。

熔覆区在激光束和送粉系统的作用下形成,基体材料和合金粉末决定了表面熔覆层的性质。激光直接照射在基体表面形成了一个熔池,同时合金粉末被送到熔池表面。氩气在激光熔覆的过程中也被送入熔池处以防止基体表面发生氧化。形成的熔池在基体表面,如果合金粉末和基体表面都是固态,合金粉末粒子接触到基体表面时会被弹出,不会黏着在基体表面发生熔覆;如果基体表面是熔池状态,合金粉末粒子在接触到基体表面时就会被黏着,同时在激光束作用下发生激光熔覆现象,形成熔覆带。图2所示是用激光熔覆技术修复的涡轮叶片。

激光熔覆层的耐磨性与硬度成正比。熔覆层的硬度、耐磨性、耐腐蚀性和抗疲劳性能一般难以兼顾。通过激光熔覆工艺可以改善基体表层的显微组织和化学成分。

激光熔覆工艺与钨极氩弧焊(TIG)熔覆工艺相比有很大的优势。激光熔覆层的性质取决于熔覆合金元素的比例。为了达到最好的预期效果,须尽可能地避免基体材料的稀释作用,因为熔覆层的硬度和基体材料的稀释成反比。在Inconel 792合金表面,分别采用激光熔覆和钨极氩弧焊熔覆Rene142合金粉末,显微硬度的比较如图3所示。

从图3中可见,激光熔覆产生的强化表层硬度比钨极氩弧焊熔覆的表面硬度要高,其原因在于激光熔覆层的高凝固速度以及在溶池中产生的强对流效应。因此,激光熔覆技术相对钨极氩弧焊熔覆在航空领域更具有应用价值。

相关资料表明,采用激光熔覆技术修复后的航空部件强度可达到原强度的90%以上,更重要的是缩短了修复时间,解决了重要装备连续可靠运行所必须解决的转动部件快速抢修难题。

激光熔覆在航空材料表面改性中的应用

1 激光熔覆高硬度、耐磨和耐高温涂层

为了防止在高速、高温、高压和腐蚀环境下工作的零部件因表面局部损坏而报废,提高零部件的使用寿命,世界各国都在致力于研发各种提高零件表面性能的技术[12]。传统的表面改性技术(如喷涂、喷镀、堆焊等)由于层间结合力差和受固态扩散差的限制,应用效果并不理想。大功率激光器和宽带扫描装置的出现,为材料表面改性提供了一种新的有效手段。激光熔覆是经济效益高的新型表面改性技术,它可以在廉价、低性能基材上制备出高性能的熔覆层,从而降低材料成本,节约贵重的稀有金属,提高金属零件的使用寿命[13]。

现代飞机制造中大量使用钛合金和铝合金,例如美国的第四代战机F-22机体钛合金的使用量已达到41%,而美国先进的V2500发动机钛合金的用量也达到了30%左右。钛及钛合金具有高比强度、优良的耐腐蚀、良好的耐高温性能,可以减轻机体重量、提高推重比。钛合金的缺点是硬度低、耐磨性差。纯钛的硬度为150~200HV,钛合金通常不超过350HV。在很多情况下,由于钛及钛合金表面会生成一层致密的氧化膜从而起到防腐蚀的作用,但是在氧化膜破裂、环境恶劣或发生缝隙腐蚀时,钛合金的耐腐蚀性能将大大降低。

2000年首飞的美国F-35战机上铝合金总用量在30%以上[14]。但是铝合金的强度不够高,使用时易生产塑性变形,特别是铝合金表面硬度低、耐磨性很差,在某种程度上制约了它的应用。

经过激光熔覆的钛合金表面显微硬度为800-3000HV。用激光熔覆技术对铝合金表面进行表面强化是解决铝合金表面耐磨性差、易塑性变形等问题的有效方法。与其他表面强化方法相比,该方法强化层与铝基体之间具有冶金结合特点,结合强度高。熔覆层的厚度达到1~3mm,组织非常细小,熔覆层的硬度高、耐磨性好,并具有较强的承载能力,从而避免了软基体与强化层之间应变不协调而产生裂纹。另外,在钛合金、铝合金表面熔覆高性能的陶瓷涂层,材料的耐磨性、耐高温性能等可以得到大幅度提高。

2 激光熔覆获得热障涂层

近年来,航空发动机燃气涡轮机向高流量比、高推重比、高进口温度的方向发展,燃烧室的燃气温度和燃气压力不断提高,例如军用飞机发动机涡轮前温度已达1800℃,燃烧室温度达到2000℃~2200℃,这样高的温度已超过现有高温合金的熔点。除了改进冷却技术外,在高温合金热端部件表面制备热障涂层(Thermal Bamer Coating,TBCs)也是很有效的手段,它可达到1700℃或更高的隔热效果,以满足高性能航空发动机降低温度梯度、热诱导应力和基体材料服役稳定性的要求[15-16]。20世纪70年代陶瓷热障涂层(TBCs)被成功用于J-75型燃气轮机叶片,世界各国投入巨资对其从材料到制备工艺展开了深入的研究。

20世纪80年代以来,在材料表面激光熔覆陶瓷层获得了致密的柱体晶组织,提高了应变容限;致密、均匀的激光重熔组织以及较低的气孔率可降低粘结层的氧化率,阻止腐蚀介质的渗透。可利用大功率激光器直接辐射陶瓷或金属粉末,将其熔化后在金属表面形成冶金结合,得到垂直于表面的柱状晶组织。由于熔覆层凝固的次序由表到里,表层组织相对细小,这样的结构有利于缓和热应力,例如用激光熔敷方法得到了8%(质量分数)氧化钇部分稳定氧化锆(YPSZ)热障涂层。也可将混合均匀的粉末置于基体上,利用大功率激光器辐射混合粉末,通过调节激光功率、光斑尺寸和扫描速度使粉末熔化良好、形成熔池,在此基础上进一步通过改变成分向熔池中不断加入合金粉末,重复上述过程,即可获得梯度涂层。

关键部件表面通过激光熔覆超耐磨抗蚀合金,可以在零部件表面不变形的情况下提高零部件的使用寿命、缩短制造周期。激光熔覆生产的热障涂层有良好的隔热效果,可以满足高性能航空发动机降低温度梯度、热诱导应力和基体材料服役稳定的要求。

结束语

激光熔覆技术对航空工业的发展有着举足轻重的作用。激光熔覆技术可以提高飞机零部件表面的硬度、耐磨性、耐腐蚀和抗疲劳等性能,提高材料的使用寿命,还可以用于磨损零部件的修复处理,节约加工成本。激光溶覆技术应用于飞机零部件的制造,可以减少工件制造工序、提高零部件质量。随着当今科技的进步,飞机整体性能将进一步提高,对材料的要求也越来越高。激光熔覆技术的进一步完善和发展对航空业的技术进步具有重要的作用,航空材料将随着激光熔覆技术的发展呈现崭新的面貌。

第四篇:应用于农业机械制造的激光技术

自从20世纪60年代激光问世以来,激光技术作为一门高新技术,几乎在各行各业都获得了重要的应用。激光加工技术是指各种以高能密度激光束为手段,通过激光束与材料之间的物理和化学等作用,实现改变物质形态或性质的先进材料的加工技术。激光加工涉及激光物理、材料、电子、机械和工程传热等多门学科,综合了激光、制造、控制和计算机应用等多项技术,已成为多学科交叉和多技术综合的一种典型的先进制造技术。激光加工具有非接触、无污染、热影响区域小、加工精度高以及可选区加工等特点,而且在特定的加工情况下是其他制造方法不可替代的。因此,激光技术在许多行业中都得到了重要的应用。下面山大易美科就为您分析一下,激光技术在农业机械上的应用。

农机产品的钣金加工件一般采用4-6mm钢板,钣金件种类多,并且更新快,传统的农机产品钣金加工件通常采用冲床方式,模具损耗大,通常一个大型的农机生产厂家用于模具存放的库房就近300平米,由此可见,部件的加工如果仍然停留在传统的方式,严重制约产品的快速更新换代与技术开发,而激光的柔性加工优势就体现出来了。

农业机械生产过程具有特殊性。零件多具有较复杂的形状,如耕地机械、整地机械和收获机械等。此外,复杂曲面较多,如犁体曲面、旋耕机旋刀、水泵叶轮和送料螺旋等,而且根据具体的生产情况不同,其形状还需相应调整。因此,利用传统的机械加工方法研制这种农业机械零件,不仅研制开发时间长,加工工艺复杂,而且很难达到理想的效果。运用先进的激光快速成型集成技术,不仅大大缩短新产品的开发周期,降低开发成本,而且制造质量也优于传统制造方法。

激光加工能借助现代的CAD/CAM软件,实现任何形式的板材切割,采用激光加工,不仅加工速度快,效率高,成本低,而且避免了模具更换,缩短了生产准备时间周期。易于实现连续加工,激光光束换位时间短,提高了生产效率。可进行多种工件交替安装。一个工件加工时,可卸下已完成的部件,并安装待加工工件,实现并行加工,减少安装时间,增加激光加工时间。

激光切割以其高速的、高精度、高质量、节能环保等特点,已经成为现代金属加工的技术发展方向。在激光加工应用中,激光切割占到32%的市场份额。激光切割与其他切割方法相比,最大的区别是它具有高速、高精度和高适应性的特点。同时还具有割逢小、热影响区小、切割面质量好、切割时无噪声、切缝边缘垂度直度好、切边光滑、切割过程容易实现自动化控制等优点。激光切割板材时,不需要模具,可以替代一些需要采用复杂大型模具的冲切加工方法,能大大缩短生产周期和降低成本。

第五篇:编译技术的发展和应用

据说第一个编译程序的出现是在20世纪50年代早期,很难讲出确切的时间,因为当初大量的实验和实现工作是由不同的小组独立完成的,多数早期的编译工作是将算术公式翻译成机器代码。用现在的标准来衡量,当时的编译程序能完成的工作十分初步,如只允许简单的单目运算,数据元素的命名方式有很多限制。然而它们奠定了对高级语言编译系统的研究和开发的基础。20世纪50年代中期出现了FORTRAN等一批高级语言,相应的一批编译系统开发成功。随着编译技术的发展和社会对编译程序需求的不断增长,20世纪50年代末有人开始研究编译程序的自动生成工具,提出并研制编译程序的编译程序。它的功能是以任一语言的词法规则、语法规则和语义解释出发,自动产生该语言的编译程序。目前很多自动生成工具已广泛使用,如词法分析程序的生成系统LEX,语法分析程序的生成系统YACC等。20世纪60年代起,不断有人使用自展技术来构造编译程序。自展的主要特征是用被编译的语言来书写该语言自身的编译程序。1971年,PASCAL的编译程序用自展技术生成后,其影响就越来越大。

随着并行技术和并行语言的发展,处理并行语言的并行编译技术,将串行程序转换成并行程序的自动并行编译技术也正在深入研究之中。 另外嵌入式应用迅速增长的需求,推动了交叉编译技术的发展.还有系统芯片设计方法和关键EDA技术的研究,也带动了专用语言VHDL等及其编译技术的不断深化。

编译实现方式的发展

-手工

机器语言

汇编

系统程序设计语言

-自动构造工具lex yacc gcc

推动编译技术发展的因素

语言范型(计算模式)

计算机体系结构

语言范型

-命令式(imperative language)

-应用式(applicative)

-基于规则的(rule-based)

-面向对象的(object-oriented)

-并行计算(parallel computing)

体系结构

-万诺曼机体系结构

-并行体系结构

-嵌入系统

编译程序执行环境

-批处理

-交互环境

-嵌入系统环境

为了提高软件开发的效率和保证质量,人们除了要在软件工程中对软件开发过程所要遵循的规范化或标准化外,还尽量使用先进的软件开发技术和相应的软件工具,而大部分软件工具的开发,常常要用到编译技术和方法。实际上编译程序本身也是一种软件开发工具。为了提高编程效率,缩短调试时间,软件工作人员研制了不少对源程序处理的工具。这些工具的开发不同程度地用到编译技术和方法。下面仅是一些

例子。

1、语言的结构化编辑器 结构化编辑器是引导用户在语言的语法制导下编制程序,能自动地提供关键字和与其匹配的关键字,如if后必须有then,begin和end的配对,左右括号的配对等,这样可以减少语法上的错误,可加快对源程序的调试,提高效率和质量。

2、语言程序的调试工具 调试是软件开发过程中一个重要环节,结构化编辑器只能解决语法错误的问题,而对一个已通过编译的程序来说,需进一步了解的是程序执行的结果与编程人员的意图是否一致,程序的执行是否实现预计的算法和功能。这种对算法的错误或程序没能反应算法的功能等错误就需用调试器来协助解决。调试器的功能愈强,实现愈复杂,但它必须与语法分析、语义处理有紧密联系。

3、语言程序测试工具 语言程序的测试工具有两种:静态分析器和动态测试器

静态分析器是对源程序进行静态地分析。它对源程序进行语法分析并制定相应表格,检查变量定值与引用的关系。如某变量未被赋值就被引用,或定值后未被引用,或多余的源代码等一些编译程序的语法分析发现不了的错误。动态测试工具是在源程序的适当位置插入某些信息,并用测试用例记录(显示语句或函数)程序运行时的实际路径。将运行结果与期望的结果进行比较分析,帮助编程人员查找问题。这种测试工具在国内已有开发,如FORTRAN语言和C语言的测试工具。

4、高级语言之间的转换工具 由于计算机硬件的不断更新换代,更新更好的程序设计语言的推出为提高计算机的使用效率提供了良好条件,然而一些已有的非常成熟的软件如何在新机器新语言情况下使用呢?为了减少重新编制程序所耗费的人力和时间,就要解决如何把一种高级语言转换成另一种高级语言,乃至汇编语言转换成高级语言的问题。这种转换工作要对被转换的语言进行词法和语法分析,只不过生成的目标语言是另一种高级语言而已。这与实现一个完整的编译程序相比工作量要少些。在国内已研制出C,PASCAL,FORTRAN到Ada的翻译器和IBM 4700汇编到C的转换器,其效果很好。近年来,由于JAVA语言的发展,国内外也已研制出不少其他语言到JAVA的转换系统,如c到JAVA的转换系统,cobol到JAVA

的转换系统等等。

编译实现方式的发展主要分一下五类:手工、机器语言、汇编、系统程序设计语言、自动构造工具lex yacc gcc。推动编译技术发展的因素主要包括:语言范型(计算模式)、计算机体系结构语言范型主要包括:命令式(imperative language) 、应用式(applicative) 、基于规则的(rule-based)、面向对象的(object-oriented)、并行计算(parallel computing)。

体系结构主要包括:万诺曼机体系结构、并行体系结构、嵌入系统。编译程序执行环境主要包括:批处理、交互环境、嵌入系统环境、并行编译技术、交叉编译。

编译程序在一个机器(宿主机)上运行,产生另一个机器(目标机)的汇编语言。嵌入式系统中的应用程序正是借助这样的编译程序生成。

目标处理器MIPSX是MIPS系列芯片的种,属于RISC体系结构,来源于斯坦福大学的MIPS计划。由于该系列CPU不是采用加州大学伯克利分校的RISC窗口技术而是采用消除流水线各级互锁的微处理器MIPS(MicroprocessorWithout Interlocking Pipeline Stage)技术,因此而得名。MIPS是将IBM公司对优化编译程序的研究和加州大学伯克利分校的大规模集成电路的思想结合起来的产品。

由于RISC指令集的简单和整齐,为了达到更好地利用计算机的性能,MIPS系列芯片中很好地应用了流水线策略。流水线是现代各类微处理器都采用的指令执 行技巧,即将若干条指令的取指、译码和执行过程部分重叠在流水线中同时执行。以前在CISC计算机中,由于指令多而复杂,处理每条指令的所需时间不固定, 当后面指令需要前条指令的结果时,往往造成指令互锁,因此无法实现流水线。而斯坦福大学的MIPS计划就是在编译的过程中,利用编译程序优化处理器的流水 线以求提高处理器流水线的效率。由于采用了硬件连线控制来执行数目不多的简单指令,而且还能重组软件流水线,这样就减少了硬件复杂性。 但是由于存在数据和指令转移的相关性,这会引起流水线的停顿,降低流水线整体的执行速率。为了调整这些相关性,又开发出了代码重组技术,其中一种是延迟转移(delayed branch),另一种叫延迟装入,提升了性能。

MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品被很多计算机公司采用生产各种工作站和计算机系统。R系 列遵循按比例提高性能设计技术,按不同工艺技术实现基本相同的体系结构,其适用范围从低端的嵌入式控制器、个人计算机到高端的超级小型机、服务器甚至大型 机和巨型机,而且系统软件和应用程序都是兼容的。MIPS公司在1986年推出82000处理器,1988年推出83000处理器,1991年推出第一款 64位商用微处理器84000。之后,又陆续推出88000(于1994年)、810000(于1996年)和812000(于1997年)等型号。 1999年,MIPS公司发布MIPS 32和MIPS 64架构标准。2000年,MIPS公司发布了针对MIPS 32 4Kc的新版本以及未来64位MIPS 64 20Kc处理器内核。

在整个R系列中82000/82010是最基础的原型;83000/83010是82000/82010的增强型产品;由于84000采用高 精度的CMOS工艺,因此其性能很高,用途很广;而86000/86010是ECL电路化的高速品种,但是由于86000/86010的功耗大,成本高, 所以其应用受到很大限制。但是MIPSX并不属于以上提到的CPU中的任何一种,它是由20世纪80年代后期由美国国防部高级研究项目署(DARPA)资 助的一个项目的成果。因此,基于MIPSX的交叉编译工具链研究虽然现有的GNU交叉编译工具链对MIPS公司R系列芯片的支持很好,但还是缺乏对 MIPSX的有效支持,所以还是需要进行移植。进行移植工作前,必须首先了解MIPSX的体系结构。经过实验室前几届师兄的分析,我们得知MIPSX的体 系结构与MIPS公司R系列芯片中的82000最为接近,当然它们在很多地方还是存在着差别,比如具体指令集的不同,比如MIPSX没有浮点操 作;MIPSX指令的基本操作码只占5位;MIPSX在跳转指令中的延时槽有两条等。

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables) 高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。

对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。

在20世纪40年代,由于冯·诺伊曼在存储-程序

编译原理实验程序

计算机方面的先锋作用,编写一串代码或程序已成必要,这样计算机就可以执行所需的计算。开始时,这些程序都是用机器语言 (machine language )编写的。机器语言就是表示机器实际操作的数字代码,例如:

C7 06 0000 0002 表示在IBM PC 上使用的Intel 8x86处理器将数字2移至地址0 0 0 0 (16进制)的指令。

但编写这样的代码是十分费时和乏味的,这种代码形式很快就被汇编语言(assembly language )代替了。在汇编语言中,都是以符号形式给出指令和存储地址的。例如,汇编语言指令 MOV X,2 就与前面的机器指令等价(假设符号存储地址X是0 0 0 0 )。汇编程序(assembler )将汇编语言的符号代码和存储地址翻译成与机器语言相对应的数字代码。

汇编语言大大提高了编程的速度和准确度,人们至今仍在使用着它,在编码需要极快的速度和极高的简洁程度时尤为如此。但是,汇编语言也有许多缺点:编写起来也不容易,阅读和理解很难;而且汇编语言的编写严格依赖于特定的机器,所以为一台计算机编写的代码在应用于另一台计算机时必须完全重写。

发展编程技术的下一个重要步骤就是以一个更类似于数学定义或自然语言的简洁形式来编写程序的操作,它应与任何机器都无关,而且也可由一个程序翻译为可执行的代码。例如,前面的汇编语言代码可以写成一个简洁的与机器无关的形式 x = 2。

在1954年至1957年期间,IBM的John Backus带领的一个研究小组对FORTRAN语言及其编译器的开发,使得上面的担忧不必要了。但是,由于当时处理中所涉及到的大多数程序设计语言的翻译并不为人所掌握,所以这个项目的成功也伴随着巨大的辛劳。几乎与此同时,人们也在开发着第一个编译器, Noam Chomsky开始了他的自然语言结构的研究。他的发现最终使得编译器结构异常简单,甚至还带有了一些自动化。Chomsky的研究导致了根据语言文法(grammar ,指定其结构的规则)的难易程度以及识别它们所需的算法来为语言分类。正如现在所称的-与乔姆斯基分类结构(Chomsky hierarchy )一样-包括了文法的4个层次:0型、1型、2型和3型文法,且其中的每一个都是其前者的专门化。2型(或上下文无关文法(context-free grammar ))被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。

分析问题( parsing problem ,用于限定上下文无关语言的识别的有效算法)的研究是在20世纪60年代和70年代,它相当完善地解决了这一问题, 现在它已是编译理论的一个标准部分。它们与乔姆斯基的3型文法相对应。对它们的研究与乔姆斯基的研究几乎同时开始,并且引出了表示程序设计语言的单词(或称为记号)的符号方式。 人们接着又深化了生成有效的目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其误称为优化技术(optimization technique ),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(code improvement technique )。

这些程序最初被称为编译程序-编译器,但更确切地应称为分析程序生成器 (parser generator ),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最著名的是 Yacc (yet another compiler- compiler),它是由Steve Johnson在1975年为Unix系统编写的。

类似地,有穷自动机的研究也发展了另一种称为扫描程序生成器 (scanner generator )的工具,Lex (与Yacc同时,由Mike Lesk为Unix系统开发的)是这其中的佼佼者。在20世纪70年代后期和80年代早期,大量的项目都关注于编译器其他部分的生成自动化,这其中就包括代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。

编译器设计最近的发展包括:首先,编译器包括了更为复杂的算法的应用程序,它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言(可允许此类分析)的发展结合在一起。其中典型的有用于函数语言编译的Hindle y - Milner类型检查的统一算法。

其次,编译器已越来越成为基于窗口的交互开发环境(interactive development environment,IDE )的一部 分,它包括了编辑器、链接程序、调试程序以及项目管理程序。这样的IDE的标准并没有多少, 但是已沿着这一方向对标准的窗口环境进行开发了。

编辑器(editor):编译器通常接受由任何生成标准文件(例如ASCII文件)的编辑器编写的源程序。现在, 编译器已与另一个编辑器和其他程序捆绑进一个交互的开发环境-IDE中。此时,尽管编辑器仍然生成标准文件,但会转向正被讨论的程序设计语言的格式或结构。这样的编辑器称为基于结构的(structure based ),且它早已包括了编译器的某些操作;因此,程序员就会在程序的编写时而不是在编译时就得知错误了。从编辑器中也可调用编译器以及与它共用的程序,这样程序员无需离开编辑器就可执行程序。

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 目前各个大学使用的教材机械工业出版社、国防工业出版社出版的《编译原理》。

大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决著名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间诞生不少名著的相关数论。

推荐参考书

虽然编译理论发展到今天,已经有了比较成熟的部分,但是作为一个大学生来说,要自己写出一个像TurbocC,Java那样的编译器来说还是太难了。不仅写编译器困难,学习编译原理这门课程也比较困难。

第一本书的原名叫《CompilersPrinciples,Techniques,andTools》,另外一个响亮的名字就是龙书。原因是这本书的封面上有条红色的龙,也因为獗臼樵诒嘁朐?砘?嘴域确实?忻?所以很多国外的学者都直接取名为龙书。最近机械工业出版社已经出版了此书的中文版,名字就叫《编译原理》。该书出的比较早,大概是在85或86年编写完成的,作者之一还是著名的贝尔实验室的科学家。里面讲解的核心编译原理至今都没有变过,所以一直到今天,它的价值都非凡。这本书最大的特点就是一开始就通过一个实际的小例子,把编译原理的大致内容罗列出来,让很多编译原理的初学者很快心里有了个底,也知道为什么会有这些理论,怎么运用这些理论。而这一点是我感觉国内的教材缺乏的东西,所以国内的教材都不是写给愿意自学的读者,总之让人看了半天,却不知道里面的东西有什么用。

第二本书的原名叫《ModernCompilerDesign》,中文名字叫做《现代编译程序设计》。该书由人民邮电出版社所出。此书比较关注的是编译原理的实践,书中给出了不少的实际程序代码,还有很多实际的编译技术问题等等。此书另外一个特点就是其现代而字。在传统的编译原理教材中,你是不可能看到如同Java中的垃圾回收等算法的。因为Java这样的解释执行语言是在近几年才流行起来的东西。如果你想深入学习编译原理的理论知识,那么你肯定得看前面那本龙书,如果你想自己动手做一个先进的编译器,那么你得看这本《现代编译程序设计》。

第三本书就是很多国内的编译原理学者都推荐的那本《编译原理及实践》。或许是这本书引入国内比较早吧,我记得我是在高中就买了这本书,不过也是在前段时间才把整本书看完。此书作为入门教程也的确是个不错的选择。书中给出的编译原理讲解也相当细致,虽然不如前面的龙书那么深入,但是很多地方都是点到为止,作为大学本科教学已经是十分深入了。该书的特点就是注重实践,不过感觉还不如前面那本《现代编译程序设计》的实践味道更重。此书的重点还是在原理上的实践,而非前面那本那样的技术实践。《编译原理及实践》在讲解编译原理的各个部分的同时,也在逐步实践一个现代的编译器TinyC.等你把整本书看完,差不多自己也可以写一个TinyC了。作者还对Lex和Yacc这两个常用的编译相关的工具进行了很详细的说明,这一点也是很难在国内的教材中看到的。

推荐了这三本教材,都有英文版和中文版的。很多英文好的同学只喜欢看原版的书,不我的感觉是这三本书的翻译都很不错,没有必要特别去买英文版的。理解理论的实质比理解表面的文字更为重要。

编译原理的实质

几乎每本编译原理的教材都是分成词法分析,语法分析(LL算法,递归下降算法,LR算法),语义分析,运行时环境,中间代码,代码生成,代码优化这些部分。其实现在很多编译原理的教材都是按照85,86出版的那本龙书来安排教学内容的,所以那本龙书的内容格式几乎成了现在编译原理教材的定式,包括国内的教材也是如此。一般来说,大学里面的本科教学是不可能把上面的所有部分都认真讲完的,而是比较偏重于前面几个部分。像代码优化那部分东西,就像个无底洞一样,如果要认真讲,就是单独开一个学期的课也不可能讲得清楚。所以,一般对于本科生,对词法分析和语法分析掌握要求就相对要高一点了。

词法分析相对来说比较简单。可能是词法分析程序本身实现起来很简单吧,很多没有学过编译原理的人也同样可以写出各种各样的词法分析程序。不过编译原理在讲解词法分析的时候,重点把正则表达式和自动机原理加了进来,然后以一种十分标准的方式来讲解词法分析程序的产生。这样的做法道理很明显,就是要让词法分析从程序上升到理论的地步。

语法分析部分就比较麻烦一点了。现在一般有两种语法分析算法,LL自顶向下算法和LR自底向上算法。LL算法还好说,到了LR算法的时候,困难就来了。很多自学编译原理的都是遇到LR算法的理解成问题后就放弃了自学。其实这些东西都是只要大家理解就可以了,又不是像词法分析那样非得自己写出来才算真正的会。像LR算法的语法分析器,一般都是用工具Yacc来生成,实践中完全没有比较自己来实现。对于LL算法中特殊的递归下降算法,因为其实践十分简单,那么就应该要求每个学生都能自己写。当然,现在也有不少好的LL算法的语法分析器,不过要是换在非C平台,比如Java,Delphi,你不能运用YACC工具了,那么你就只有自己来写语法分析器。

等学到词法分析和语法分析时候,你可能会出现这样的疑问:词法分析和语法分析到底有什么?就从编译器的角度来讲,编译器需要把程序员写的源程序转换成一种方便处理的数据结构(抽象语法树或语法树),那么这个转换的过程就是通过词法分析和语法分析的。其实词法分析并非一开始就被列入编译器的必备部分,只是我们为了简化语法分析的过程,就把词法分析这种繁琐的工作单独提取出来,就成了现在的词法分析部分。除了编译器部分,在其它地方,词法分析和语法分析也是有用的。比如我们在DOS,Unix,Linux下输入命令的时候,程序如何分析你输入的命令形式,这也是简单的应用。总之,这两部分的工作就是把不规则的文本信息转换成一种比较好分析好处理的数据结构。那么为什么编译原理的教程都最终把要分析的源分析转换成树这种数据结构呢?数据结构中有Stack,Line,List这么多数据结构,各自都有各自的特点。但是Tree这种结构有很强的递归性,也就是说我们可以把Tree的任何结点Node提取出来后,它依旧是一颗完整的Tree。这一点符合我们现在编译原理分析的形式语言,比如我们在函数里面使用函树,循环中使用循环,条件中使用条件等等,那么就可以很直观地表示在Tree这种数据结构上。同样,我们在执行形式语言的程序的时候也是如此的递归性。在编译原理后面的代码生成的部分,就会介绍一种堆栈式的中间代码,我们可以根据分析出来的抽象语法树,很容易,很机械地运用递归遍历抽象语法树就可以生成这种指令代码。而这种代码其实也被广泛运用在其它的解释型语言中。像现在流行的Java,.NET,其底层的字节码bytecode,可以说就是这中基于堆栈的指令代码的。

关于语义分析,语法制导翻译,类型检查等等部分,其实都是一种完善前面得到的抽象语法树的过程。比如说,我们写C语言程序的时候,都知道,如果把一个浮点数直接赋值给一个整数,就会出现类型不匹配,那么C语言的编译器是怎么知道的呢?就是通过这一步的类型检查。像C++语言这中支持多态函数的语言,这部分要处理的问题就更多更复杂了。大部编译原理的教材在这部分都是讲解一些比较好的处理策略而已。因为新的问题总是在发生,旧的办法不见得足够解决。

本来说,作为一个编译器,起作用的部分就是用户输入的源程序到最终的代码生成。但是在讲解最终代码生成的时候,又不得不讲解机器运行环境等内容。因为如果你不知道机器是怎么执行最终代码的,那么你当然无法知道如何生成合适的最终代码。这部分内容我自我感觉其意义甚至超过了编译原理本身。因为它会把一个计算机的程序的运行过程都通通排在你面前,你将来可能不会从事编译器的开发工作,但是只要是和计算机软件开发相关的领域,都会涉及到程序的执行过程。运行时环境的讲解会让你更清楚一个计算机程序是怎么存储,怎么装载,怎么执行的。关于部分的内容,我强烈建议大家看看龙书上的讲解,作者从最基本的存储组织,存储分配策略,非局部名字的访问,参数传递,符号表到动态存储分配(malloc,new)都作了十分详细的说明。这些东西都是我们编写平常程序的时候经常要做的事情,但是我们却少去探求其内部是如何完成。

关于中间代码生成,代码生成,代码优化部分的内容就实在不好说了。国内很多教材到了这部分都会很简单地走马观花讲过去,学生听了也只是作为了解,不知道如何运用。不过这部分内容的东西如果要认真讲,单独开一学期的课程都讲不完。在《编译原理及实践》的书上,对于这部分的讲解就恰到好处。作者主要讲解的还是一种以堆栈为基础的指令代码,十分通俗易懂,让人看了后,很容易模仿,自己下来后就可以写自己的代码生成。当然,对于其它代码生成技术,代码优化技术的讲解就十分简单了。如果要仔细研究代码生成技术,其实另外还有本叫做《AdvanceCompilerDesginandImplement》,那本书现在由机械工业出版社引进的,十分厚重,而且是英文原版。不过这本书我没有把它列为推荐书给大家,毕竟能把龙书的内容搞清楚,在中国已经就算很不错的高手了,到那个时候再看这本《AdvanceCompilerDesginandImplement》也不迟。代码优化部分在大学本科教学中还是一个不太重要的部分,就是算是实践过程中,相信大家也不太运用得到。毕竟,自己做的编译器能正确生成执行代码已经很不错了,还谈什么优化呢?

编译原理的课程毕竟还只是讲解原理的课程,不是专门的编译技术课程。这两门课程是有很大的区别的。编译技术更关注实际的编写编译器过程中运用到的技术,而原理的课

第一个编译程序的出现是在20世纪50年代早期,很难讲出确切的时间,因为当初大量的实验和实现工作是由不同的小组独立完成的,多数早期的编译工作是将算 术公式翻译成机器代码。用现在的标准来衡量,当时的编译程序能完成的工作十分初步,如只允许简单的单目运算,数据元素的命名方式有很多限制。然而它们奠定 了对高级语言编译系统的研究和开发的基础。20世纪50年代中期出现了FORTRAN等一批高级语言,相应的一批编译系统开发成功。随着编译技术的发展和 社会对编译程序需求的不断增长,20世纪50年代末有人开始研究编译程序的自动生成工具,提出并研制编译程序的编译程序。它的功能是以任一语言的词法规 则、语法规则和语义解释出发,自动产生该语言的编译程序。目前很多自动生成工具已广泛使用,如词法分析程序的生成系统LEX,语法分析程序的生成系统 YACC等。20世纪60年代起,不断有人使用自展技术来构造编译程序。自展的主要特征是用被编译的语言来书写该语言自身的编译程序。1971 年,PASCAL的编译程序用自展技术生成后,其影响就越来越大。

随着并行技术和并行语言的发展,处理并行语言的并行编译技术,将串行程序转换成并行程序的自动并行编译技术也正在深入研究之中。另外嵌入式应用迅速增 长的需求,推动了交叉编译技术的发展.还有系统芯片设计方法和关键EDA技术的研究,也带动了专用语言VHDL等及其编译技术的不断深化。 我国编译器研发工作起步并不算晚,早在60年代初期,董韫美院士和杨芙清院士就分别在中科院和北大领导研究组开发编译器,那时面向的高级语言是ALGOL和FORTRAN,目标机是国产机。

在改革开放前,由于国家需要,中科院、国防科大、江南计算所、北大等单位一直在研制国产计算机,包括大型机和高性能计算机(如向量机、并行机),相应的也在研制高级语言编译器。中科院计算所以董韫美院士领导的研究组先后开发了119机、109机的类 ALGOL语言编译器BCY。国防科大开发了向量编译器和向量识别器。

70年代中科院计算所张兆庆教授研究组(以后称ACTGroup)开始在国产机上研制FORTRAN语言编译器,先后参与了众多的院级和国家级科研攻关项目,主持开发了013,757,KJ8920等国产大型机系统中的FORTRAN语言编译器,所研制的编译器支持了数百万行应用软件的运行。

90年代以来ACTGroup承担科学院重大项目,国家攻关项目,863项目,以及国际合作项目,先后开发了共享内存多处理机的并行识别器,分布式内存多处理机的并行识别器, SIMD芯片和VLIW芯片的并行优化C编译器。将编译技术与图形学结合,ACTGroup还推出了集成化、可视化的并行编程环境。ACTGroup在先进编译技术和并行编程环境方面的研究工作获国内外专家高度评价,国际著名学者评价此研究组居编译领域的世界先进行列。

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:嫁给爱情的样子范文下一篇:接缝材料要求有范文