|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
嵌入式系统高级编程语言概述:在过去40多年,人们开发研制了几十种计算机语言,但是仅有少数几种得到了广泛应用。这就提示我们选择一个合适的语言系统并不容易。在小型嵌入式系统中,通常只有一个微处理器,并且其主要工作往往不是计算,而是控制,应选择控制能力较强的语言。在大型嵌入式系统中,往往会有多个微处理器或计算机并行工作,构成多机系统。它们中有些工作于真正的嵌入式模式,有的则为纯粹的信息处理。此时,对系统的编程就变得相当复杂,不同的任务可能会用不同的语言编程。因此,大型系统往往是一个多语言系统。对于这种"混合"系统的语言选择更应慎重考虑。
目前,在嵌入式系统开发过程中使用的语言种类很多,但仅有少数几种语言得到了比较广泛的应用。本文选择了Ada、C/C++、Modula-2作为讨论对象,并对Java作简要介绍。
Ada语言是20世纪70年代美国国防部开发并投入使用的功能强大的通用系统开发语言,最初为Ada83。它支持模块化、独立编译、协处理等功能。其可靠性、可维护性、可读性都是相当好的。后来,为了更好地支持OOP(Object-Oriented Programming),对其进行了改进,形成了目前广泛使用的Ada95。使用Ada语言可以大大改善系统的清晰性、可靠性、可维护性等性能指标[2,3]。它是美国国防部指定的唯一一种可用于军用系统开发的语言。
C语言是由Dennis Richie于1972年在AT&Bell实验室研究成功并投入使用的系统编程语言。其设计目标是使C既具有汇编语言的效率,又具有高级语言的易编程性。其最具代表性的应用是UNIX操作系统。从20世纪80年代中期C语言涉足实时系统后,受到了普遍欢迎。目前是使用最广泛的嵌入式系统编程语言。C++是由Bjarne Stroustrup 于1995年在Bell实验室研制成功并投入使用的。C++在支持现代软件工程、OOP、结构化等方面对C进行了卓有成效的改进,但在程序代码容量、执行速度、程序复杂程度等方面比C语言程序性能差一些[2,4,5]。
Modula-2是由Nicklans Wirth在70年代后期根据Pascal 和Modula开发的系统设计语言。其主要目标是在模块化、系统编程、协同处理等方面对Pascal 进行改进。Modula-2具有很强的类型检查能力和丰富的低级功能支持。因此,可用它设计一个完整的实时程序而不用汇编语言的支持。Modula-3是1988年由DEC(Digital Equipment Company)和ORC(Olivetti Research Center)根据Modula-2开发研制并投入使用的系统开发语言。目标是设计一个功能强大但结构简单的通用编程语言。它在协同处理、OOP、自动垃圾收集以及对C语言和UNIX的支持等方面对Modula-2进行了改进[6]。
考察一门语言是否适用,需要从多个方面进行考虑。不同语言,都有自己的特色。很难将其全面进行比较。另外,任何一门语言的运行特性都与运行环境密切相关,因此,选择语言时,应综合考虑。为叙述方便,我们把语言的性能划分为基本性能和运行性能两个方面进行分析。
(1) 基本性能
一门语言的基本性能主要是指语言本身的固有特性,或称静态特性,即构成语言的组成部分所具有的特性。它不仅决定着语言的可用性、适用性、可靠性等,而且对应用程序的开发产量、便携性、可维护性、安全性也有一定影响。它是一门语言的核心和基石。考查语言的基本性能主要从以下几个方面入手:与汇编语言/机器语言的接口,直接寻址,对硬件的控制,位操作,中断处理,指针操作,数据类型的支持及检测,控制结构的支持及检测,模块化支持,独立编译支持,任务结构支持,异常事件处理,数学模型支持,语法和整体结构,多任务支持,标准程序库,面向对象编程(OOP)结构等。
(2) 运行性能
语言的运行性能是指其应用软件在实际运行时所表现出来的行为特点,是一门语言的动态特性。它对语言的适用性、实用性及可用性影响极大。主要表现在任务期限设置、代码执行时间的简单评价,调度策略选择,时序分析支持等几个方面。由于语言的运行性能和运行环境密切相关,如CPU速度、内存大小、硬盘速度、操作系统、编译环境等。因此,评价语言的运行性能应和具体的应用环境联系起来,任何理论上的评价都没有多大的实际意义。故本文不再讨论这方面的内容。 |
|