ゼロからAdaを学ぶ(入門)
4568 ワード
What is Ada?
Ada言語は、長周期で信頼性の高いソフトウェアシステムを構築するために最初に設計された.関連するデータ型(type)、オブジェクト(object)、および操作(operation)を定義する一連の機能を提供します.パッケージはパラメータ化でき、データ型は再利用可能なライブラリの構築をサポートするために拡張できます.操作は便利な順序制御構造を用いてサブプログラム(subprogram)で実現してもよいし,同時スレッド同期制御を含むエントリ(entry)で実現してもよい.Adaは単独コンパイル(separate compilation)もサポートし,物理層ではモジュール性をサポートする.
Adaには、リアルタイム(real-time)、コンカレントプログラム設計(concurrentprogramming)をサポートする複雑な機能が含まれています.エラーは異常(exception)として示すことができ、明確に処理することができる.Adaもシステムプログラミング(system programming)をカバーしている.これは、データ表示およびシステム特性へのアクセスの正確な制御を必要とする.最後に、入出力、文字列処理、数値計算の基本関数、乱数生成など、事前に定義された標準パッケージが提供されます.
What is available for Ada?
There are many Ada compilers, including a free Ada 95 compiler called GNAT based on the Free Software Foundation’s gcc. There are also many Ada-related tools and on-line reference documents. A later section of this tutorial provides more information about on-line Ada information sources.
GNATのインストール方法については、以下の投稿で詳しく説明します.以上、この文章は非常に詳しく、弟に非常に役に立つと言わざるを得ません.WINDOWSシステムにGNAT GPL 2015 ADA開発環境をインストールする
もちろんGPSは統合開発環境として多くの言語をサポートし,必要に応じてターゲット言語を選択する.
でも個人的にはexeの場合、cmdは次のように表示されます.
C:\>Gnatwork\helloworld>helloworld.exe
Access is denied.
とても憂鬱です.
Ada HelloWold
-- Ada 2017 Hello, world.
with Ada.Text_Io;
use Ada.Text_Io;
procedure Helloworld is
begin
Put_Line("Hello, World!");
end Helloworld;
Ada Compute
with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;
procedure Compute is
procedure Double(Item : in out Integer) is
begin -- procedure Double.
Item := Item * 2;
end Double;
X : Integer := 1; -- Local variable X of type Integer.
begin -- procedure Compute
loop
Put(X);
New_Line;
Double(X);
end loop;
end Compute;
1.あるsigned integersを保存するためのX local variableを作成しました.ここではintegersのminimum and maximum range 2は気にしません.Double関数は2.Putは数値を表示し、New_Lineは数値の内容を次のページ4に向ける.When a computation (such as doubling) cannot be performed, Ada raises an `exception’.
今、私たちはAdaプログラムの長さについて基本的な認識を持っています.以下にいくつかの用語を理解する必要があります.1つのAdaプログラムは、1つまたは複数のプログラムユニットから構成される.
1つのプログラムユニットは:1.サブルーチン(subprogram)は、実行可能な演算を定義します.プロシージャ(procedure)と関数(function)はサブプログラムです.2.パッケージ(package)、エンティティ(entity)を定義します.パッケージはAdaの主なパケットメカニズムであり、Cの関数ライブラリ、Modulaの「module」に似ています.3.タスクユニット(taskunit)は、スレッドと同様に計算を定義し、同時に実行します.4.アドa 83には存在しない同時計算でデータ共有を調整する保護ユニット(protectedunit).5.クラス属ユニット(genericunit)は、再利用可能な構築を支援し、C++のテンプレートと類似している.