软件工程师手册/语言词典/Ada
Ada 是一种 强类型 多范式 编程语言,适用于 嵌入式系统、设备驱动程序 和其他形式的 系统编程。
Ada 是一种完整的 多范式 编程语言,实现了以下范式:并发、分布式、泛型 (模板 元编程)、命令式 和 面向对象 (基于类的) 编程。
入口点的过程名称可以自由选择。
典型的语句以分号结尾。将 b 赋值给 a 使用
a := b ;
-- this is an inline comment. Everything after the -- is a comment.
声明可以出现在块的开头。
将 i 声明为整数
declare
I : Integer ;begin
-- programend
;
以下是将 i 声明为整数并为其赋予初始值 0 的两种方式
declare
I : Integer := 0 ;begin
-- programend
;
过程和函数分别由关键字过程
或函数
声明。有关详细信息,请参阅 Ada 编程/子程序。
procedure
A_Test (A, B:in
Integer; C:out
Integer)is
begin
C := A + B;end
A_Test;
function
Minimum (A, B : Integer)return
Integeris
begin
if
A <= Bthen
return
B;else
return
A;end
if
;end
Minimum;
类方法是与类记录在同一范围内声明的原始操作(过程和函数)。有关详细信息,请参阅 Ada_Programming/面向对象。
范围由包的使用来声明,包可能包含三个部分:公共规范(包
)、私有规范(私有
)和主体(包
主体
).
package
Package_With_Bodyis
type
Basic_Recordis
private
;procedure
Set_A (This :in
out
Basic_Record; An_A :in
Integer);function
Get_A (This : Basic_Record)return
Integer;private
type
Basic_Recordis
record
A : Integer;end
record
;end
Package_With_Body;
package
body
Package_With_Bodyis
procedure
Set_A (This :in
out
Basic_Record; An_A :in
Integer)is
begin
This.A := An_A;end
Set_A;function
Get_A (This : Basic_Record)return
Integeris
begin
return
This.A;end
Get_A;end
Package_With_Body;
有关详细信息,请参阅 Ada_Programming/包。
<用文字描述条件语句并展示
if
A < Range_Type'Lastthen
T_IO.Put (",");else
T_IO.New_Line;end
if
;
有关详细信息,请参阅 Ada_Programming/控制#if-else。
<用英语描述循环语句并展示代码示例。>
for
Ain
Range_Typeloop
I_IO.Put (Item => A, Width => 3, Base => 10);if
A < Range_Type'Lastthen
T_IO.Put (",");else
T_IO.New_Line;end
if
;end
loop
;
有关详细信息,请参阅 Ada 编程/控制#循环。
<描述如何输出Hello world!,包括带或不带回车的换行符。>
with
Ada.Text_IO;procedure
Hellois
begin
Ada.Text_IO.Put_Line("Hello, world!");end
Hello;
有关详细信息,请参阅 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 编程/类型/访问。
<描述文件、库和部分的典型划分和排列方式。>
<请包含使从其他语言切换到此语言更容易的提示。>