利用混编技术对土木工程计算程序的改造
详细内容
摘 要:从FORTRAN、C#语言和OpenGL图形库各自的特点出发,提出了将三种技术通过动态链接库DLL(Dynamic Link Library)技术混合在一起,实现对传统土木工程计算程序的交互式界面化改造。并通过改造现有的GSAP(中南大学郭向荣教授开发的桥梁结构分析专用程序) 计算程序FORTRAN源代码的实例阐述了这种开发方法的过程。实例证明,利用这种混合编程的技术可以充分发挥各种语言或标准的优势,使得现有的经典FORTRAN计算程序源码可以焕发出新的活力,既可以减轻土木工程计算程序的开发的工作量,又能够大大提高土木工程专业软件开发的效率。
长期以来土木工程相关的计算程序很多都是用Fortran编制的。虽然Fortran语言在数值计算领域里的种种优势至今为其它语言所不可替代,但其不足之处随着软件工程的发展也越发的凸显。例如难以在W in- dows环境下开发高效、友好的交互界面功能,图形显示功能匮乏和操作不便等[1];C#是一门基于·平台的新型面向对象开发语言。它几乎集中了所有关于软件开发和软件工程研究的最新成果,如面向对象、类型安全等[2]。
与其它语言相比,C#的语法更加简洁,调试更加容易,且应用程序开发更加快速;OpenGL是一种三维图形库,作为硬件和图形的软件接口,与硬件无关,使用简单,执行效率高,它已被广泛地应用于图形与动画绘制、虚拟现实技术和计算机可视化等领域。它实际上是一个三维图形和模型库,是一个API,可以在不同的平台上加以实现[3]。利用它提供的基本图形操作函数可以实现几何建模、图形变换、渲染、光照和材质、反走样、混合、雾化、位图和图像、纹理映射、交互操作以及动画制作等功能。因此可以利用混合编程的思路,在继承传统的用Fortran语言编制的土木工程计算程序源代码的基础上,结合利用C#开发程序交互界面的优势和OpenGL作图形处理的便利对原有的土木工程计算程序进行改造。同时,在改造后的程序与其它软件的数据交换问题上除了采用ASCII码的数据结果文件外,还可以利用 AutoCAD提供的DXF技术进行图形的数据交换。下面分别对这一混编思路中的各个环节进行介绍。
用C#开发程序的交互界面形成土木工程计算软件的骨架,再把以前的Fortran源代码编译成动态链接库(DLL)文件作为计算内核供C#调用,即可实现这两种高级语言间的混编。要借助编译器通过调用DLL文件使混合编程获得成功,必须全面一致地协调调用程序与被调用程序之间各语言所使用的调用约定。这些约定包括:堆栈管理约定、命名约定、参数传递约定等[3]。有关这些方面的知识在相关文献上已经做了比较详细的介绍[1] [4]。但在对已有Fortran源代码的混编改造过程中还必须注意以下两个问题,即两种语言间字符串参数的协调和DLL文件内部提示信息的输出。