Ada语言

✍ dations ◷ 2024-11-05 22:04:43 #Ada语言
AdaCore GNAT, Green Hills Software(英语:Green Hills Software) Optimising Ada 95 compiler,Ada,是一种程序设计语言。它源于美国军方的一个计划,旨在集成美军系统中运行着上百种不同的程序设计语言编写的程序,并提高调试能力与效率,由Pascal及其他语言扩展而成,比较接近自然语言和数学表达式,并用“Ada”命名以纪念埃达·洛夫莱斯(Ada Lovelace)。Ada语言最早是针对嵌入式和实时计算设计的,并且在现今依然在这些方面广泛使用。Ada95版,是由INTERMETRICS公司的塔克·塔夫特于1992到1995年间设计的,当时主要是希望改进对于系统、数字、财务软件编程的支持。Ada语言的重要特征就是其嵌入式风格,模块化设计(英语:Modular programming),编译检查,平行处理,异常处理及泛型编程。Ada在1995年加入了对面向对象设计的支持,包括动态分配等。Ada的编译检查主要是针对没有分配的内存读写的保护,堆栈溢出错误,单个错误空闲,队列读写错误以及其他可以避免的小问题。这些检查可以在为增加效率的情况下被取消,但是在编译的时候他们却能带来很高的效率。同样它也包括对程序的严正的设置。因为这些原因,它被广泛应用于一些非常重要的系统中,例如航空电子学,武器及航天飞行器的操作系统中。同样它支持很多的编译时间检查,这些检查被用来避免一些错误的发生。这种错误往往是在其他语言中运行之前难以被察觉到的,需要在源码中加入特殊的检查设置才能被发现。Ada的动态内存管理非常安全和高规格,它类似于JAVA语言却不同于C语言的。这种特殊功能并不需要特殊的运行设置。尽管这种语言的语意结构允许对于不能读写的目标进行自动的碎片搜集,但是大多数运行都不支持它。Ada却支持有限形式基于区域的存储管理。无效的读写常在运行时候被检查出来(除非这种检测被人为关闭)并且有时候在编译时候就被发现。Ada语言的定义同国际标准化组织(ISO)的标准有很大不同,因为他是一个自由内容形式的。这种做法的后果是被广大程序员只能从它的标准化文档(普遍认为是Ada的参考使用手册(ARM))寻找细节性的技术问题,但是普遍情况是一本标准教科书却可以在其他不同语言上使用。Ada语言由严格的巴斯特范式定义,但是不适合一般人阅读。它是第一种同时拥有IEC/ISO/美国军用标准认证的语言,其编译器经过严格的审查,以确保同样的代码在任一编译器上产生同样的可执行效果,并且保证并行性在代码级可以在无操作系统下同样运行。在1970年代,美国国防部(DoD)所属的嵌入式计算机系统项目中使用的编程语言数量逐日增多,其中的很多语言十分陈旧或者依赖于硬件,而且没有一个支持安全的模块化编程,对此DoD感到十分担心。基于这个原因,在1975年成立了高级语言工作组(HOLWG),它的使命是就是寻找或者创造某种适合国防部需要的编程语言,以便减少现有编程语言数量。该小组最终的工作成果就是Ada语言。由此,类似项目中使用的高级编程语言的数量大大减少了,1983年的450种编程语言,到1996年只剩下37种。工作组开发出了语言要求文档—文档。许多现存的语言都被仔细地检查,但是1977年这个团队却声称没有任何现存语言符合他们的条件。一个Ada语言编写的Hello, World!程序:在Ada.Text_IO.Put_Line处有一些捷径,不需要很多的文字输入,但是对于这里的理解来讲并没有多大意义。细节性的问题请参考Ada Programming/Basic。一个普遍的关于欧洲空间局阿丽亚娜5型运载火箭失败的说法是因为Ada语言在编译过程的检查失败导致的。将大的浮点数转换成整数是一种常见的程序错误来源。1996年6月4日,对于阿丽亚娜5型运载火箭的初次航行来说,这样一个错误产生了灾难性的后果。发射后仅仅37秒,火箭偏离它的飞行路径,解体并爆炸了。火箭上传有价值5亿美元的通信卫星。6亿美元付之一炬。后来的调查显示,控制惯性导航系统的计算机向控制引擎喷嘴的计算机发送了一个无效数据。失事调查报告指出,火箭爆炸是因为: .mw-parser-output .templatequote{margin-top:0;overflow:hidden}.mw-parser-output .templatequote .templatequotecite{line-height:1em;text-align:left;padding-left:2em;margin-top:0}.mw-parser-output .templatequote .templatequotecite cite{font-size:small}During execution of a data conversion from 64-bit floating point to 16-bit signed integer value, the floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. This resulted in an Operand Error.它没有发送飞行控制信息,而是提交了一个诊断位模式,表明在将一个64位浮点数转换成16位有符号整数时,产生了溢出。溢出值测量的是火箭的水平速率,这比早先的阿丽亚娜4型运载火箭所能达到的高出了5倍。在设计阿丽亚娜4型运载火箭的软件时,他们小心地分析了数字值,并且确定水平速率绝不会超出一个16位的数。不幸的是,他们在阿丽亚娜5型运载火箭的系统中简单地重新使用了这一部分,而没有检查它所基于的假设。Ada代码如下:

