面向对象语言Transframe及其环境MagicFrame

作者:李愚;徐永森;谢高严;DavidL.Shang 刊名:南京大学学报(自然科学版) 上传者:苏秀霞

【摘要】论述了目前的软件开发中存在的两个问题 :①现有的高级语言对各种高级计算模型支持的不足 ;②快速原型开发和高质量产品开发之间的矛盾 .针对以上问题 ,设计了一种新的面向对象语言Transframe并研制了它的开发环境MagicFrame .Transframe语言具有的参数化的动态类、名的一般模型、类与函数概念的统一、成员类继承和代理等多种机制为构造各种领域模型提供了有力的支持 .基于Transframe的开发环境MagicFrame采用了冻结 /解冻的机制来消除现有动态开发环境和静态开发环境的鸿沟 ,从而实现了从快速原型到产品的平滑过度

全文阅读

“语言如同思想的外衣”,软件技术的新思想和领域研究的新拓展一直都离不开程序设计语言的同步发展.程序设计语言的应用需要程序开发环境的支持,然而随着对软件开发技术的使用和认识的不断深入,现有的程序设计语言和开发环境的两个不足之处也逐渐暴露出来:单一的程序设计语言对各种高级计算模型支持的不足;快速原型开发和高质量产品的开发之间的矛盾.现实世界有各种各样的应用计算领域,它们的计算模型更是互不相同,千差万别.现有的通用程序设计语言,如、、++,绝大多数没有提供对高级计算模型的直观有效的支持.为了提供对这些模型的支持,常常在这些通用语言中增加一些新的机制,形成了各种新的语言.比如,为了提供对平行计算领域的有效支持,在的基础上发展了;为了提供对分布式计算领域的有效支持,在的基础上发展了;为了提供对实时应用领域的有效支持,在++的基础上发展了++.即使对于同一计算模型,不同的通用语言增加的新机制也是各不相同的.如针对并发相关领域,语言以机制解决并发问题,并发则提供了和等,而用的是方法.但增加新机制来解决对高级计算模型的支持并不是一种好方法,首先,它使得用户受到不同的语言分割,其次由于要求用户用不同的语言不同的机制来书写应用程序,结果使重用变得非常困难.为此我们希望设计一个单一的语言,它既适用于处理各种情况,但又不是简单地在语言中内置各种模型而使它成为一个大杂烩.根据对软件现有的软件开发支持的方式不同,现有的软件开发环境可以分为动态开发环境和静态开发环境.动态开发环境常用于弱类型的语言.由于它对程序解释执行和进行运行时刻类型检查,所以具有响应迅速和修改方便的优点,因而适用于作为快速原型系统的开发,但同时造成了软件产品执行效率偏低、安全性得不到保证的缺点.典型的动态开发环境有语言的开发环境[1],而静态开发环境常用于强类型的语言.由于静态开发环境中程序是编译执行并且很少进行运行时刻类型检查,所以最终产品具有执行高效、安全性好的优点,因而静态开发环境适合于生成最终的软件产品,但其编译和连接等待时间过长、调试程序不够方便是不容忽视的缺点.++语言的开发环境就是一个典型的静态开发环境.然而,绝大多数软件开发环境并不能把适应快速原型开发的动态开发环境和适应高效产品开发的静态开发环境有机地结合起来,从而造成了快速原型开发和高效产品开发之间的矛盾.软件开发人员常常面临两难的选择:要么用动态开发环境进行快速开发但以产品运行的低效为代价,要么选择静态开发环境以获得高效的产品但需要花费更长的开发周期.而如果先运用动态开发环境进行原型的开发再使用静态的环境进行产品的开发,却又导致了一个冗余而不能平滑转换的过程.因此,研究和开发一个综合了动态和静态环境两者优点的开发环境是我们所需要的.针对上述两个问题,在美国摩托罗拉公司的支持下,南京大学和摩托罗拉软件研究所联合研制和开发了新型面向对象语言[2]及其软件开发环境.对语言机制进行了一般化处理,从而使它简单而又可扩充,同时给予用户更大的可自定义的自由.提出了参数化的动态类机制、名的单一模型、嵌套类的结构、成员类继承和代理的继承机制,这些都为构造各种高级模型提供了有力的手段.除此之外,在语言的安全性方面,通过类型依赖来解决协变问题,并提供废区收集机制解决指针安全性问题,为构造强大而安全的程序提供了支持.在充分利用语言特点的基础上,提出以冻结/解冻的方法解决软件开发环境中的难题.冻结/解冻的方法依靠类的模块化设计的思想,以自由类为单位,将设计成熟的类冻结成目标代码实现运行的高效和安全,而没有冻结的类继续解释执行满足快速响应和随时修改的要求,而且实

参考文献

引证文献

问答

我要提问