软件工程师手册/语言词典/Ada
Ada 是一种 强类型 多范式 编程语言,适用于 嵌入式系统、设备驱动程序 和其他形式的 系统编程。
Ada 是一种完整的 多范式 编程语言,实现了以下范式:并发、分布式、泛型 (模板 元编程)、命令式 和 面向对象 (基于类的) 编程。
入口点的过程名称可以自由选择。
典型的语句以分号结尾。将 b 赋值给 a 使用
a := b ;
-- this is an inline comment. Everything after the -- is a comment.
声明可以出现在块的开头。
将 i 声明为整数
declareI : Integer ;begin-- programend;
以下是将 i 声明为整数并为其赋予初始值 0 的两种方式
declareI : Integer := 0 ;begin-- programend;
过程和函数分别由关键字过程 或函数 声明。有关详细信息,请参阅 Ada 编程/子程序。
procedureA_Test (A, B:inInteger; C:outInteger)isbeginC := A + B;endA_Test;
functionMinimum (A, B : Integer)returnIntegerisbeginifA <= BthenreturnB;elsereturnA;endif;endMinimum;
类方法是与类记录在同一范围内声明的原始操作(过程和函数)。有关详细信息,请参阅 Ada_Programming/面向对象。
范围由包的使用来声明,包可能包含三个部分:公共规范(包)、私有规范(私有)和主体(包 主体).
packagePackage_With_BodyistypeBasic_Recordisprivate;procedureSet_A (This :inoutBasic_Record; An_A :inInteger);functionGet_A (This : Basic_Record)returnInteger;privatetypeBasic_RecordisrecordA : Integer;endrecord;endPackage_With_Body;
packagebodyPackage_With_BodyisprocedureSet_A (This :inoutBasic_Record; An_A :inInteger)isbeginThis.A := An_A;endSet_A;functionGet_A (This : Basic_Record)returnIntegerisbeginreturnThis.A;endGet_A;endPackage_With_Body;
有关详细信息,请参阅 Ada_Programming/包。
<用文字描述条件语句并展示
ifA < Range_Type'LastthenT_IO.Put (",");elseT_IO.New_Line;endif;
有关详细信息,请参阅 Ada_Programming/控制#if-else。
<用英语描述循环语句并展示代码示例。>
forAinRange_TypeloopI_IO.Put (Item => A, Width => 3, Base => 10);ifA < Range_Type'LastthenT_IO.Put (",");elseT_IO.New_Line;endif;endloop;
有关详细信息,请参阅 Ada 编程/控制#循环。
<描述如何输出Hello world!,包括带或不带回车的换行符。>
withAda.Text_IO;procedureHelloisbeginAda.Text_IO.Put_Line("Hello, world!");endHello;
有关详细信息,请参阅 Ada_Programming/库/Ada.Text_IO。
<描述错误处理和恢复。根据需要提供示例。>
有关详细信息,请参阅 Ada_Programming/异常。
以下预定义的包现在可以在 Ada 中原生使用(自 Ada 2005 起)
- Ada.Containers.Doubly_Linked_Lists
- Ada.Containers.Hashed_Maps
- Ada.Containers.Hashed_Sets
- Ada.Containers.Ordered_Maps
- Ada.Containers.Ordered_Sets
- Ada.Containers.Vectors
这些是确定版本的 - 每个区域的非确定版本也提供。所有容器都是无界的。
<列出此语言原生提供的算法或算法列表的参考。列出如果算法不是该语言的原生部分,则如何将算法合并。或者,如果不可用,请说明。>
垃圾收集可以是手动或自动的 - 请参阅您的编译器手册。如果提供自动收集,则 可以停用对命名访问类型的自动收集。pragma Controlled ()
对于手动释放,包 Ada.Unchecked_Deallocation 用于释放。
有关详细信息,请参阅 Ada 编程/类型/访问。
<描述文件、库和部分的典型划分和排列方式。>
<请包含使从其他语言切换到此语言更容易的提示。>