多语言编程技术在软件开发中的应用分析

来源 :电脑迷 | 被引量 : 0次 | 上传用户:hxs038
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要 随着科学技术的不断进步与发展,编程技术在软件开发中发挥着越来越重要的作用,在原来的软件开发过程中,通常采用FORTRAN语言来进行软件所需的程序的编制,但是随着科学技术以及计算机技术的快速发展,VC++语言的适用范围不断扩大,在自身不断发展的同时也为软件开发奠定了坚实的技术基础。在综合运用多语言编程技术的基础上,也把软件开发推向了一个新的水准。当前对于多语言编程技术在软件开发中的应用进行探讨和研究具有重要的现实意义。本文将首先介绍动态链接库技术,再对多语言编程技术进行介绍,希望给读者一定的启发。
  关键词 多语言编程技术 软件开发 应用
  中图分类号:TP312 文献标识码:A
  1 动态链接库技术
  动态链接库的英文翻译是Dynamic Link Library,因此动态链接库又叫DLL,在DLL中通常可以包含很多的代码和数据,而这些代码和数据可以同时被多个程序都是识别并使用,从而实现了各个编程技术的动态链接。DLL作为一个不可执行文件,同时提供了一个对普通程序的代码进行识别和调用的函数,使得多个程序可以在相同的时间段内访问和使用同一个代码。DDL文件一般都会带有.dll这样的扩展名,因此也可将DLL作为一种磁盘文件来看待,在这个文件中包含了所需的全部数据、服务函数以及其他资源,DLL模块也正是通过这些函数和数据资源实现动态链接以及提供服务。在动态链接库进行动态链接之前必须与相应的声明函数或是引入函数作为引导,否则就不可以实现程序的动态链接。比如在DLL代码中必须有像__declspec(dllexport) int MyFunction(int n);这样的导出函数以及像__declspec(dllimport) int MyFuncition(int n);这样的输入声明函数,当然仅仅拥有输入和输出两种声明函数是不能将其他程序连接到DLL文件上的,还需要其他的调用函数的配合。
  2 多语言编程技术
  在软件开发设计的过程中,如果仅仅使用一种或是很少的编程程序是不能将软件的实际功能完全实现的,因此多语言编程技术满足了软件设计多种编程语言的需要,也为多种编写代码实现链接提供了可能性。但是如果多种编程语言混合在一起,若想保证原来各种编程的运行速度以及整体的运行效率,对于多语言编程技术的首要要求就是具有一定的调用规则,主要包括命名规则、堆栈的使用等等,这些都是多语言编程得以实现的基础,也可以说是关键性的问题。以下将对多语言混合编程的函数调用规则以及数据结构作简要的分析。
  2.1 调用规则
  不同的语言编程,其程序类型也不尽相同,因此多语言编程技术的调用规则还需要满足不同的程序类型需求,比如C++语言常用的调用函数是FUNCTION函数。函数的调用规则决定了函数下一阶段的运行,它直接影响变量的传递和接受,还会对变量的顺序产生一定的影响。因此在一些类型的语言中,需要设定特定的函数进行转换的声明。另外调用规则还和函数的数据传输以及数据的传输形式具有一定的关联性,比如传递的是一个数值还是地址都和调用规则有联系。
  2.2 字符转换
  一般情况下,在C语言中字符出现的形式主要以指针为主,另外在C语言中的字符传递方式和地址的传递方式相同,但这并不包括字符长度的传递。而一般在C语言中都以字符‘\0’作为每一行的结束符,但是在一些其他的编程语言中,有的语言是直接不具有结束字符,比如在FORTRAN语言中就没有结束符,因此要想实现C和FORTRAN之间字符的传递,可以直接将字符转化为C字符或者是直接编写相应的程序接收字符,后者也可以实现在进行字符转换和传递的同时进行字符长度变量的传递。
  3 多语言编程的实现
  3.1 在C中调用FORTRAN的动态链接库
  在DLL文件中的函数会根据相对应的符号名或是整数值进行函数表的归纳,当DLL引出一个符号时必须使用相对应的符号进行引出,将这些符号统称在一起就叫做符号的引入。在FORTRAN语言中,DLL用户可以直接通过文件的属性找到与之对应的函数或是代码,从而实现函数的声明。将一些类似的代码或是数据和多个函数进行链接之后就会生成所需要的test.dll和zc.dll文件。
  当实现动态链接之后,接下来所要考虑的就是如何进行动态链接库的使用。一般情况下,无论是.LIB文件还是.DLL文件都采用隐式连接或是静态连接的方式,因此当有应用程序访问DLL文件时,动态链接库必须存在该程序的目录。这样就可以直接避免出现链接库路径连接错误。在实际的程序设计和软件开发中,采用动态联编的方式来实现链接库的调用比较多。
  3.2 在FORTRAN中调用C的动态链接库
  在实际的算法运行过程中,由于一些算法或是正反演算法的迭代使用和计算,这就对数据的传输和处理带来影响,并不是所有的数据结果处理都很精确或是合理,严重时还会导致算法或是整个编程运行停止,因此对于一些重要的参数或是函数进行监控室非常必要的。在VC++进行调用算法动态链接库时,如果将链接运行的信息即时显示在相关屏幕上就可以方便对程序运行工程的判断和分析。在VC++中可以编写几个控制动态链接库的函数,这些函数的声明也可以作为FORTRAN算法的引出函数,这时候在运行FORTRAN算法动态链接库的同时也可以将算法的信息显示给VC++的应用程序的状态窗口,根据窗口显示的函数返回值,用户就可以实现对于动态链接库的实时控制以及在FORTRAN中调用C的动态链接库。
  4 结语
  尽管当前编程技术日新月异,但是在系统或是软件设计中如何将这些云烟编程技术进行综合运用或是实现各个语言程序的相互连接问题,仍是当前在软件开发中仍需要考虑的问题。而在研究中发现,DLL作为一个可以由多个程序同时使用的代码和数据的库,实现了多语言编程技术的相互连接,实现了资源共享,是实现多语言编程技术在软件开发中的应用的基础和前提。
  参考文献
  [1] 杨小锋,陈艳燕.智能卡中JNI技术的应用实现[J].浙江师范大学学报(自然科学版).2005(03).
  [2] 周涛,郭占元,郭向荣.FORTRAN与C#混合编程在土木工程计算中的应用[J].山东交通学院学报.2009(01).
  [3] 汤洪志,周华中,胡文平,周亚东.VB与Visual Fortran混合语言编程及其在物探化探数值计算中的应用[J].物探化探计算技术.2002(01).
