Ada
维基百科,自由的百科全书
Ada,是一种程序设计语言。源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序。
目录 |
[编辑] 重要特征
Ada语言最早是针对嵌入式和实时系统设计的,并且在今天依然在这方面使用广泛. Ada95版, 是由INTERMETRICS公司的塔克.塔夫特于92到95年间设计的,当时主要是希望改进对于 系统,数字,财务软件编程的支持.
Ada语言的重要特征就是其键入式风格, 模块化设计, 编译检查,平行任务处理,异常处理及泛型编程. Ada在95年加入了对面向对象设计的支持, 包括动态分配等.
Ada的编译检查主要是针对没有分配的内存读写的保护, 堆栈溢出错误, 单个错误空闲, 队列读写错误以及其他可以避免的小问题. 这些检查可以在为增加效率的情况下被取消, 但是在编译的时候他们却能带来很高的效率. 同样它也包括对程序的严正的设置.因为这些原因,它被广泛应用于一些非常重要的系统中,例如航空电子学,武器及航天飞行器的操作系统中.
同样它支持很多的编译时间检查,这些检查被用来避免一些错误的发生.这种错误往往是在其他语言中在运行以前都不能被察觉到的,需要在源码中加入特殊的检查设置才能被发现.
Ada的动态内存管理非常安全和高规格, 它类似于JAVA语言却不同于C语言的.这种特殊功能并不需要特殊的运行设置. 尽管这种语言的语意结构允许对于不能读写的目标进行自动的碎片搜集,但是大多数运行都不支持它. Ada却支持有限形式基于区域的存储管理. 无效的读写常在运行时候被检查出来(除非这种检测被人为关闭) 并且有时候在编译时候就被发现.
Ada语言的定义同国际标准化组织(ISO)的标准有很大不同,因为他是一个自由内容形式的. 这种做法的后果是被广大程序员只能从它的标准化文档(普遍认为是Ada的参考使用手册(ARM))寻找细节性的技术问题,但是普遍情况是一本标准教科书却可以在其他不同语言上使用.
[编辑] 历史
在70年代, 美国国防部 因为它所属项目的编程语言数量而倍受关注.这些语言中的很多都是完全独立于硬件的,并且其中没有一个是支持安全模块编程的. 1975年 高次阶语言工作组 (HOLWG) 终于成立了.它的主要目标就是寻找或者创造一些适合国防部需要的语言来减少这种现存的编程语言数量.它带来的结果就是Ada语言. 因此,这些编程语言数量从1983 的450下降到了1996的37种.
工作组开发出了语言要求文档—稻草人, 木头人, 锡人, 铁人 和钢人 文档. 许多现存的语言都被仔细地检查,但是1977年 这个团队却声称没有任何现存语言符合他们的条件.
[编辑] Ada语言的"世界,你好!" 示例程序
一个Ada语言编写的"你好世界"Hello world program程序:
with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line("Hello, world!"); end Hello;
在Ada.Text_IO.Put_Line处有一些快捷图标, 不需要很多的文字输入, 但是对于这里的理解来讲并没有多大意义。细节性的问题請参考Ada Programming/Basic。
[编辑] 关于阿利亚纳五号的失败
一个普遍的关于欧洲航天局阿利亚纳五号火箭失败的说法是因为 Ada 语言在编译过程的检查失败导致的。 在阿利亚纳四号 中已经证明了这些检查是不需要的。.尽管广泛的检查和正确的异常处理可能导致这些问题,问题本身就是一个设计好的决定。这个决定是为了拯救计划的一部分,并且它的软件是从阿利亚纳四号上直接拿过来使用的,并没有经过任何分析和修改。最严重的是在阿利亚纳五号运行的程序都没进行过测试。
参考:阿利亚纳五号
[编辑] 参见
[编辑] 参考书目
[编辑] 国际标准
- ISO/IEC 8652: Information technology — Programming languages — Ada
- ISO/IEC 15291: Information technology — Programming languages — Ada Semantic Interface Specification (ASIS)
- ISO/IEC 18009: Information technology — Programming languages — Ada: Conformity assessment of a language processor (ACATS)
- IEEE Standard 1003.5b-1996, the POSIX Ada binding
- Ada Language Mapping Specification, the CORBA IDL to Ada mapping
[编辑] 书目
- Jan Skansholm: Ada 95 From the Beginning, Addison-Wesley, ISBN 0-201-40376-5
- John Barnes: Programming in Ada plus Language Reference Manual, Addison-Wesley, ISBN 0-201-56539-0
- John Barnes: Programming in Ada 95, Addison-Wesley, ISBN 0-201-34293-6
- John Barnes: High Integrity Ada: The SPARK Approach, Addison-Wesley, ISBN 0201175177
- John Barnes: High Integrity Software: The SPARK Approach to Safety and Security, Addison-Wesley, ISBN 0-321-13616-0
- Dean W. Gonzalez: Ada Programmer's Handbook, Benjamin-Cummings Publishing Company, ISBN 0805325298
- M. Ben-Ari: Ada for Software Engineers, John Wiley & Sons, ISBN 0-471-97912-0
- Norman Cohen: Ada as a Second Language, McGraw-Hill Science/Engineering/Math, ISBN 0-0-7011607-5
- Alan Burns, Andy Wellings: Real-Time Systems and Programming Languages. Ada 95, Real-Time Java and Real-Time POSIX., Addison-Wesley, ISBN 0-201-72988-1
- Alan Burns, Andy Wellings: Concurrency in Ada, Cambridge University Press, ISBN 0-521-62911-X
- Colin Atkinson: Object-Oriented Reuse, Concurrency and Distribution: An Ada-Based Approach, Addison-Wesley, ISBN 0201565277
- Grady Booch, Doug Bryan: Software Engineering with Ada, Addison-Wesley, ISBN 0805306080
- Daniel Stubbs, Neil W. Webre: Data Structures with Abstract Data Types and Ada, Brooks Cole, ISBN 0-534-14448-9
- Pascal Ledru: Distributed Programming in Ada with Protected Objects, Dissertation.com, ISBN 1-58112-034-6
- Fintan Culwin: Ada, a Developmental Approach, Prentice Hall, ISBN 0132646803
- John English, Fintan Culwin: Ada 95 the Craft of Object Oriented Programming, Prentice Hall, ISBN 0-1-3230350-7
- David A. Wheeler: Ada 95, Springer-Verlag, ISBN 0-387-94801-5
- David R. Musser, Alexander Stepanov: The Ada Generic Library: Linear List Processing Packages, Springer-Verlag, ISBN 0387971335
- Michael B. Feldman: Software Construction and Data Structures with Ada 95, Addison-Wesley, ISBN 0201887959
- Simon Johnston: Ada95 for C and C++ Programmers, Addison-Wesley, ISBN 0201403633
- Michael B. Feldman, Elliot B. Koffman: Ada 95, Addison-Wesley, ISBN 0-201-36123-X
- Nell Dale, Chip Weems, John McCormick: Programming and Problem Solving with Ada 95, Jones & Bartlett Publishers, ISBN 0763702935
- Nell Dale, Susan Lilly, John McCormick: Ada Plus Data Structures: An Object-Based Approach, Jones & Bartlett Publishers, ISBN 0669416762
- Bruce C. Krell: Developing With Ada: Life-Cycle Methods, Bantam Dell Pub Group, ISBN 0553091026
- Judy Bishop: Distributed Ada: Developments and Experiences, Cambridge University Press, ISBN 0-521-39251-9
- Bo Sanden: Software Systems Construction With Examples in Ada, Prentice Hall, ISBN 013030834X
- Bruce Hillam: Introduction to Abstract Data Types Using Ada, Prentice Hall, ISBN 0130459496
- David Rudd: Introduction to Software Design and Development With Ada, Brooks Cole, ISBN 0314028293
- Ian C. Pyle: Developing Safety Systems: A Guide Using Ada, Prentice Hall, ISBN 0132042983
- Louis Baker: Artificial Intelligence With Ada, McGraw-Hill, ISBN 0070033501
- Alan Burns, Andy Wellings: HRT-HOOD: A Structured Design Method for Hard Real-Time Ada Systems, North-Holland, ISBN 0444821643
- Walter Savitch, Charles Peterson: Ada: An Introduction to the Art and Science of Programming, Benjamin-Cummings Publishing Company, ISBN 0805370706
- Mark Allen Weiss: Data Structures and Algorithm Analysis in Ada, Benjamin-Cummings Publishing Company, ISBN 0805390553
[编辑] Ada的百科
[编辑] 总体信息
[编辑] 辅助工具书
[编辑] 工程
[编辑] 注释
[编辑] 外部连接
- Ada World
- AdaPower
- ACM SIGAda
- Ada-Europe Organization
- Ada Information Clearinghouse
- ISO Home of Ada Standards
- Ada 95 Books Available Online
- Ada Rapporteur Group (evolution of standard)
- Ada Answers - Building better software with Ada
- Ada Academic Initiative
- "Libre" Ada Software
- GNU Ada Homepage
- GNAVI Ada Visual RAD
- Citations from CiteSeer
- GNAT
- AdaGIDE, the Ada GNAT Integrated Development Environment for Windows
- Forum
- Ada Tutorial
- Projects Using Ada
- A#: Ada on .NET
- Conference announcements for the international Ada community
Template:Major programming languages small
|
|
|
|---|---|
| 工业编程语言 | A+ - ActionScript - Ada - 汇编语言 - B - Brainfuck - COBOL - Curl - D - Eiffel - Erlang - FORTRAN - IronPython - Java - JavaScript - JScript - Jython - LISP - Lua - SCILAB - MATLAB - MATHEMATICA - Nuva - Oberon - OCaml - Perl - PHP - PostScript - Powerbuilder - Python - R - REXX - Ruby - Self - Smalltalk - Tcl/Tk - C# - F# - J# - Microsoft Visual C# |
| C/C++语言 | C - C++ - Turbo C++ - Borland C++ - C++ Builder- C++/CLI - Objective-C - Microsoft Visual C++ |
| BASIC语言 | BASIC - BASICA - GW-BASIC - QBASIC - QuickBASIC - True BASIC - Turbo BASIC - PowerBASIC - DarkBASIC -ETBASIC Visual Basic .NET - Visual Basic - VBScript - VBA |
| Pascal/Delphi语言 | Pascal語法:(Pascal - Turbo Pascal - Object Pascal - Free Pascal) Pascal+Delphi語法:(Delphi) |
| GPU用著色器語言 | Cg - GLSL - HLSL |
| 学术编程语言 | APL/J - Clean - Haskell - Logo - ML - Prolog - Scheme - SAC |
| 資料庫相關编程语言 | Clipper - Visual FoxPro - SQL - SQL預存程序 |
| 其他编程语言 | ALGOL - Forth - Modula-2/Modula-3 - MUMPS - PL/I - Simula |

