软件工程师手册/语言词典/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 编程/控制#loops。
<描述如何输出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 编程/类型/访问。
<描述文件、库和部分的典型划分和排列方式。>
<请包括便于从其他语言切换到此语言的提示。>