其他文献
通过对学龄前儿童自我意识发展特点的分析,提出积极有效的家庭教养方式,不仅对孩子的认知能力、情感体验、意志行为产生重要的影响,而且也促进幼儿形成良好的自我意识,对幼儿
根据中职学校学生的特殊情况,结合中等职业教育的培养目标和教学特点,对中等职业教育工作中加强学生职业意识培养进行了有益的探索,以期引起同行的重视和进一步的探讨.
目的 探讨重症手足口病(HFMD)急性期影像学表现.为手足口病的诊治提供依据,提醒临床及早发现重型病例,提高抢救成功率.降低死亡率.方法 搜集本院收治的50例重症手足口病病例的相关资料,回顾性分析和总结其影像学征象.结果 除发热、皮肤黏膜疹、呕吐、惊颤等临床症状外,其中18例胸部X线片检查示阴性,11例示胸部X线片两肺提示肺炎,20例胸部X线片支持支气管炎,1例胸部X线片两肺提示瘀血、水肿、出血.
目的 探讨血尿酸(UA)浓度与冠心病心力衰竭的关系.方法 运用尿酸酶-过氧化物酶耦联法测定冠心病和冠心病心力衰竭患者血清UA浓度,并将两组进行比较.结果 冠心病组中UA浓度>350 μmol/L 218例,>450 μmol/L 71例,>500 μmol/L 55例,发生率分别是36.31%、11.90%、9.52%.冠心病心力衰竭组中UA浓度> 350μmol/L 311例,>450 μmol
红皮病也称为剥脱性皮炎,是一种严重的皮肤疾病,1886年由Hebra首先描述.临床表现为皮肤弥漫性潮红、肿胀、浸润、脱屑,累计面积达到全身皮肤的90%,同时可以导致内脏损伤和代
目的:探讨治疗先天性阴道缺如的最佳手术方式.方法:2001年9月至2010年9月成都阳光妇科医院和深圳罗湖人民医院收治先天性无阴道患者342例(包括男性假两性畸形1例),均采用腹腔镜下腹膜阴道成形术治疗,其中,采用罗湖手术Ⅰ式196例,罗潮手术Ⅱ式146例.结果:平均手术时间42.5 min(40~65min),平均术中失血量<30ml平均住院时间16.5d(14~22d),342例手术全部成功,
目的对肝癌核心家系进行调查并对其进行分析。建立肝癌核心家系标本数据库,为肝癌遗传易感性的研究提供实验标本和研究资料。方法对经县级及以上医院确诊的肝癌先证者及其血
摘 要 传统蚁群算法在解决QoS路由问题时往往会在非线性整数规划模型的基础上盲目地搜索,其仿生智能没有与问题特征很好的结合,所得到的组播树有可能包含冗余的环路。为了研制性能更高的QoS组播路由方法,本文提出了一种新的基于蚁群优化算法的QoS组播路由新算法。新算法根据最大最小蚂蚁思想,结合蚂蚁-Q算法对原算法进行了改进,使得在实际应用中,算法选路更合理有效。  关键字 蚁群优化算法 QoS路由  中
目的观察盐酸异丙嗪联合纳络酮,血塞通治疗眩晕症的临床疗效观察。方法选取2010年4月至2011年4月到我院急诊内科住院治疗的眩晕症患者84例,随机选择42例为治疗组,另42例为对
摘 要 嵌入式Web服务器是指将Web服务器嵌入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。  关键词 嵌入式Web 服务器 控制设备  中图分类号:TN915.08 文献标识码:A  1 主程序流程  在主程序流程中,主要设计实现包括两大部分:第一是对接收到的以太网数