在选择语言级别时,成本也往往是一个有决定意义的因素。譬如说当要把一个单一的程序装入成千上万个单元时,可以采用能在廉价的OPU中运行的小规模汇编语言程序来降低硬件的开销。使编程开销的提高可由于硬件开销的下降得以补偿。1
实时语言的选择可供选择的语言有许多种,它们各有千秋:
带实时扩展功能的FORTRAN语言,由于它的通俗性,已有数十年的使用历史;
带实时插入功能的BASIO语言,由于用户接口简单,己在实验室应用中得到普及;
MODULA和PASCAL以优越的高级设计性能在近年来赢得了推广使用;
CORAL 66和RTL 12语言已在英国军事和工业实时控制中获得应用;
ADA语言是美国国防部最新采用的一种语言,并获得好评。
为了解决采用何种语言的问题,需要先看看所采用的语言应具备哪些基本设计特点,然后再把可供选择的实际语言同这些特点作一比较。在任何情况下都必须记住,实时程序设计比普通程序设计的实际难度要大得多。这完全是由于与外部世界的连接所产生的复杂性而引起的。这些复杂性包括:
(1)处理非同一般的输入和输出;
(2)后缓、多路、并行活动等;
(3)编制处理由中断引入的非主动活动的程序。1
对实时语言的要求安全性实时语言中的安全性是编译程序(介释程序、翻译程序)或操作系统运行中能自动检出编程错误能力的一种量度。
假如让实时程序中的故障通过了一个活系统,会引起极大的混乱。但显然程序中的逻辑错误是不能被检出的,却可以通过使用有较强结构型编程能力的语言来降低这类错误的出现概率。
安全性主要通过采用具有可读性好、结构优良等特点的数据打印系统来实现。
可读性实时程序的可读性是指通过阅读程序正文(不求助于流程图和其它注释)而对特定程序操作的理解程序的一种度量。
程序只写一次但要读许多次。可读性强的程序应具备:
(1)对任何读者(指具备这方面知识的)含义都很明确; .
(2)文件编制的中心分段;
(3)程序员能快速检出错误;
(4)修改和维护容易。
这些措施不可避免地会导致程序长度的增加和附加成本的提高,并要求程序员配合写出清楚的结构型代码。
可读性通过程序构造的方法来实现。在低级编程中采用数据类型和好理解的控制结构。在高级编程中采用模块结构。
灵活性语言的灵活性是它表达全部所需操作的能力的一种量度,程序员应不再需要用机器代码,插入程序或类似其它程序来完成编程。
实时编程对灵活性的要求较高,这是因为与之相联的过程所需的独特输入输出活动范围非常广。
灵活性与安全性是互相抵触的两个指标,因此针对每一个目标只需提供适度的灵活性。
简易性简易性是程序员进行必要训练所花成本的一种量度。
语言的基本法则应该是容易掌握,而且(应尽可能)不对其使用附加任何条件和约束。由此可减少程序员出锗的可能性。一般来说,简易性带来了编程规模较小、目标代码效率较高和程序可移植性较强等优点。
程序的简易性通过回避使用复杂的语言结构来实现。1
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所