跳到内容

软件工程师手册/语言词典/Ada

来自维基教科书,开放的书籍,开放的世界

Ada 是一种 强类型 多范式 编程语言,适用于 嵌入式系统设备驱动程序 和其他形式的 系统编程

Ada 是一种完整的 多范式 编程语言,实现了以下范式:并发分布式泛型 (模板 元编程)、命令式面向对象 (基于类的) 编程。

执行入口点

[编辑 | 编辑源代码]

入口点的过程名称可以自由选择。

通用语法

[编辑 | 编辑源代码]

典型的语句以分号结尾。将 b 赋值给 a 使用

a := b ;
-- this is an inline comment.  Everything after the -- is a comment.

变量声明

[编辑 | 编辑源代码]

声明可以出现在块的开头。

将 i 声明为整数

declare 
  I : Integer ; 
begin
  -- program
end ; 

以下是将 i 声明为整数并为其赋予初始值 0 的两种方式

declare 
  I : Integer := 0 ; 
begin
  -- program
end ;

方法声明/实现

[编辑 | 编辑源代码]

过程和函数分别由关键字过程函数 声明。有关详细信息,请参阅 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 Integer is
begin
   if A <= B then
      return B;
   else
      return A;
   end if;
end Minimum;

类方法是与类记录在同一范围内声明的原始操作(过程和函数)。有关详细信息,请参阅 Ada_Programming/面向对象

范围由包的使用来声明,包可能包含三个部分:公共规范()、私有规范(私有)和主体( 主体).

package Package_With_Body is

   type Basic_Record is private;

   procedure Set_A (This : in out Basic_Record;
                    An_A : in     Integer);

   function Get_A (This : Basic_Record) return Integer;

private

   type Basic_Record is 
      record 
         A : Integer;
      end record ;

end Package_With_Body;
package body Package_With_Body is

   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 Integer is
   begin
      return This.A;
   end Get_A;

end Package_With_Body;

有关详细信息,请参阅 Ada_Programming/包

条件语句

[编辑 | 编辑源代码]

<用文字描述条件语句并展示

文件:range_1.adb (查看纯文本下载页面浏览所有)
      if A < Range_Type'Last then
         T_IO.Put (",");
      else
         T_IO.New_Line;
      end if;

有关详细信息,请参阅 Ada_Programming/控制#if-else

循环语句

[编辑 | 编辑源代码]

<用英语描述循环语句并展示代码示例。>

文件:range_1.adb (查看纯文本下载页面浏览所有)
   for A in Range_Type loop
      I_IO.Put (Item  => A,
                Width => 3,
                Base  => 10);

      if A < Range_Type'Last then
         T_IO.Put (",");
      else
         T_IO.New_Line;
      end if;
   end loop;

有关详细信息,请参阅 Ada 编程/控制#循环

输出语句

[编辑 | 编辑源代码]

<描述如何输出Hello world!,包括带或不带回车的换行符。>

文件:hello_world_1.adb (查看纯文本下载页面浏览所有)
with Ada.Text_IO;

procedure Hello is
begin
   Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

有关详细信息,请参阅 Ada_Programming/库/Ada.Text_IO

错误处理/恢复

[编辑 | 编辑源代码]

<描述错误处理和恢复。根据需要提供示例。>

有关详细信息,请参阅 Ada_Programming/异常

以下预定义的包现在可以在 Ada 中原生使用(自 Ada 2005 起)

这些是确定版本的 - 每个区域的非确定版本也提供。所有容器都是无界的。

<列出此语言原生提供的算法或算法列表的参考。列出如果算法不是该语言的原生部分,则如何将算法合并。或者,如果不可用,请说明。>

垃圾收集

[编辑 | 编辑源代码]

垃圾收集可以是手动或自动的 - 请参阅您的编译器手册。如果提供自动收集,则 pragma Controlled () 可以停用对命名访问类型的自动收集。

对于手动释放,包 Ada.Unchecked_Deallocation 用于释放。

有关详细信息,请参阅 Ada 编程/类型/访问

物理结构

[编辑 | 编辑源代码]

<描述文件、库和部分的典型划分和排列方式。>

<请包含使从其他语言切换到此语言更容易的提示。>

网络参考资料

[编辑 | 编辑源代码]

书籍和文章

[编辑 | 编辑源代码]
华夏公益教科书