跳转到内容

软件工程师手册/语言词典/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 编程/控制#loops

输出语句

[编辑 | 编辑源代码]

<描述如何输出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 编程/类型/访问

物理结构

[编辑 | 编辑源代码]

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

<请包括便于从其他语言切换到此语言的提示。>

网络参考

[编辑 | 编辑源代码]
  • Ada 编程 - 75% 完成 于 2005 年 4 月 3 日 (2005 年 4 月 3 日) - (索引)(此维基教科书是教程)

书籍和文章

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