已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 计算化学是化学与计算机科学高度交叉、相互渗透的新兴学科。主要研究 内容包括:化学知识( 如化学表达式、化学反应及其机理和条件等) 的计算机 表示;化学反应机理的理论计算、分子模拟等。目前己有许多化学软件应用在 不同的计算化学领域,如g a u s s i a n 是从头计算使用最广泛的化学软件,是研究 诸如取代效应,反应机理,势能面等的有力工具;m o p a c 是使用最广泛的半经验 量化程序,用于研究气体,溶液和固体的化学特性等。这些软件的普遍应用大 大推动了计算化学的飞速发展。随着化学研究问题的复杂度越来越高,化学家 需要采用众多软件协同完成研究工作,这使得以网格技术为基础的化学研究环 境受到越来越多的重视。网格环境具有资源共享的特性,多种计算化学相关的 软件可以协作处理用户所提交的任务。 然而,不同的软件使用的脚本语言不同,这就导致化学家在使用这些资源 时,不得不掌握它们各自规定的语言,这在很大程度上限制了计算化学的发展, 成为各种计算化学在实际应用中的一个瓶颈问题。 u d l c ( u n i f i e d j o b d e s c r i p t i o nl a n g u a g eo nc h e m i c a l g r i d ) 研究目标是在已有化学软件 的脚本语言的基础上,借助形式语言学的方法,设计一种面向化学家的通用化 学作业描述语言,使其既具有化学软件脚本语言描述准确、执行效率高等优点, 又符合化学家的日常书写习惯,最大限度地满足计算化学相关研究工作的需 要。在语法实现的过程中,如何抽取现有化学软件脚本语言的共性成为实现 u d l c 最终目标至关重要的一个组成部分。因此作为前期准备工作,设计和开发 一种可以支持多种化学语言的编辑器成为必不可少的一部分。 本论文的研究目标是设计并实现一个支持多种化学脚本语言的编辑器。本 文在论述了计算化学特点并分析网格应用特点,探讨国内外化学脚本编辑器的 基础上,针对目前计算化学领域流行的脚本编辑器的特点,提出了化学脚本编 辑器的整体开发思路,并提供了化学脚本编辑器针对高斯脚本的具体实现。该 化学脚本编辑器不仅为化学家提供了语法检查功能,而且提供语法高亮、鼠标 双击、内容提示、文本装饰、文本悬浮帮助、标注悬浮帮助、快速帮助、超链 接、模版、脚本结构展示等辅助性功能。 本文的主要工作及研究成果如下: 1 通过调研已有的编辑器构架,提出了构建化学脚本编辑器的总体设计 思路。 2 通过深入调研各种化学软件所提供的编辑器特点,总结其共性,确定 了本化学脚本编辑器所应具备的功能。 3 通过研究e c l i p s e 插件开发机制、j f a c e 文本框架、d l t k 框架,结合 所提出的化学脚本编辑器整体架构,对化学脚本编辑器进行了设计实现。 关键字:u d l c 、d l t k 、a n t l r 、e c li p s e a bs t r a c t t h ec o m p u t a t i o n a lc h e m i s t r yi sa ni n t e r d i s c i p l i n a r ye m e r g i n gd i s c i p l i n e s b e t w e e nt h ec h e m i s t r ya n dt h ec o m p u t e rs c i e n c e t h en n i i lr e s e a r c hc o n t e n t s i n c l u d e :c h e m i c a lk n o w l e d g e ( s u c ha sc h e m i c a le x p r e s s i o na n dm e c h a n i s mo f c h e m i c a lr e a c t i o ma n dc o n d i t i o n s ,e t c ) i n d i c a t e db yt h ec o m p u t e r ;t h et h e o r e t i c a l c a l c u l a t i o no fc h e m i c a lr e a c t i o nm e c h a n i s m ;e l e m e n t ss i m u l a t i o n , e t c s of a r , t h e r e a r em a n ys u c c e s s f u l c h e m i s t r ys o f t w a r e i nd i f f e r e n ta r e a so fc o m p u t a t i o n a l c h e m i s t r y , s u c ha sg a u s s i a ni sf o c u so nt h ee n e r g yc a l c u l a t i o n , w h i l em o p a c i s u s e di ns t u d y i n gc h e m i c a lc h a r a c t e r i s t i co ft h eg a s ,t h es o l u t i o na n dt h es o l i d t h e w i d e s p r e a du s a g eo fc h e m i s t r ys o f t w a r eb r i n g sa b o u tt h er a p i dd e v e l o p m e n to f c h e m i c a ld i s c i p l i n e ss i g n i f i c a n t l y w i t ht h ec h e m i c a lt a s k si sg e t t i n gc o m p l i c a t e d , c h e m i s t sn e e dt ou s eal a r g en u m b e ro f s o t t w a r et of i n i s ht h ec o r r e s p o n d i n gr e s e a r c h w o r kw h i c hm a k e sag r i d b a s e dc h e m i c a lr e s e a r c he n v i r o n m e n ta t t r a c t i n gm u c h a t t e n t i o n t h eg r i de n v i r o n m e n th a st h ef e a t u r e so fr e s o u r c es h a r i n ga n dav a r i e t y o fc h e m i s t r ys o f t w a r er e l a t i n gt oc o m p u t a t i o n a lc h e m i s t r yc a ni n t e r o p e r a b i l i t y c o m p l e t eo n ec h e m i c a lt a s k h o w e v e r , t h es c r i p t i n gl a n g u a g eo f d i f f e r e n tc h e m i s t r ys o f t w a r ei sd i f f e r e n t ,s o t h ec h e m i s th a st og r a s pt h e i rp r e s c r i b e dl a n g u a g e ,w h i c hw o u mb et i m e c o n s u m i n g t h i sf a c tl i m i t st h ed e v e l o p m e n to fc h e m i s t r yt oag r e a te x t e n t , w h i c hb e c o m e sa b o t t l e n e c kp r o b l e mi np r a c t i c a la p p l i c a t i o no fc o m p u t a t i o n a lc h e m i s t r y t h eg o a l o fu d l c ( u n i f i e dj o b d e s c r i p t i o nl a n g u a g eo nc h e m i c a l - g r i d ) i st od e s i g na u n i f i e dj o b - d e s c r i p t i o nc h e m i s t r yl a n g u a g eo nt h eb a s i so ft h ee x i s t i n gc h e m i c a l s c r i p t i n gl a n g u a g e i tw o u l dh a v et h ef e a t u r eo fd e s c r i e da c c u r a t e l yl i k e so t h e r s c r 币t i n gl a n g u a g e sa n da l s oc a r r y i n go u tt h eh i g h e ra d v a n t a g eo fe f f i c i e n c y , m e e t i n gd e m a n d so fr e l e v a n tr e s e a r c hw o r ko fc h e m i s t r yt ot h em a x i m u me x t e n t h o wt oc ol l e c tt h e g e n e r a l i t yo ft h ee x i s t i n gc h e m i c a ls c r i p t i n gl a n g u a g e i s b e c o m i n ga ne s s e n t i a lc o m p o n e n to fu d l cf i n a lg o a l a s t h ep r e l i m i n a r y p r e p a r a t i o n , d e s i g n i n ga n dd e v e l o p i n g am u l t i - l i n g u i s t i cc h e m i c a ls c r i p te d i t o r i i i w o u l db ea ne s s e n t i a lp a r ti nt h ew h o l ed e s i g np r o c e s s i n g t h eg o a li nt h i sp a p e ri st od e s i g na n dr e a l i z eam u l t i - l i n g u i s t i cc h e m i c a l s c r i p te d i t o r , a r dt h ec o n c r e t ee m p h a s i sp o 缸i st h ed e s i g na n di m p l e m e n t a t i o no f t h ec h e m i c a ls c r i p te d i t o r sa u 斌嘶f u n c t i o n s f i r s t l y , w eg i v ea na n a l y s i so f t h e c t r r e n te d i t o r s c t n t m c t e r i s t i ci nd o m e s t i ca n di n t e m a t i o n a l ,t h e nw ep r o p o s et h e w h o l em e c h a n i s mo f d e s i g n i n gs u c ha c h e m i c a ls c r i p te d i t o r , a n dg i v eap a r t i c u l a r r e a l i z a t i o nf o rg a u s s i a na sa na p p l i c a t i o nd e r n o t h ea u x i l i a r yf u n c t i o n si n c l u d e s s y n t a xh i g h l i g h t , d o u b l ec l i c k ,c o m e ma s s i s t a n t , t e x td e c o r a t i o n ,t e x th o v e r , a n n o t a t i o nh o v e r , q u i c ka s s i s t a n t , h y p e r l i n k ,t e m p l a t e ,t e x tf o n m t t i n g ,t e x t f o l d i n ga n ds oo n t h eg r o u n d w o r kh e r e i na n dr e s e a r c hr e s u l t sa r ea sf o l l o w s : 1 p u t t i n gf o r w a r dt h eo v e r a l lm e n t a l i t yo fd e s i g n i n go fc h e m i c a ls c r i p te d i t o r t h r o u g hs t n w e y i n ga n ds t u d y i n gt h ee x i s t i n gf r a m e w o r ko fe d i t o r 2 c o n f i r m i n gt h ef u n c t i o mt h a tt h ec h e m i c a ls c r i p te d i t o rs h o u l dp o s s e s s t h r o u g hs u r v e y i n gt h ec h a r a c t e r i s t i c so ft h ee x i s t i n ge d i t o r so f f e r e db yc h e m i s t r y s o t t w a r ea n ds u m m i n gu pi t sg e n e r a l i t y 3 r e a l j z i n gt h ec h e m i c a ls c r i p te d i t o rc o m b i n i n gt h ef o r r m rf r a m e w o r k t h o u g hs t u d y i n gt h ee c l i p s ep h g - i nm e c h a n i s m , d l t kf i a m e w o r k a n dj f a c et e x t f r a m e w o r k k e y w o r d :u d l c ,d l t k ,g a u s s i a n , a n t l r , e c l i p s e ,p l u 争访s i v 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导 下独立进行研究所取得的成果。学位论文中凡引用他人已经发 表或未发表的成果,均已明确注明出处。除文中已经注明引用 的内容外,不包含任何其他个人或集体己经发表或撰写过的科 研成果。此外,对本文的研究成果做出重要贡献的个人和集体, 均在文中以明确方式标注。 论文作者签名:互丑垂童 日 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的作品,知识产权归 属兰州大学。本人熟知兰州大学有关保存、使用学位论文的规定, 同意学校保存或向国家有关部门、机构送交论文的纸质版和电子 版,允许论文被查阅和借阅。 论文作者签名:白丑! 堇导师签名: 化学脚本编辑器的设计与实现 第一章绪论 1 1 本课题研究背景 1 1 1 计算化学发展现状 计算机技术的快速发展和量子化学软件包的成熟为计算化学的发展提供 了良好的条件。计算化学是利用计算机技术,以实现化学信息的提取和处理, 揭示物质结构与性质的内涵及其变化规律。在整个社会都在向信息化迈进的今 天,如何实现计算化学科学研究的信息化,无疑是一个非常重要、值得大家深 思和探讨的问题。随着计算机硬件水平的飞速提高,理论化学获得了很大的进 步,化学家们根据计算结果成功解释了许多化学现象,纠正了实验中的一些错 误认识,获取了具有预期功能的新材料和高效药物,在理论研究和社会经济效 益方面均取得了巨大成功 1 。计算化学主要研究内容包括:化学知识的计算 机表示:化学反应机理的理论计算;分子模拟等。从高性能计算化学软件的发 展及应用现状来看,其具有起点高、用户广、需求大等特点 1 3 。如6 a u s s i a n 是从头计算使用最广泛的量子化学软件,是研究诸如取代效应、反应机理、势 能面和激发态能量的有力工具 2 ,2 4 ;m o p a c 是世界上最广泛使用的半经验量 化程序,用于研究气体,溶液和固体的化学特性等 3 。 人类社会的不断进步对科学研究也提出了越来越高的要求,现代计算化学 研究所面临的挑战同样是巨大的。一方面,化学研究的问题空前的复杂化。另 一方面,在今天这个信息爆炸的时代,科研的方法和环境也在不可避免地变化 着。随着化学研究问题的复杂度越来越高,化学家需要采用众多的软件协同完 成研究工作,这使得以网格技术为基础的化学研究环境受到越来越多的重视。 1 1 2 网格技术背景 网格技术出现于2 0 世纪9 0 年代,它的目的是想利用高速互联网把分布于 不同地理位置的计算机、数据库、存储器和软件等资源连成整体,为用户提供 体化信息服务。全球网格研究的领军人物i a nf o s t e r 给网格的定义是:“网 1 化学脚本编辑器的设计与实现 格是构筑在互联网上的一组新兴技术,它将高速互联网、高性能计算机、大型 数据库、传感器、远程设备等融为一体,为科技人员和普通老百姓提供更多的 资源、功能和交互性。互联网主要为人们提供电子邮件、网页浏览等通信功能, 而网格功能则更多更强,让人们透明地使用计算、存储等其他资源。” 4 。 i a nf o s t e r 同时给出了网格必须满足三个条件:( 1 ) 在非集中控制的环境中协 同使用资源;( 2 ) 使用标准的、开放的和通用的协议和接口;( 3 ) 提供非平凡 的服务 5 。对于网格所提供的计算能力,有四个基本的要求分别是:可靠性、 标准化、易访问性、价格低廉 6 。网格最终目的是要利用互联网把分散在不 同地理位置的电脑组织成一台“虚拟的超级计算机 ,这样组织起来的“虚拟 的超级计算机 有两个优势,一个是超强的数据处理能力;另一个是充分利用 的闲置资源。 目前已有很多流行的化学软件集成到网格环境中,如g a u s s i a n0 3 , g a m e s s 8 n w c h e m 9 ,m o l p r o 1 0 ,q c h e m 1 1 等流行的计算化学软件。这 些化学软件已较为成熟。 1 1 3 u d l c 简介 通常化学家在解决某个问题时,会将该问题的求解过程划分成若干步骤, 每个步骤需要不同的化学软件的操作或计算。然而很多计算化学软件之间彼此 孤立,互不关联。此外,不同的化学软件使用的脚本语言不同,这就导致化学 家在使用这些资源时,不得不掌握它们各自规定的语言。这在很大程度上限制 了软件的应用,成为各种计算化学软件在实际应用中的一个瓶颈问题。 u d l c ( u n i f l e dj o b d e s c r i p t i o nl a n g u a g eo nc h e m i c a l g r i d ) 研究目标是在已 有化学软件的脚本语言的基础上,借助形式语言学的方法,设计一种面向化学 家的通用化学作业描述语言。使其既具有化学软件脚本语言描述准确、执行效 率高等优点,又符合化学家的日常书写习惯,最大限度地满足计算化学相关研 究工作的需要 1 3 。在语法实现的过程中,如何抽取现有化学软件脚本语言的 共性成为实现u d l c 最终目标至关重要的一个组成部分。 每种化学脚本语言都对应其特殊的编辑器,从而提供语法检查以及相应一 些辅助性功能。在研究如何抽取现有语法的共性问题的同时,一个可以支持多 2 化学脚本编辑器的设计与实现 种语法检查的化学脚本编辑器也就成为在此过程中的一个中间关键性成果。因 此作为前期准备工作,设计和开发一种可以支持多种化学语言的编辑器成为必 不可少的一部分。 1 1 4 化学脚本编辑器 化学脚本编辑器作为u d l c 项目前期一项准备工作,设计目标是为目前网 格环境中流行的计算化学软件输入文件脚本提供丰富的脚本编辑功能并提供 语法检查。目前,在利用化学软件进行化学任务计算时,一方面各种不同的化 学软件提供功能强大的可视化界面,从而可以方便化学家对化学任务的表达有 一个直观的认识;另一方面,化学软件同时提供相应的脚本编辑器,使得化学 家可以通过编写相应化学脚本高效地完成相关的计算。在网格环境下,用户可 以通过编辑器将编辑好的脚本文件提交到网格平台上。然后由网格平台上的作 业调度软件将相应的脚本提交到网格中己集成的相应化学软件( 如:g a u s s i a n 、 m o p a c 等) 的节点之上进行处理,作业处理结果将返回到相应的用户空间。此 后用户可以直接下载运行结果,或者对相应的脚本文件做进一步的操作。当化 学家本地编辑具体的化学输入文件脚本时,本地往往没有安装相应的化学软 件,从而也就没有相应的脚本编辑器来检查化学家所编写的脚本正确与否,而 脚本文件中所包含的错误不仅会导致网格环境中化学资源的浪费,更会产生不 可预知的错误结果。因此脚本的语法检查工作是编写脚本输入文件过程中一个 必不可少的环节。如果借助网格中所集成的化学软件所提供的相应脚本编辑器 来完成脚本文件检查工作,这个过程往往需要重复进行多次,这不仅是一个相 当繁琐的过程,更制约着大型化学计算任务协同完成的整体时间。 针对上述计算化学应用需求,本文提出了一种针对多种化学脚本文件编辑 的化学脚本编辑器统一开发模式,它是国家科学自然基金委支持的面上项目 一u d l c 的前期准备工作。化学脚本编辑器不仅简单、易于使用,并且对硬件环 境的要求较低,可以直接安装在本地。它使得化学家可以高效方便地建立、编 辑、提交化学任务。化学脚本编辑器除提供相应的脚本检查功能,还为脚本编 辑过程提供了大量的辅助性功能,为化学家高效利用网格中所集成的化学资源 提供关键性功能接口。 化学脚本编辑器的设计与实现 1 2 国内外研究现状 目前,计算化学网格平台的研究在国际上得到了越来越多的重视。 c c g ( c o m p u t a t i o n a lc h e m i s t r yg r i d ) 是一个虚拟的组织,它通过分布式服 务、直观的接口和可衡量的服务质量为计算化学提供了进入高性能计算资源的 方式。c c g 的客户端g r i d c h e m 是一个j a v a 桌面应用程序,提供相应接口来集 成新的硬件,软件和中间件资源,通过这些资源可以借助网格技术来解决量子 化学问题。我们通过g r i d c h e m 编辑高斯脚本并提交化学作业 1 4 。 g a b e d i t 1 6 是一个图形化编辑器并且提供多种化学软件输入文件脚本 编辑功能,如g a m e s s u s ,g a u s s i a n ,m o l c a s ,m o l p r o ,m p q c ,o p e n m o p a c , p c g a m e s sa n dq c h e m 。它可以显示多种不同的计算结果,支持多种分子文件 格式,建立分子的三维结构,并导出到各种格式的图形以及动画。 主要特点包括: g a b e d it 可以创建g a m e s s ( u s ) ,g a u s s i a n ,m o l c a s ,m o l p r o ,m p q c , o p e n m o p a c ,p c g a m e s s 和o - c h e m 的输入文件 g a b e d i t 可以显示了g a m e s s ( u s ) ,g a u s s i a n ,m o l c a s ,m o l p r o ,m p q c , o p e n m o p a c ,p c g a m e s s 和o - c h e m 软件的计算结果,其中包括:从电子 密度、静电势、核磁共振屏蔽密度和其他一些特征的表面,可以显示紫 外,红外和拉曼光谱计算结果,保存图片的图像到j p e g ,p n g ,p p m 和p s 格式,自动生成了一系列的照片动画( 振动,几何收敛,旋转, 轮廓等) 等等。 e c c e ( e x t e n s i b l ec o m p u t a t i o n a lc h e m i s t r ye n v i r o n m e n t ) 是一个面向 网格服务和w e b 架构的问题求解环境,其中包含的c a l c u l a t i o ne d i t o r 可以支 持多种输入文件格式,而不用关心具体输入文件的语法规则。你可以通过定义 参数来控制作业的运行过程以及改变作业的计算类型。为了适应不同的化学系 统,大多数计算化学软件提供输入参数来编辑化学脚本文件。对于输入文件, 这里并没有一套固定的命令格式,因此尽管这些程序支持一套类似的方法,但 掌握其中所包含的语法也是一件比较困难的工作。因此,用户通常要坚持用熟 悉的应用程序,即使他不是最有效的一种计算方法。目前e c c ec a l c u l a t i o n 4 化学脚本编辑器的设计与实现 e d i t o r 支持对n w c h e m4 0 ,g a u s s i a n0 3 ,g a u s s i a n9 8 ,和a r n i c ac o d e s 代码 的编辑 1 7 】。 计算化学e - s c i e n c e 研究与示范应用项目 2 9 是国内第一个计算化学网格 应用项目,它由兰州大学、清华大学、巴黎第七大学共同承担的国家自然科学 基金委支持的重大研究计划“以网络为基础的科学活动环境研究项目。计算 化学e - s c i e n c e 研究与示范应用项目的子项目高斯脚本编辑器s c r i p t e d i t o r 既可以作为独立的应用程序运行,又能作为功能插件集成到网格应用前端系统 中。s c r i p t e d i t o r 是网格环境下的r c p 应用e s o c 的一个插件。它主要用来编 辑和建立高斯脚本的文档。它不是g a u s s i a n 0 3 的另一个实现,而是作为一个 强大的高斯文档编辑工具。其目的是设计一个强大用户编辑高斯脚本源文档的 便利工具 1 9 。 上述国内外项目已经在如何有效地编辑化学脚本语言及化学家脚本编辑器 所需的辅助性功能等方面开展了大量可借鉴的工作。本项目参考上述化学脚本 编辑器的设计思想,并在“计算化学e - s c i e n c e 研究与示范应用”项目高斯脚 本编辑器已有成果的基础上,设计出化学网格通用作业描述语言所需的支持多 种化学脚本语言的化学脚本编辑器。鉴于化学脚本编辑器设计的初衷是为抽取 网格环境中所动态集成的化学脚本语言共性做铺垫,我们结合网格环境动态性 特点,采用d l t k 统一开发框架,将编辑器的语法解析核心和辅助性功能的实 现相分离,从而达到不仅可以对多种化学输入脚本语法检查的支持,还可以提 供对网格平台中新集成的化学软件快速支持的效果。 1 3 化学脚本编辑器的特点 化学脚本编辑器提供功能强大的文本编辑功能,具有代码提示、语法检查、 错误标识、大纲视图、语法着色、代码折叠等便利功能。这在很大程度上方便 了化学家相关的脚本编辑工作,进一步提高了脚本编辑的工作效率。对网格化 共享的软硬件设备而言,化学脚本编辑环境使得化学家可以在本地没有化学应 用软件的情况下,通过创建相应化学脚本程序工程,进行脚本语法检查,然后i 向后台网格提交编辑后的脚本文件并执行。作为一种网格平台的客户端应用, 它为用户高效的利用网格资源提供了便利的接口。 化学脚本编辑器的设计与实现 结合当前流行的技术,该应用拥有如下较为突出的特点: 1 、强大的前台辅助性功能。用户在编辑脚本的过程中,前台相关的辅助 性功能可以帮助用户快速完成相应的工作。如代码提示功能可以帮助用户键入 脚本文件所涉及的关键字而无需记忆;语法高亮则使得文档内容易读性增强等 等。 2 、语法检查功能。该应用嵌入了脚本语言的分析器,可以在用户编写化 学脚本的过程中,进行实时检查语法错误、提示详细出错信息等功能,从而有 效的减少了输入过程中错误的产生,大大的促进了脚本代码编辑工作效率的提 升。, 3 、快速整合新增化学脚本语言。作为应用在网格平台的一款支持多语言 的化学脚本编辑器,采用统一的开发框架及设计模式,可以快速整合对网格平 台中新增化学软件脚本语言的支持,从而很好的符合了网格环境资源动态性的 特点。 1 4 本文组织结构 本论文是按照作者承担的主要研究和开发工作来安排的,共分为五章,每 章的主要内容如下所示: 第1 章绪论 本章简要介绍了计算化学发展现状,相应的技术背景,国内外研究现状, 研究的意义以及本文组织结构。 第2 章相关技术简介 本章主要介绍了开发化学脚本编辑器所设计的关键技术及相关的设计理 念。 第3 章化学脚本编辑器的整体设计 本章主要介绍了类似化学脚本编辑器所针对的特殊需求,及应该实现的功 能,并给出化学脚本编辑器的整体设计框架。 第4 章化学脚本编辑器功能的详细实现 本章主要介绍了化学脚本编辑器内部实现核心构架以及所采用的核心设计 原则,并对其内部两层结构进行了详细的阐述。 6 化学脚本编辑器的设计与实现 容。 第5 章结束语 本章总结了全文的主要工作,并展望了后续工作,指出了进一步的研究内 7 化学脚本编辑器的设计与实现 第二章相关技术简介 化学脚本编辑器是e c l i p s e 的一个功能插件。本章首先介绍e c l i p s e 集成开 发环境,然后通过软件框架概述,对j f a c et e x tf r a m e w o r k 和d l t k ( d y n a m i e l a n g u a g e st o o l k i t ) 一动态语言工具包进行详细的介绍。鉴于j f a c e t e x t f r a m e w o r k 的复杂性及网格所具备的特点,本文采用d l t k 为基本框架进行开 发。d l t k 本身是构建在j f a c et e x tf r a m e w o r k 的基础之上的。 2 1e c l i p s e 集成开发环境 e c l i p s e 最有魅力的地方就是它的插件体系结构。e c l i p s e 就其本身而言,它 只是一个框架和一组服务,用于通过插件组件构建开发环境。由于有了插件, e c l i p s e 系统的核心部分在启动的时候要完成的工作十分简单:启动平台的基础 部分和查找系统的插件。e c l i p s e 还包括插件开发环境( p l 峙证d e v e l o p m e n t e n v i r o r m a e n t ,p d e ) ,这个组件主要针对希望扩展e c l i p s e 的软件开发人员, 因为它允许他们构建与e c l i p s e 环境无缝集成的工具。 e c l i p s e 平台整体框架由五部分组成:w o r k b e n c h ,w o r k s p a c e ,h e l p ,t e a m 和p l a t f o r mr u n t i m e 。其中w o r k b e n c h 中又包含s w t 和j f a c e 两个组件。具体 的e c l i p s e 的体系结构如图2 1 所示。 h e l pu p d a t e 强x t熙| e 鳓r ed e b u gs e a r c h t e a m c v s l | i d ep e r s o n a l i t y g e n e r i cw o d ( b e n c h r e s o u r c e s j f a c e r u n b m e s w to s g i 图2 - i e c l i p s e 平台体系结构简化图【2 0 】 8 化学脚本编辑器的设计与实现 e c l i p s e 的两个主要组件是名为s w t 的图形库和与其匹配的名为j f a c e 的实用程序框架。s w t 是e c l i p s e 组织为了开发e c l i p s ei d e 环境所编写的一组 底层图形界面a p i 。s w t 是e c l i p s e 中的窗口小部件工具箱,它是一组窗口组 件的实现,并能底层操作系统图形用户界面平台紧密集成。j f a e e 用来在s w t 库顶部提供常见的应用程序用户界面功能。j f a c e 对s w t 进行了扩展,把用户 熟悉的一些组件进行了封装,在开发中用户可以尽可能地用j f a c e 组件来开发 自己的应用。s w t j f a c e 是e c l i s p e 的基础,e c l i p s e 的w o r k b e m h 就是建立在 s w w 印a c e 之e 的。 2 2 软件框架 软件框架是软件开发过程中提取特定领域软件的共性部分形成的体系结 构。框架是一个应用程序的半成品。框架提供了可在应用程序之间共享的可覆 用的公共结构。开发者把框架融入他们自己的应用程序并加以扩展,以满足他 们特定的需要。应用框架强调的是软件的设计重用性和系统的可扩充性,以缩 短大型应用软件系统的开发周期,提高开发质量。本文中主要应用了两种框架: j f a c et e x tf r a m e w o r k 和d 啪( 。 2 2 1j f a e et e x tf r a m e w o r k j f a c et e x tf r a m e w o r k 【3 0 是一个u i 工具类集,用于处理许多通用l 编程 任务。j f a c e 包含常用i j i 工具组件如:图像和字体记录、文本、对话框、设置 和向导框架,以及长时操作进度报告( 进度条等) 。j f a c e 提供一些类和接口, 用来处理s w t 对动态用户界面相关联的常见任务。j f a c e 所提供的组件所体现 的g u i 如向导、定制页、动作、对话框。j f a c et e ) ( tf r a m e w o r k 本身是一个较 为复杂的框架。 2 2 2d l t k o l t k 2 2 主要是针对动态语言开发环境所设计的一个工具,由一套可扩展 的框架构成,目的是为了减少构建动态语言的开发环境的复杂性。d l t k 是对 9 化学脚本编辑器的设计与实现 1 f a c e t e x tir a m e w o r k 的封装,它将相关的功能封装成相应的扩展点然后开 发者可以通过实现相应的扩展点增加所需要的辅助性功能。此外,d l t k 本身 为t c l ,r u b y , 和p y t h o n 提供了成熟的开发环境供用户体验。d l t k 的整体架构 如图2 - 2 所示: ss t a m d e t ! 一 榴 ”d o h h h m r t y p e i m 帆g 胛c k 伯t q 一m h m _ n 日w n _ 帅i 口帕“州 v w w h 咕 w , a m m a 一o n _ 脚 图2 - 2 :d l t k 的核心框架 2 2 化学脚本编辑器的设计与实现 第三章化学脚本编辑器的整体设计 化学脚本编辑器主要借鉴了集成开发环境所具备的基本功能,并针对其在 网格应用的特殊性,相应增加了一些具体的辅助性功能。本章将详细阐述化学 脚本编辑器的整体设计框架,以及为符合实际要求所需要具备的功能。 3 1 需求分析 3 1 1 集成开发环境 集成开发环境( i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t ,简称i d e ) 2 82 9 , 也叫做集成开发环境和集成调试环境,是集文件编辑处理、编译连接、项目管 理、窗口和工具引用、调试于一体的系统开发平台。这些功能之间相互协作, 帮助程序开发人员方便地完成程序的开发工作,大大降低了开发程序的成本。 i d e s 主要包括将源程序作为输入,翻译产生目标语言等价程序的编译器,脚本 编辑的编辑器,用于调试其它程序的计算机程序的调试器,用来组织、管理项 目,对项目进行版本控制的项目管理以及与显示相关的u i ,包括语法高亮、内 容提要等等。化学脚本编辑器在借鉴集成开发环境的基本功能的基础上,对某 些特定功能进行了相应的扩充。 3 1 2 化学脚本编辑器画面组成 通过借鉴集成开发环境所提供的功能,化学脚本编辑器主要包含四个窗口, 分别是脚本浏览窗口、编辑窗口、大纲视图窗口、错误窗口。 脚本浏览窗口: 我们可以在脚本浏览窗口中创建相应的化学工程,并可以浏览项目文件夹 中的所有文件,支持复制,粘贴,转移,导入导出等常规操作。当文件被加入 到项目中后,在脚本浏览窗口双击文件,化学脚本编辑器会试图打开这个文件。 化学脚本编辑器的设计与实现 其中内嵌的编辑器能缺省打开堆g j r 文件,即g a u s s i a n 文件。如果是其它类型 的文件,化学脚本编辑器会调用指定的编辑器打开,如o u t 后缀的文件对应的 是m o p a c 脚本文件。 编辑窗口: 所有文件的显示和编辑都包含在编辑窗口里。缺省情况下打开的多个文件 是以标签( t a g t a b l e ) 方式在周一个窗口中排列,可以用拖动方式将这些文件 排列成各种布局。方法是拖动某一个文件的标签( t a g ) 到编辑窗口的边框, 当光标有相应的变化时再释放。此外,当编辑化学脚本文件的过程中,用户可 以手动使用一些辅助性的功能。编辑器可以接受多种化学脚本语言的源程序, 并依据其具体格式展示其内部结构。此外,用户可以在化学输入脚本的编写过 程中而不是在编译时就得知输入文件的语法错误。 大纲视图: 大纲视图显示当前在编辑窗口所打开文件的概要结构。例如,如果编辑器 中打开了一个g j f 文件时,大纲视图窗口中就会展示高斯脚本文件的结构。 如果编辑器中数据太多无法在一屏上显示时,编辑器就必须给o u t li n e 视图提 供一个o u t l i n e 模型,生成一个结构化的o u t l i n e 。当在o u t l i n e 中选中相应 节点时,它所对应的部分会在编辑器中被选中并且显示。并且在o u t l i n e 视图 中还包含创建操作的上下文菜单。 错误窗口 在用户进行源代码的编辑过程中,后台自动对编辑代码进行语法检查,脚 本文件中的出错信息在错误窗口中显示,包括发生该错误文件、所在代码行以 及错误描述等等。出错的地方将由红色标识符标出,当我们双击错误视图中相 应的错误时,可以直接定位到相应的错误出处,方便用户对相应的代码进行调 试: 在化学脚本编辑器中,这四个窗口是可以交互的。每个编辑器和大纲视图 1 2 化学脚本编辑器的设计与实现 窗口间存在特殊的联系。编辑器实现了对o u t l i n e 视图的监听,以使得当 o u t l i n e 视图结构中所选节点变化时,在编辑器中对该部分所对应的代码进行 定位。并且当正在编辑的化学脚本文件发生改变时,o u t l i n e 以及脚本浏览窗 口中对应的文档结构图也发生相应的变化。此外,如果正在编辑的化学脚本文 件包含错误或者警告时,相关的错误信息除在错误视图中展示外,在脚本浏览 窗口,o u t l i n e 视图中均有相应显示。对于错误和警告应该分别在项目上添加 错误和警告图标。 3 1 3 化学脚本编辑器应实现的功能 作为网格平台中所集成的常用计算化学应用软件脚本编辑环境,化学脚本 编辑器主要是用来建立、编辑和提交相应化学软件脚本文档。通过对已有的i d e 相关特点进行分析并结合网格平台特点,我们的化学脚本编辑器应具备的功能 如下所示: 网格相关: 1 自动连接到后台网格平台。通过化学脚本编辑器可以直接与网格平 台相连接。 2 动态选择用户工作空间。用户空间可以在本地,也可以在网格平台 上单独开辟出一个区域作为相应用户的工作空间。 3 从网格平台下载相关的脚本文件。提交到网格平台上的相应化学脚 本文件,可以通过化学脚本编辑器动态从网格平台上下载到本地, 进行相应的修改操作。 语法检查相关: 4 在源代码文件修改过程中,对编辑器的内容进行实时的语法检查。 5 在源代码编辑的过程中,如果实时编辑的语法出现错误,将在错误 视图中提示与错误相关的信息。 6 在判断用户输入产生了错误时,编辑器中相应的出错行以特定的符 号、图形将错误标识出来,帮助用户改正错误。 7 显示当前编辑器中源代码的结构,并对编辑器中的内容进行定位。 编辑相关: 化学脚本编辑器的设计与实现 8 支持普通快捷键及其操作。比如复制( c t r l + c ) 、粘贴( c t r l + v ) 、新 建( c t r l + n ) 、保存( c t r l + s ) 、撤消、重做等。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年静态模型市场的调查报告
- 2026年中国弹簧拉力机行业市场前景预测及投资价值评估分析报告
- 2026年中国石蜡包埋机行业市场规模及投资前景预测分析报告
- 2026年数控折弯机行业报告
- 2026年中国多段离心泵行业市场前景预测及投资价值评估分析报告
- 2026年中国教学模型教具行业市场行情动态及未来趋势研判报告
- 聚氨酯保温材料技术规范指南
- 2023年全国高考语文试题及解析
- 制造企业ISO认证流程说明
- 中层管理者沟通协调能力提升课件
- 2025年三峡集团招聘笔试参考题库含答案解析
- 医院医院信息化规划与建设方案设计
- 《敏感性皮肤理论》课件
- 广东省珠海市金湾区2023-2024学年七年级上学期期末数学试题
- 设备试运行报告-范文
- 【MOOC】国际商务-暨南大学 中国大学慕课MOOC答案
- 高职美育教程 课件 专题六 科技美
- 2024年国考申论真题(行政执法卷)及参考答案
- 医院用病床相关项目实施方案
- 水厂装修合同范本
- 管理素质与能力的五项修炼-跟我学“管理学”学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论