相关

  • 泡沫细胞泡沫细胞是一种含有大量脂肪的巨噬细胞。泡沫细胞是导致动脉硬化的一种原因,并可能导致心脏病和脑梗塞。当低密度脂蛋白穿过动脉内膜进入血管壁之间时,胆固醇会在那里堆积。当
  • 临高语临高语,又称临高话,是海南岛北部临高人所使用的一种语言,属于侗台语系,使用人数约60万。尽管临高人被认为是汉族人,但临高话并非汉语的一种。临高语一般分成东西两种方言:15-17个
  • 扩张新字体陶文 ‧ 甲骨文 ‧ 金文 ‧ 古文 ‧ 石鼓文籀文 ‧ 鸟虫书 ‧ 篆书(大篆 ‧  小篆)隶书 ‧ 楷书 ‧ 行书 ‧ 草书漆书 ‧  书法 ‧ 飞白书笔画 ‧ 
  • 国家宪兵国家宪兵(法语:Gendarmerie)是配属在各要塞地区或边界、重要机关负责维持治安的部队,持有步兵等级的重武装,对一般民众有管辖权,亦有侦查重大犯罪的权力。许多国家都有存在国家宪
  • 逆转录转座子反转录转座子(Retrotransposon)是由RNA介导转座的转座子的元件,在结构和复制上与反转录病毒(retrovirus)类似,只是没有病毒感染必需的env基因。它通过转录合成mRNA,再逆转录合成新
  • 印度快报《印度快报》(英语:The Indian Express) ,是印度一份英语日报,始创于1933年,在印度九个主要城市(那格浦尔、德里、孟买、加尔各答、浦那、卢迪亚纳、昌迪加尔、勒克瑙和艾哈迈达巴
  • 荷兰三剑客荷兰三剑客指1980年代末到1990年代初在意大利AC米兰俱乐部踢球的三位荷兰球星,他们是范巴斯滕、路德·古利特、里杰卡尔德。他们乃于八十年代末加盟,曾为AC米兰赢得多个奖项,如
  • 机场以下是机场列表的分类方法。航空史 · 飞行器(制造商) · 飞行器发动机(制造商) · 旋翼机(制造商) · 机场 · 航线 · 博物馆民用飞机(启始客户) · 喷射客机 · 货机 · 航空公司
  • 鳏夫寡妇是指死去丈夫的女性,又称孀妇、寡居、守寡或者孀居;死去妻子的男性则称为鳏夫,两者合称鳏寡。现在形容他们婚姻状况的正式名称通常是丧偶。在过去,寡妇的社会地位是重要社会
  • 低钾血症4s12,8,8,1蒸气压第一:418.8 kJ·mol−1 第二:3052 kJ·mol−1 第三:4420 kJ·mol−1 (主条目:钾的同位素钾(拉丁语:Kalium,化学符号:K)是原子序数为19的化学元素。最早于植物的灰烬