ASIS-���-GNAT User’s Guide ( GNAT-3.15p )
(C) Copyright 2000, Ada Core Technologies, Inc.
������� Copyright (C) 2003 �.�����.
������������ ��������������� ��������, ��� ���������� ������ ��������, ���������.
����������
-
�� ���� �����������
-
��� ���������� � ������ �����������
��� ��� ���������� ����� ����� ������� ����� �����������
�������������� ����������
1. ��������
-
1.1 ��� ����� ASIS?
1.2 ������� ���������� ASIS: ����� �������� ����� ��������� � ������� ASIS?
2. ������ ���������� � ASIS
-
2.1 ���������� ������
2.2 ���������� ASIS ��� ������� ������������ ������
2.3 ��������� ������������������ �������
2.4 ���������� ������������ ������ ASIS-����������
2.5 ��������� �������� ��� �����
2.6 ������ ASIS-����������
3. ����� ASIS
-
3.1 ������� ���������� ASIS
3.2 �������� ������� ASIS
3.3 ����������� � ������������� �������
3.4 �������� ��������� ������ ASIS
3.5 ������������ �������� ������������ �������� ASIS
3.6 ASIS-��������
3.7 ��������� �� ������������ ASIS
4. �������� ASIS
-
4.1 ����� ��������� � ������ ASIS
4.2 �������� ������ ������ ��� ������������� � ASIS
-
4.2.1 �������� ������ ��� ���������� ������������ ������
4.3 ��������� ������� ����������� ��������� ASIS � ASIS-���-GNAT
4.4 �������� ���������������
-
4.4.1 ��������������� ������ ASIS � GNAT
4.4.2 ��������������� ������ �������� � ������ � ��������� ��������
4.5 ������������� ��������� ���������� ����������
5. ASIS-������������� asistant
-
5.1 ���������� � asistant
5.2 ������� asistant
5.3 ���������� asistant
5.4 �������� ������ ASIS
5.5 ������
6. ������� ���������� ASIS
7. ������� ������� ASIS
8. ��� ��������� ����������� ���������� ASIS
-
8.1 ����� �������� ��� ������� ������ ������������������ ����������
8.2 ������� ������� ����� ������� ����� ��������
8.3 ��� �������� �������� ����� ��������
8.4 ������������� gnatmake ��� �������� ������ ������
9. ��������� ���-���������� � ������� ������� ���������� �� ASIS
10. ����������, ���������� � ���������� ���������� � ASIS-���-GNAT
11. ��������������� ��������� ASIS-���-GNAT
12. ���������� �� ������������ ������ � ������������ ���� ����������
�� ���� �����������
��� ����������� ���������� ��� ����. ��-������, ���������� ��� �� ������������� �������������� ���������� ��� (Ada Semantic Interface Specification, ���������� — ASIS) � ������������������ ��� ���, � ������� ASIS, ����� ������� ��������� ���������������� ��������. ��-������, ������� ���������� ASIS ��� Ada95-����������� GNAT.
��� ���������� � ������ �����������
��� ����������� �������� ��������� �����:
- 1. ��������, �������� ����� �������� ASIS � ������������� ��������� ������� �������, ������� ����� ���� ��������� � ������� ASIS;
- 2. ������ ���������� � ASIS, �������� ��������������� ������� ������� � ���������� � ������������� ������� ���������� �� ASIS-���-GNAT;
- 3. ����� ASIS, ������������� ����� �������� � ����������� ASIS, ������� ������ ������ ���������������� ����� ������������� ASIS (��������, ������� ��� ������� � ASIS ����� ���������� ���� ��������);
- 4. �������� ASIS ��������� ����� ��������� ASIS � ������ ASIS-���-GNAT � ��� ���������� ������� ��� ���������� ���-����������� � ��������� ����������� ASIS;
- 6. ������� ���������� ASIS ��������� ����� �������� ������� ���-�����������, ��������������� ������������� ASIS-���-GNAT, ������� ����� ���� ������������ ��� ������ ���������� ������� ���������� ASIS;
- 7. ������� ������� ASIS ��������� ��������� �������, ���������� � ����������� ASIS-���-GNAT, ������� ���������� ������������ �������, ����������� �������� ��������� ��������� ������������� �� ASIS;
- 8. ��� ��������� ����������� ���������� ASIS ��������� �������� ������ �������� ��� ��������� �������� ������ ������������������ ���������� ASIS � ��������� ��� �������� �������� ����� ���������;
- 9. ��������� ���-���������� � ������� ������� ���������� �� ASIS ����������� ����������� �������� ��������� ���-��������, ������� ���������� ������������������ � ������� ������� ASIS ���-����������;
- 10. ����������, ���������� � ���������� ���������� � ASIS-���-GNAT ��������� ��� ������������� ���������� ASIS � ������� ASIS-���-GNAT � ��� ��������� ��� ���� ����������� ������;
- 12. ���������� �� ������������ ������ � ������������ ���� ���������� ��������� ����� ����� ����� � ����� �� ����� �������������� ��� ����� ����������� ���������� ASIS.
��� ��� ���������� ����� ����� ������� ����� �����������
��� ����������� ������������ ASIS ������������, ��� �� ������� � ������ ���������������� Ada95 � ��� �� ������ ��������� ������������� � ���������������� �� ����� ��� � ����� ����������� GNAT.
��� ����������� ����� ������������, ��� �� ��������� ��������� ������������� ASIS-���-GNAT ��� ������ ����������� GNAT, � ��� �� ������� �� ���������� ������������ ASIS-���-GNAT (���� ���, �� ����������� � ���������� ����� README �� ������ ������������, ������ 2).
��� ����������� �� ������������, ��� �� �������������� ������� � ASIS ��� ������ ���� ��� �������������. �� �������� ��������� ������� ������������� �� ASIS � ��� ������������� � �������� ������ ����� �����������, �������� �������� � ����������������� ��������� �� ��������� � �������� ASIS, ���� ������������.
�������������� ����������
��� ��������� �������������� �������� � ����������� GNAT, ������� ���������� � ����������� ������������ �� ����������� GNAT.
��� ����, ����� ����� ��� ��������� ���������� ���������� ASIS ��� ������ ����������� GNAT, ������� ���������� � ����������� �� ���������� ASIS-���-GNAT.
�������� ASIS 95 � ��������� ����� ������������ � ������������� ��������� ISO/IEC International Standard 15291.
��� ��������� �������������� ���������� �� ASIS, �������� WEB-��������� ������� ������ ASIS (http://www.acm.org/sigada/wg/asiswg).
��� ����������� ������ ����� ����������� ��� ����� ����������� ���������� ����������� �� ASIS-���-GNAT (ASIS-���-GNAT Reference Manual) �/��� ���������� ����������� �� ����������� GNAT (GNAT Reference Manual).
1. ��������
1.1 ��� ����� ASIS?
������������ �������������� ���������� ��� (The Ada Semantic Interface Specification, ���������� — ASIS) �������� ������������ ���������� ����� ���������� ����� ���������������� ��� (������� ������� � ISO/IEC 8652:1995) � ������ ����������������� ����������, ������� ��������� � ���������� �� ����. ��������� ��� �������� ������� ��������� ������������� � �������������� ����������. ASIS �������� �������� � ��������� �����������, ������� ������������ ������ � ���� ���������� CASE-��������� � ������������� ����������. ASIS �������������� ��� ���������, ������� �� ������� �� ���������� ����������� ������������ ���-�������, �����������, ����� �������, ������������� ������� ����������� ���������, � ���������� ������������� ���� ������� �� ������������� ��������� ���������� ����������� � ����������� ������������� ���-�������.
����������, ASIS �������� ��������� ������������ ������� ���. ��� ������ ��������� ��������� ��������� ����� ���, ������� ��������� ������� ������� ����������� ��� �������� �����-���� ���-���������. �������� ��� ����� ������, ���������� ��������� ASIS, ������������� ��� ���������� ����������������� ���������� � ������������� ������� ��� � ����� ���������.
�� ������ ������������ ASIS, ��� ���������� ��������� �������� ������������ ��� ������� ��������, ��� ����������� ����������.
1.2 ������� ���������� ASIS: ����� �������� ����� ��������� � ������� ASIS?
��������� �������� ASIS ���������� ������� ������������� ASIS:
- ASIS �������� ��-�������������� (������ ������), �����������.
- ASIS ������������� �� ���-��������� ������ ���������� ����������������� ����������.
- ASIS ������������� ��� �������������� � ������� ������������� ���������� ��/�� ���-���������. ���� ��������� ������������� �������� ��������� �� ����� ���� ��������������� �������� � �������� �������� ASIS, ���������� ASIS ����� ��������� ��������� �������� ���������� ��������������, ��������� ���������� ������� �������� � ������� �������� ASIS.
- ���� ��� ������� ��������� ����������� �� ����������, ASIS ��������������� ���������� ��/�� ���-��������� � ��������������� ��������, ������� ������ ����������� � RM 95 � ������� �������� �� ���������� �� ���������� ���-�������/ASIS �� ���� ����� �������.
��������� ���������������� ����������� �������, ������� ������������ ����� ������������ ������������ ���������� ASIS, �������� (������� ��������, ��� ���� ������ �� �������������): ������������������ �������� ����, �������� ���������, �������� ����������� �������� �������, �������� ������������������ ����, �������� �������� ������������ ���������� �����������, ���������, �������� ������� �������� �����������, �������� ��������������, ���������� ������������, ����������� ��������, �������� �������� ��������, �������� ������-�����������, �������� �������� �����, �������� ������������, �������� ����������������� � �����������.
2. ������ ���������� � ASIS
� ���� ������, � ������ ���������� �����, �� ����������� � ��������� ���������� ���������� ASIS � ������ ��� �������������: �� ���������� ������, ������� ����� ���� ������ � ������� ���������� ASIS, �����, �� ���������� ��� ���������� ASIS, ������� ��������� ������ ���� ������, �����, �� ������� ��� ������������� � ��������� ����������� ������ ���������� ASIS � ������� ASIS-���-GNAT � ��� ����������� �������� ASIS � ��������� � ������� ���������, �, � ����������, �� ������� ��������� ������ ����� ���������, ����� ��� ������������ ��� ���� �����.
2.1 ���������� ������
�����������, ��� ��� ���������� ���������� ��������� ��������� ������������� ������� ��� � ��� ������� ������ ������ ��� ������, ����������� ���-���, ����� ���� ������ �������� �������������, ����� ��� ����������� �������, � ����� �������, ��� ������ �������� �������, ������������ �������������, ���������������� �������, ��� ������� � RM 95, ��� �������, ������� ��������� ����������� (��������, ��� ����� ���������� ������� ���������� ���-�������).
2.2 ���������� ASIS ��� ������� ������������ ������
with Ada.Wide_Text_IO; use Ada.Wide_Text_IO;
with Ada.Characters.Handling; use Ada.Characters.Handling;
-- ������������� ���������, ����������� ��� ASIS:
with Asis;
with Asis.Implementation;
with Asis.Ada_Environments;
with Asis.Compilation_Units;
with Asis.Exceptions;
with Asis.Errors;
procedure Example1 is
My_Context : Asis.Context;
-- ASIS Context �������� ����������� ������-���� ��������� ���,
-- �� ��������� ��������� ������������� ������� ASIS,
-- ������� �������� ����� ������� ASIS
begin
-- ��-������, ��� ������������� �����-���� ���������� ASIS,
-- ��� ���������� ����������� �� � ���������������� ������
Asis.Implementation.Initialize;
-- �����, �� ��������� ��� �������� Context, �����������
-- �������������� � "����������" ����������:
Asis.Ada_Environments.Associate
(My_Context, "My Asis Context", "-CA");
-- ��. ASIS-���-GNAT Reference Manual, ����� �������� ��������
-- � ���������� ������� Associate, � ����� ����� "�������� ASIS"
-- ����� ������ � ��������� ����� ��������� ASIS ��� �������������
-- ASIS-���-GNAT
-- ��� �������� ���������, �� �������������� ��� � ���������
-- ��������� ASIS
Asis.Ada_Environments.Open (My_Context);
Processing_Units: declare
Next_Unit : Asis.Compilation_Unit;
-- ASIS Compilation_Unit �������� �����������, ������� ������������
-- ������������� ������ ���, ��� ������� � RM 95
All_Units : Asis.Compilation_Unit_List :=
-- ASIS Compilation_Unit_List �������� ����������
-- �������������� ��������.
-- �������������, ��� ����������� ������-���� �������
-- ����� ����, ��� ���������� ������������� ��� �����������,
-- ��� ����� ��������� �������������.
Asis.Compilation_Units.Compilation_Units (My_Context);
-- ������ Compilation_Units ���������� ������ ���� �������,
-- ������� ���������� � ��������� ASIS Context
begin
Put_Line
("A Context contains the following compilation units:");
New_Line;
for I in All_Units'Range loop
Next_Unit := All_Units (I);
Put (" ");
-- ��� ��������� ����� ������ ��� ��������� ������� ������
-- Unit_Full_Name. � �������� ����� ASIS ����������
-- Wide_String, �������������, ��� ���������� ���������
-- �������������� � ��� String, ����� ������������
-- Ada.Text_IO
Put (Asis.Compilation_Units.Unit_Full_Name (Next_Unit));
-- ��� ��������� �������������� ���������� � ������,
-- �� ���������� � ��� ������ � � ��� ���������
case Asis.Compilation_Units.Unit_Kind (Next_Unit) is
when Asis.A_Library_Unit_Body =>
Put (" (body)");
when Asis.A_Subunit =>
Put (" (subunit)");
when others =>
Put (" (spec)");
end case;
case Asis.Compilation_Units.Unit_Origin (Next_Unit) is
when Asis.An_Application_Unit =>
Put_Line (" - user-defined unit");
when Asis.An_Implementation_Unit =>
Put_Line (" - implementation-specific unit");
when Asis.A_Predefined_Unit =>
Put_Line (" - Ada predefined unit");
when Asis.Not_An_Origin =>
Put_Line
(" - unit does not actually exist in a Context");
end case;
end loop;
end Processing_Units;
-- �������: ��� ���������� ������� �������� Context, ���������
-- ��� ���������� � ������� ���������� � �������� ���� ����������
-- ASIS ��� ������������ ���� �������������� ��������:
Asis.Ada_Environments.Close (My_Context);
Asis.Ada_Environments.Dissociate (My_Context);
Asis.Implementation.Finalize;
exception
when Asis.Exceptions.ASIS_Inappropriate_Context |
Asis.Exceptions.ASIS_Inappropriate_Compilation_Unit |
Asis.Exceptions.ASIS_Failed =>
-- �� ������ �������� �� ��� ���� ����������, ������� ����������
-- � ASIS, � ������ ���, ������� ����� ���� ���������� � �����
-- ���������� ASIS
--
-- ���� ���������� �����-���� ���������� ASIS, �� �������
-- ������ ������ ASIS � ������ ����������� ASIS:
Put_Line ("ASIS exception is raised:");
Put_Line ("ASIS diagnosis is:");
Put_Line (Asis.Implementation.Diagnosis);
Put ("ASIS error status is: ");
Put_Line
(Asis.Errors.Error_Kinds'Wide_Image
(Asis.Implementation.Status));
end Example1;
2.3 ��������� ������������������ �������
���������� ASIS ������ ������������ ��������� ������������������ �������:
-
Asis.Implementation.Initialize (…);
���� ����� �������������� ���������� ��������� ������ ���������� ASIS � �������������� ���������� ASIS � ������. ��� ����������� �������� ASIS, ��������� � ��� �� ������ ������������� ���������� ASIS ����� ��������.
-
Asis.Ada_Environments.Associate (…);
����� ������ ������������� ����������� �������� ���������� ��������������� ���������� ���� ASIS Context. ����� �������� �������� ��������� ��������� ����������� ��������� (Context) ASIS � «������� �����». ������ �������� ����� ���������� � ����� ��������������� ���������� ������� Associate ������������ �����������, ������, ����� ������������� ����� ���������� � �������� ���������� ���������, �������� ASIS, ������������ ���� ����������, ����� ��������������� ��� ��������� ������� ���������� ASIS (ASIS Compilation Units) ��������� ��� �������� ASIS.
-
Asis.Ada_Environments.Open (…);
�������� ���������� ��������� ASIS ������� ��������������� �������� Context, ������� �������� ��� ���� �������� ASIS.
����� �������� ���������, ���������� ASIS ����� ���������� ��������� �� ����� ��������� ������� ���������� ASIS (ASIS Compilation Units), � ������������ ���������� ������ ����� ������������ ���� ������� � �������� (Elements) ASIS � �.�.
ASIS ���������� �� ���������� ���������, ������� �������� «������������» ���� �������� Context �������� ��������. �����-���� ���������, � ������� ��-ASIS-��������, �������� ������ ������������ ����������� ASIS ��� �������� � ���������� ����� ���������, � �� ����� ����� �������� Context ������, �������� � ������.
-
Asis.Ada_Environments.Close (…);
����� �������� ��������� ���������� ����������� ��������� �� ���� �����-���� ����������. ��� �������� �������� ASIS, ������������� � ����� Compilation_Unit, Element � Line, � ���������� ����� ���� �������� Context ��� ������, ���������� �����������, � �� ������������� ����� �������� ��������� ����� �������� � ������. �������� �������� ��� ��������� Context �� ������ ���������� «������������», ����� �������� Context �������� ��������. ������� ��������, ��� �������� �������� Context ��������� ���� ���������� � «������� �����» � �� ����� ���� ������ �����, ��������� �� �� ����� ����������. ����� ������� ��������, ��� ���������� (�� ����, ��������������� ��������� ������� ���������� ASIS (ASIS Compilation Units)) ��������� Context ����� ���������� �� �����������, ��������� «������� ���» ��� ���������� ���� �������� Context ��������� ��������.
-
Asis.Ada_Environments.Dissociate (…);
���� ������ ��������� ���������� ����� ��������������� ���������� ASIS � «������� �����», ����� ���� ��������������� ���������� ��������� ���������� ��������������.
-
Asis.Implementation.Finalize (…);
���� ����� ����������� ��� �������, ������� �������������� ����������� ASIS.
���������� ����� ������������ ��� ���� ��������� �����. ��� ����� ����������� ������������ � ������� ���������� ASIS, ������������� � ��������� ���������� ������ � ���� �� ��������� (���� ���������� ASIS �������� ��������������), � ����� ��������� � ��������� ���� � ��� �� �������� (���� �� ��������� ���������� ����� ���������� � «������� �����»).
���������� ����� ����� ��������� ���������, ������������ �������� ����������� ASIS (������� ������ ������������ �����������). ��� ����, ��� ������� ��������� ���������, ���������� ����� ������������ ������������ ��������� ������� ����������, ������� �������� �� ����� ��������� (������� ������ ����� ������������ �����������). ������� ��������, ��� ASIS-���-GNAT �� �������� ������� ����������� ����������� �� ����� ���������� �/��� ������� ����������, ������� �������������� ������������, ���� ���������� ASIS �� ��������� ����� ������ ������� �� ������������� ��������� ��������.
2.4 ���������� ������������ ������ ASIS-����������
������� ���� ������ ������������, ��� �� ��������� ��������� ������������� ASIS-���-GNAT.
��� ��������� ������������ ������ ���������� ASIS �� ������ 1.2 (��������������, ��� �������� ����� ����� ���������� ��������� � ������� �������� � ����� � ������ example1.adb), ��� ���������� ��������� ������� gnatmake ��������� �������:
gnatmake example1[.adb] -largs -lasis
������� ���������� � ���������� ����������� ������� ��� ���������� ASIS � ����� ASIS-���-GNAT ����� �������� ��������������� � ����� 10. ����������, ���������� � ���������� ���������� � ASIS-���-GNAT.
2.5 ��������� �������� ��� �����
��� ��������� �� ��������� ��� ����������, ������� ���������� ��� ���������, ASIS-���-GNAT ������������, ��� ����������, ����� ��������. ���� ������ ������������ ������������ GNAT, � �� �������� «������» ���������� �������� ������ �����������. ����� �������� ��� ��������������� � ������ 4.1 ����� ��������� � ������ ASIS ����� �����������.
����� ������� ���� ������ ��� ������, ������������� � �����-���� ����� � �������� �������, ���������� ��������������� ���� ������ ��������� ����� ����������� -gnatc -gnatt ����� ��������� ����������, ������� ����������� � ������ 2.2 ���������� ASIS ��� ������� ������������ ������, � ���� ��, ���������� ��������������� �������� ����� ����� ���������� � ������� ��������� �������:
gcc -c -gnatc -gnatt example1.adb
� ���������� ����� � ������� �������� ����� ������� ���� ������ � ������ example1.adt.
����� ��������� ���������� ���� ��� ������������ � ������������ ����� �������� ���������� � ������ 4. �������� ASIS � 7. ������� ������� ASIS.
2.6 ������ ASIS-����������
����� ��������� ������������ ������ �������, ���������� ��������� �� ���������� ���� ���������� ASIS. ���� �� ��������� ���� �����, ������� ��������������� � ����� 2. ������ ���������� � ASIS, �� ������ � ���, � ������� ��������, ������ �������������� ����������� ������ example1 � ���� ������ example1.atd (������� ��������, ��� ���� ������ �������� ���������� � ������ ��� �������� �� ��� ������ � ��� ���� ������� �� ������� ���� ������ ������������ �������). ���� �� �������� ���� ���������� ��� ���������� ���� �������� ASIS, ������� ������ � ������������ ����� ������ example1.adt (����������� ��������� ASIS ����� �������� ��������������� � ����� 4. �������� ASIS ����� �����������). ��������� ������� ����� ����� ��������� ���:
A Context contains the following compilation units:
Standard (spec) - Ada predefined unit
Example1 (body) - user-defined unit
Ada.Text_IO (spec) - Ada predefined unit
Ada (spec) - Ada predefined unit
Ada.IO_Exceptions (spec) - Ada predefined unit
Ada.Streams (spec) - Ada predefined unit
System (spec) - Ada predefined unit
System.File_Control_Block (spec) - Ada predefined unit
System.Parameters (spec) - Ada predefined unit
Ada.Characters.Handling (spec) - Ada predefined unit
Ada.Characters (spec) - Ada predefined unit
Asis (spec) - user-defined unit
A4G.A_Types (spec) - user-defined unit
A4G (spec) - user-defined unit
Ada.Characters.Latin_1 (spec) - Ada predefined unit
A4G.Int_Knds (spec) - user-defined unit
Types (spec) - user-defined unit
Unchecked_Deallocation (spec) - Ada predefined unit
Asis.Implementation (spec) - user-defined unit
Asis.Errors (spec) - user-defined unit
Asis.Ada_Environments (spec) - user-defined unit
Asis.Compilation_Units (spec) - user-defined unit
Asis.Ada_Environments.Containers (spec) - user-defined unit
Asis.Exceptions (spec) - user-defined unit
� ������� ����������, ���������� ����������� ASIS ��������������� ��� ������ ������������ �������������, � �� ������ ������������ �����������. ������� ����� ��������, ��� ��������� ���������� ���������� ������� ���������� GNAT (GNAT Run-Time Library) ����� ���� ������ ������� � ������������� ��������� withed ������ ��������� ���-�������, �, �������������, ��� ����� ���� ������������ � ����� ������. ��������� ����� �� ������ System.File_Control_Block � ���������� ���� ������.
3. ����� ASIS
��� ����� �������� ������� ����� ����������� ASIS, ������� ���������� � ��������� ASIS ISO/IEC 15291:1999 ASIS Standard. ���� ����� ������ ����������� � ���, ����� ������ ����� ������������� ASIS � ������ ����������� ���������� ����� ����������� ASIS � ���� �� ����� ������������� ��������� ASIS.
��� ��������� ����� ��������� �������� ������� ��������������� ���������� � ������������ ASIS, � ����� �������� ����� ��������� ������������� — ����������� ������� ������� ASIS (��. 7. ������� ������� ASIS).
3.1 ������� ���������� ASIS
ASIS ������������ �� ���� ������� �����������, ������������ ��� �������� ���-��������:
- �������� Context
- �������� ASIS — ��� ���������� ���������� ��������� ���, ������� ����������� � RM 95 Chapter 10. �� ��������� ���������� ��������� ������, ��� ������� ������ ���������� ��������� ����� ���������� ASIS � ���������� ���, ����������� ���������� ASIS ����� ������������� �������� ASIS ��� ������ ����������� ������ ������������� �������, ������� �������� ����� ������� ASIS.
- ������ ���������� Compilation Unit
- ������ ���������� ASIS — ��� ���������� ���������� �������������� ������ ���. ��, �����������, ����-�-���� �������� ��� �������� ������������� �������, ������� ����������� � RM 95, � ����� �������� ��������� �������� «���������� ��������», ���������� ������������ ����������� ��� ��� ������������� ������ (����� ��� ����� ��������� �����������, ��� ���������� ������� ���������� ��� ���������� �������� ����� ������). ������ ���������� ASIS ��������������� ��� �������������� ������ ������������� � ���� «������� �����», ������������ ������������� ������ ��� ������ �����. ������ ���������� ����� ��������������� � ������������� ��� «����� ����» � �������� ��������� ASIS.
- ������� Element
- ������� ASIS — ��� ���������� ���������� ��������������� ���������� ������ ���������� ASIS (��� �����, ��� � �������).
��������� ���������� ASIS ���������� �������������� ����������, ������� ���������� ��� ������������ ���������� ���������������� ����������������� ����� ������������:
- ��������� Container
- ��������� ASIS (������������ � ������������ ������� Asis.Ada_Environments.Containers) ������������ ����������� ���������������� ����������� ��������� ASIS ����� ����������� ������� ���������� ASIS � ����������.
- ������ Line
- ������ ASIS (������������ � ������������ ������� Asis.Text) �������� ���������� ������ ��������� ������ ���. ������ ASIS �������� ������, ������� ������ � �������.
- �������� Span
- �������� ASIS (������������ � ������������ ������� Asis.Text) ���������� ���������� ��������, ������ ���������� ��� ���� ���������� � ��������������� �������� ������.
- ������������� Id
- ������������� ASIS (������������ � ������������ ������� Asis.Ids) ��������������� ������ �������� ���������� «������» �������� ASIS ��� ���������� ASIS. ���������� ����� ������� �������� �������������� Id �� �������� �������� Element � ��������� ��� � �����. ����� �����, ��� �� ��� ������ ���������� ����� ��������� ����� �������� �������������� Id � ���������� ������������� ��� �������, � ��������������� �������� �������� Element.
3.2 �������� ������� ASIS
ASIS ����������� ��� �������� ������������ ������� ���. ���� ���������� ������� �������� ���� ��������.
Asis — ��� �������� ����� ��������. �� ���������� ������� ���������� ASIS (Context, Compilation_Unit � Element) ��� ��������� ����. �� ����� �������� ���������� ������������ �����, ������� ��������� ����������������� �������� ��� ��������� ASIS (��� ������ �������� ��������� ���, ��������� � RM 95) � ������������� ������� ���������� ASIS. ���� ����� �� �������� �� ������ �������;
Asis.Implementation — �������� ������������, ������� ��������� ����������� ASIS: ���������� � ������� ��, �������� � ����������������� ��������������� ����������. ��� �������� ����� Asis.Implementation.Permissions �������� ���������� �������, ������� ������ ��� ��� ������������ ����������� �������� ASIS ����������� � ����� ���������� ASIS;
Asis.Ada_Environments — �������� �������, ������� ��������������� � ���������� ASIS: ����������� � ��������� ����������, ��������� � ��������� ��������;
Asis.Compilation_Units — �������� �������, ������� �������� � �������� ���������� ASIS: ��������� ������� �� ���������, ��������� ������������� ����������� ����� �������� � ���������� ������ ��� «������� �����»;
Asis.Compilation_Units.Relations — �������� �������, ������� ���������� ��������������� ������������� ����������� ����� ������� ���������� ASIS, ��������, �������� ���� �������, ������� ���������� ������� ������ ��� ��������� ��� � ������ �������������� ���������;
Asis.Elements — �������� �������, ������� �������� � ���������� � ��������� �������� �������� ���������: ������� ������� �� ������� ���������� ASIS � ��������� ASIS, ������� ����������� ������� �������� � �������� ������������� ���������, �������, ������� ���������� ��� ������� �������� ��� ���������� ������ ���������� � ��� ���������� �������. �� ����� �������� �������, ������� �������� � �����������;
Asis.Declarations, Asis.Definitions, Asis.Statements, Asis.Expressions � ASIS.Clauses — ������ �� ���� ������� �������� ������� ������ � ���������� ���������������� ����, �� ����, �������������� ������������� �����������, ��������, ����������, ��������� � ����������� ��� ��������������;
Asis.Text — �������� �������, ������� ���������� ���������� � ������������� ��������� ������ ������� ���������� � ��������� ASIS;
Asis.Exceptions — ���������� ���������� ASIS;
Asis.Errors — ���������� ��������� ������� ������ ASIS.
3.3 ����������� � ������������� �������
�������, ������� �������� � ���������� � ���������� �������� ��� ������ ���������, ������� �� ����������� � ������������� �������.
������ ����������� ������ (����� Enclosing_Element) ��������� ���� ��� ������������ (�� ������ � �������) ���-���������, � ������������ � ��������� ������������� ��������� ASIS. ������ Asis.Elements.Enclosing_Element ��������� �������� ��� — �� ������� � ������ (��� ������� ���������, ���������� � �������� ����������� ������������� ��������, ���������� ������� ����� �� ��������������� ����, ��� ��������� �������� �� ���������� ��� � ����������� � RM 95 ���������, � ����� ������, ������������ �������������� ������� ��������� ����� ������ Enclosing_Element, ������������ � ��� ����������).
������������� ������, ��� ������� ��������, ���������� ������� �������������� ��������� ������������� �������� ������� (��������, ����������� ���� ��� ������-���� ��������� ��� ���� ���������, ����������� �������������� ��� ����������� �������� ����� � �.�.).
��������, ���� � ��� ���� ������� El �������������� ���������� ������������:
X := A + B;
����� �� ����� �������� ����������� ���������� ���� ���������� ������������ �������� ��������������� ����������� �������:
El_Var := Asis.Statements.Assignment_Variable_Name (El); -- X
El_Expr := Asis.Statements.Assignment_Expression (El); -- A + B
�����, �� ����� ��������� ������ ������������� ������� ����� ����������, �������������� � ������� El_Var, � ���������, ��������������� � ������� El_Expr, ������������ ���������� ������������� �������:
El_Var_Def :=
Asis.Expressions.Corresponding_Name_Definition (El_Var);
El_Expt_Type :=
Asis.Expressions.Corresponding_Expression_Type (El_Expr);
��� ���������, El_Var_Def ����� ������������ � ���� A_Defining_Identifier � ����� ������������ ������ �������� X, ����� El_Expt_Type ���� An_Ordinary_Type_Declaration ����� ������������ ����������� ���� ��������� A + B.
���� �� �������� Asis.Elements.Enclosing_Element ��� El_Var ��� El_Expr, �� �� ������� �������, ������� ������������ ���������� ������������.
� ������ ����������� � ������������� �������� ������������� ��� ���������� ���������� ������� ���� ������ ���������: ��� ����������� ������� �� ����� ����� �� ������� ������ ������ ���������� ASIS, ������ ��� ������������� �������� ������ ������ �������� ����� �������� ������� ���������� � ����� ������ ���������� ASIS, � ��������� ����� ������� ���������� � ������ ������ ���������� ASIS.
3.4 �������� ��������� ������ ASIS
������ �� ����������, ������� ���������� � ASIS (� ���������������� ���������� ��� Storage_Error) ����� ���������������� �� ������� �������� ASIS. ���������� ASIS ���������� � ������ Asis.Exceptions.
��� ����������� ���������� ASIS, ASIS ������������� ������ ������ (��������� ������� ������ ASIS ���������� ��� �������� ���� Asis.Errors.Error_Kinds) � ��������� ������ �����������. ���������� ����� �������� ������� �������� ������� ������ ASIS � ������� ������� Asis.Implementation.Status, � ������� ���������� ������ ����������� � ������� ������� Asis.Implementation.Diagnosis. ����� �����, ���������� ����� ����������������� ���������� ������� ������ � ������ ����������� � ������� ��������� Asis.Implementation.Set_Status.
3.5 ������������ �������� ������������ �������� ASIS
ASIS ����� ������ ���� ��� (Element) ��� ���� ����� �������������� ����������� ���, � ������ ���� ��� (Compilation_Unit) ��� ���� ����� ������������� ������� ���. ������, ������ �������, �������������� �������� ASIS � ������ ���������� ASIS. ����� �������������� ����������� ������ ��� ������������ ����� ��������� ASIS � ������� ���������� ASIS (��������, �� ����� ������ � ����� ������������ ������ Assignment_Variable_Name ��� ��������, �������� ��� An_Ordinary_Type_Declaration).
ASIS �������� ����������� � ������������ ��������� ������������/������������ (dynamic validity checking interface). ���� ������ ��������� �������� �������� ����������������� ������� ��������� ����������� ����, �� ��� �������������, ��� ����� ������ ����� ������������ ������ �� �������� ��� ��� ������ � ������. ��� ������ �������� �������� ��� ��������� ���������, ��� ������� �� ���������� � ������ ��������� ����������� ����, ����� ������������ ���������� Asis.Exceptions.ASIS_Inappropriate_Element �� �������� ������ Asis.Errors.Value_Error.
���� ������ ��������� ������ ���������� �������� ����������������� ������� ������� ���������� ����������� ����, �� ����� ������ ����� ������������ ������ �� ������ ���������� ��� ��� ������ � ������. ��� ������ �������� �������� ��� ��������� ������� ����������, ��� ������� �� ���������� � ������ ������� ���������� ����������� ����, ����� ������������ ���������� Asis.Exceptions.ASIS_Inappropriate_Compilation_Unit �� �������� ������ Asis.Errors.Value_Error.
���� ������ �������� ���������������� ������� ��������� ����� ��������� ��� ������� ����������, ��, ��� ������ � ������ �����������, ����� ������ �� ����� ���������� ������� ����������. ������, ������������ �������� �������� ���������� ����� ����� ����� ������ ��� ��� ����������, ��� ������� ������ � ������. ��������, ���� ������ Asis.Elements.Statement_Kind ������ ��� ��������� � ����� A_Declaration, �� �� ������ ������ ��������� Not_A_Statement, �� ��������� ��� ���� ������� ����������.
3.6 ASIS-��������
ASIS ��������������� ������ �������� ������������ ���-����, �������������� ������������� ���������� Asis.Iterator.Traverse_Element. ��� ��������� ������������ ������������ ������ ASIS ������-���� �����-��-����� (����� �������, �������������� ��������� ���-���� ������������ ��������� ��������� ASIS). � ����������� ������������, ��� ��������� ��������� � ������� �������� ���������� ��������� Pre_Operation, ����� ������� «��������» �������, � ���������� ��������� Post_Operation, ����� «��������» �������. �������������� ���� ����������� ���������� �������� Pre_Operation � Post_Operation, ������������ ����� ����������� �������������� ��������� ���� ��������� ASIS, ������� ���������� � ������ ������ ASIS.
��������, �����������, ��� � ��� ���� ��������� ���������� ������������:
X := F (Y);
��� ������ ��� �������� ASIS, ������� ������������ ���������� ���� ����������, ����������� ��������� Traverse_Element ��������� ��������� (����, Pre_Op � Post_Op �������� ������������ �����������, ������� ������� ��� ���������� ���������� ��������� Pre_Operation � Post_Operation, � ����� ���������� ������������������ ������� Pre_Op � Post_Op � �������� ������������):
(1 Pre_Op) X := F (Y) (10 Post_Op)
|
|
-----------------------------------
| |
(2 Pre_Op) X (3 Post_Op) |
|
(4 Pre_Op) F(Y) (9 Post_Op)
|
|
---------------------------
| |
(5 Pre_Op) F (6 Post_Op) (7 Pre_Op) Y (8 Post_Op)
����� ����� �������� ����������� ������� ������������� Traverse_Element, ��� �������-�-������ ���������� ��������� �������� ���������� ASIS, ������� ���������� � ������� �������� ASIS, ������� ������������ � ������������ ASIS-���-GNAT.
3.7 ��������� �� ������������ ASIS
��������� ������ � ��������� ����� ��������� ��������� ��� ������ �����-���� ������������� ���������� � �������� ASIS:
- ����������� ������� ����� ������� ASIS, ������� ���������� � ������ 3.2 �������� ������� ASIS, ����� ���������� ������ ������� ������ ������� ASIS (��������, ���� ��� ����������, ��� ����� ���� ��������� � �������� ���������� Compilation_Units — ������� ���������� ������ ������ ������� Asis.Compilation_Units, ���� �� ����� �������, ������� ����� ���� ������������ ��� ������������ � ������� ����������� (declarations), ���������� ���� ������ ������� Asis.Declarations).
- ������ ������� ASIS, ������������ ���� (Asis.Declarations, Asis.Definitions, Asis.Statements, Asis.Expressions � ASIS.Clauses) �������� ��������� ASIS ����������� � ������������ � �������� �������� ��������������� ����������� � RM 95 (��������, ����� Asis.Statements ���������� � ������� ��������� �����, � ������������� �������� ������������ ����������).
- ����� ���� ������������� �������� ���������� � Corresponding_… ��� Implicit_….
- ����������� ��������������� ����������� (comment sentinels), ���������� � ������������ ������� ASIS. ��������������� ����������� ���� «—|ER» (�� «Element Reference«) ������ ����� ��� ��������, � �� �������������� ������� ��������������� ������������ ���� «—|CR» (�� «Child Reference«), ������� ����������� ������� ���������� �������� �������� ��� ������ ��� ���������� ��������.
4. �������� ASIS
4.1 ����� ��������� � ������ ASIS
� ����� ������ ���������� ASIS �� ����� ������������� �������� ASIS (ASIS Context) ��� ��������� ������� ���������� ASIS (ASIS Compilation Units), ������� �������� ��� �������� ASIS. ����� ����������� ���������� ASIS �������� ����������� ���������� ��������� ASIS �� ��������� ���������� ���������� ������, ������� ��������� � ����������� ������������ ���-������������ ��� ���������� ������������� ������� ���. �����-���� �������� ASIS �������� ��������� ������ ����������� ������������� ������.
� ������ ASIS-���-GNAT, ���������� ASIS ���������� �� ������������ ������������ ������ �������� (��� ������ — ������ ��������). ��� ������� GNAT �� ����������� ������ (-gnatt), �� ������� � ������� ���� ������ � ������, ����� � �������� ���������� �� ���� ���������� ������. ���� ������ �������� ������������ «�������» ���������� �������� ������ ����������� (���������� �� ����������� �������������� ������ (Abstract Syntax Tree, ���������� — AST)), ���������� � ����� ����� ������� ����������� ����������. ����� �����, ASIS ������ ���� ������ � ���������� ���� ���������� ��������� ������ � ������������ � �������, ������� ���� ���������� � ����� ����� ��������������� ������� ����������� ����������.
����� �� ������ ��������� ������ ���������� GNAT, ������� �������� �� �������� �������, �������� ��, ��� AST �������� ������ ���������� �� ������ �� ����������������� ������, �� ����� � ��� ���� ������� �� ������� ���� ������ ������� ������������. �������������, ������� ����������� ������ ������, ASIS ����� ������������ ���������� ����� ��� �� ����� ������. ��� ��������� ����� ������, ����� ���� ������������ ���������� � ������ ��� �������� ��� ������ ���� �������, � ����� ��� ���� ������� �� ������� ���� ������ ������������ �������. ������, ��� ��������� ���������� �������, ASIS, � ��������� �������, ������ �������� �������������� ������ (� ���������, ����� ���������� ������������� ����� ��������, ������� ������������ �� �������� ���� �� �����). �������������, � ���� ������ ���������� ASIS, ASIS ����� ������ ��������� ����� ��������, � �� ����� ������������ ���� � ��� �� ���� ������ ��������� ���.
��� ����� ������ ����������� �� ����� �������������� ����� � �������� �������, ����� ������ �������� �� ‘.adt’. ��������, ���� ������ ��� foo.adb ����� ����� ��� foo.adt.
4.2 �������� ������ ������ ��� ������������� � ASIS
��� ��������� ���-���������, �� GNAT, �� gnatmake �� ������� ����� �������� �������������. ��������������� �� �������� ������ ������ ��������, ������� ����� ��������� ���������� ����� ���-����������� (������������ �������������� ASIS �/��� ����������� ASIS), � ����� ������������� ��������������� �������� � ���������������� ������� �������� �������, ��������� ��������� �� ������������ ���������� ASIS.
����� ������� ���� ������ ��� ������-���� ����� � �������� �������, ��������������� ���� � �������� ������� ������ ���� ������������� � ��������� ����� -gnatc � -gnatt:
gcc -c -gnatc -gnatt foo.adb
���������� ���� ������� ����������� ���� foo.adt, ��� ���� ���������������, ��� ���� foo.adb �������� �������� ����� ����������� �������������� ������ ���. ����� -gnatt ��������� �� ������������� ��������� ����� ������, � ����� -gnatc — ��������� ���������� ������. ASIS ���������� ����� ��������, ������� ������� ��� ���������� ������, � �� ����� ��� GNAT ��������� � ����������� AST, ��� �������� ��������� ������. �������������, ������������� ��������� ������ �������� � ��������� ������ — ����������.
������� ������� ��������� ������ �������� ��� ��������� � ������ � ������� ��������:
- ASIS-���-GNAT ������������ ��� ���������� ������ ����������� GNAT. ��� �������, ������� ����� �������������� ����������� ASIS, ������ �������������� ���� ������� �����������.
- ��� �������� ����� ������ ��� ASIS, ����������� ���������� �������� ����� -gnatc � -gnatt. �� ������� ������������� �� � ��������� ����� -gnatct ��� -gnattc, ��������� ��� �������� � ��������� ���������� ���������� �����.
- ���� � �������� ���������� ���� ���������� ������, �� ���� ������ �� ����� ������.
- � ������� �� ��������� ������, ���� ������ ����� ���� ������������ ��� ������ ����������� �������������� ������ ���, ������� �������� ������������ �������, ������� ������� ������� ��� � ����������� �������.
- ����� ������ ��������, �������������� ASIS (��� ����������� ASIS) ����� ���� ���������������. ��������, ��� ����� �������� ����� ���� ������� ��� ������������� ������ ������ ��������� ������ ������ � ���� �� ������. ��� �������� � ������������������ � ��������������� ��������� ASIS. �� ����� ���������� ���������� ������� ���������� � ������ 4.4 �������� ���������������.
- �� ����������� �������������� ����� ��������, ��������� ����� � ����� � ��������� �������� �� ��������� ������������ �������� �������! ��� ������ «��������» ASIS, � �� ����� ���������� ����������������� ����� ������� �������� � ������� � ��������� ��������, ��� �������� ���������, ��� �� ������ �������� ������ ��������� ��� ������� ����� � ��������� �������� ��� ���������� ����� ��� ���������� ������ ���������� ASIS.
- ��� ������� gcc ��� gnatmake, ��� �������� ������ ��������, ��� ����� ������ � ���������, ������� �������� ���������� �� ������������� �����, ������ ���������� � «./» ��� «../» («.\» � «..\» �������������� � Windows NT/95). ����� �������, ��� �������� ����� ������ ��� ����� � �������� ������� foo.adb, ������� ���������� �� ��������� �������� � ������ «inner», ���������� ��������� gcc � ������� �������:
>gcc -c -gnatc -gnatt .\inner\foo.adb
�� �� �������:
>gcc -c -gnatc -gnatt inner\foo.ads
����� ASIS «����������».
- ��� ������ ����� ������, ASIS ���������, ��� ���� ���� ������ � ��������� ����� -gnatc, � �� �� ����� ������������ �������, ������� ������� ��� �������� ����� -gnatc.
- ����� �������� � ����� ALI. ��� ������� ��� ���������� ������, GNAT �� ��������� ���� ALI ����� ���� ALI, ��� �������������� ������, ��� ���������� � ���� ���� ���� ALI �����������. ����� ����, GNAT, ��� ��������� ����� ������, ����� ������������ ��������� ���������� �� ������������� ����� ALI. ����� �������, ���� ��� ���������� ������������� ������� ��� ����� ��������� ��������� ������ � ������ ��������, ���������� ������� ������� ��������� �����, � ����� — ����� ��������.
- ��� ������ �������� ���������� ������ ���� ���������� ����� ����� — .adt, � �� ����� ��� ����������� ���������� GNAT �� ������������ ������ � ��������� �������� ��� ���������� ��������� ���������� ���� ������ ��� ������ ������������ (.ads) � ��� ������ ��� (.adb). ��� �������������, ��� �������, ��� ��������� ������, �� ������������ ����:
>gcc -c -gnatc -gnatt foo.adb
� ����� — ��������������� ������������:
>gcc -c -gnatc -gnatt foo.ads
����� �������, ���� ������ foo.adt ����� ������ ������: ������ ��� — ��� ����, ������ ��� — ��� ������������. ��� ����, ���� ������, ������� ������� ��� ������������, ��������� ���� ������, ���������� ��� ����, � ���������� � ����, ����������� ASIS, ����� ��������. ���� �� ������� ��������� ���� ������ ��� ������������, � ����� — ��� ����, �� ���� ������ ��� ���� ��������� ���� ������ ��� ������������, � ��� ���� �� ����� ������ ���������� ������������ ASIS, ��������� ������ ��� ���� ����� ��������� ��� ���������� ��������������� ������������.
����� �������� ������ ����������, ��� �������� �������� ��� ��������� �������� ������� ���, ���������� �������������� ��������� ������:
- ���� ��������� ��������� ��������� ���-����������� ���������� ����������� ������ ���������, �� ������� ������������ ������� gnatmake (�� ������������� ���������� � ������ 8.4 ������������� gnatmake ��� �������� ������ ������);
- � ��������� ������, ������� ������� ������� ����� �������� ��� ������������, � ����� — ��� ���:
>gcc -c -gnatc -gnatt *.ads >gcc -c -gnatc -gnatt *.adb
- ������ ������ �������� �������� ���������, ������� �������� �� �������. ������� �������� �������������� ����� �������������� ����������� ������ �������� � ��������� �������� �������� ������� ��������. (��. ����� 8. ��� ��������� ����������� ���������� ASIS).
������� ��������, ��� ����� ��������� � ��������� ��������� ASIS, ���������� ASIS �� ������ �������� �������� ������ �������� �������� �������� (��� ������ ��������������� ��� �������� ����� ����������� ������ ������� ASIS), � ��������� ������, ��������� ���������� ASIS ����� ���� ���������.
4.2.1 �������� ������ ��� ���������� ������������ ������
������������� ���������� ������������ ������ ASIS (ASIS Data Decomposition Annex, ���������� — DDA) �� ������� �� ������������ ASIS ���������� �����-���� ����������� ��������, �� ����������� ����������. ���������� ASIS DDA ���������� �� ��������� ����������� ���������, ������� ����������� ������������ � ������������ ASIS ��������. ������������ ASIS ������ ����������� � ��� �����, ��� �������, ������� ������� ��� ����������� �������, �� �������� ���� ����������� ����������, ������������� ������� ASIS DDA �� �������� ��������� �� ��������, ������� ������� ��� ����������� ������� (� ����� ������� ����� �������� �� ���������, ����� ����� ������ �������� ������������ �������� �������� ������, ������� ������� ��� ������������ ������).
����� �������, ��� ������ � ASIS DDA, ������������ ������ �������� �������� ��������� �������� ��� ����������� �������. ����������, �������� ������ ��� ������������ ������ �� �������� ������������, ������������ ������ ����� ����� �������� ����� ���� ������-��������. ���� � ����� �������� ������������ ������� ������ ��� ���� ������-��������, �� ��� ����� ��������� ������ ���������� (������� ���������, ������� ���������� ��� DDA) ��� ���� ������������ ����������� �������. � ������ �������, ������, ������� ������� ��� ���������� ������������ ������, ������ ��������� ���������� � ���� ������-��������, ����� �������, ��� ������� ����� ������ �� ��� � � ������ ��� ���� ������-��������.
������ �������� �������� ��������, ��� ������������� ASIS DDA, �������� ������������� ������� gnatmake — ��� ������� �� ����� ��������� ��� ����������� ������� ��������� �������.
4.3 ��������� ������� ����������� ��������� ASIS � ASIS-���-GNAT
������ Asis.Ada_Environments.Associate, ������� ���������� �������� Context, ����� ��������� �������:
procedure Associate
(The_Context : in out Asis.Context;
Name : in Wide_String;
Parameters : in Wide_String := Default_Parameters);
� ASIS-���-GNAT �������� Name �� �������� ������� ����������� �������, � ��� �������� �������������� ��������� ������������ ���������� ������ ���������� Parameters.
��� ������������� �������������� ��������� ASIS, � ASIS-���-GNAT, �� ������ ������������ � ������� Asis.Ada_Environments.Associate �������� ������ ���������� Parameters ��� ������������ ����������:
- ������ ����������� ������ ������ �������� ���������� �������� Context (����� -C);
- ������ ��������� ������ �������� ��� �������� ��������� Context � ��� ��������� �������� ASIS (����� -F);
- ������ ��������� ������ � ��������� �������� �� ����� �������� ���������������, ��� �������� ��������� Context (����� -S);
- ���� ������ ������ �������� ���������� �������� Context (����� -T);
- ���� ������ ������ � ��������� ��������, ������� �������������� ��� ������� GNAT ��� �������� ������ �������� «�� ����» (����� -I);
�����, ��������� �������������� ����� (� � ��������� ������� ������) ��������� ����� ������ �������� ��� ��������, ���������� ���� ������ ��� ������ �������� �/��� ������ � ��������� ��������. ���� ���������� ����� ���������� �������������� ��������� Context � ASIS-���-GNAT (������������ ����������� � ASIS-���-GNAT Reference Manual).
������� ��������, ��� ����� ����� �������������� ��������� �� �������� �����������. �� ������ � ������� ��� ��������� � ������ ������������� ���������� ASIS, � �� ����� �������� ��� ��������� ������������ ����� ����� � �������.
��� ����������� ������ ������ �������� ������������ �������� Context �������� ������������� ��������� �����:
-
-C1
�������� �� ������ ������. ���������� �������� Context, ������� ��������� ��������� ������ ������. ��� ������ ����� ������ ������ ���� ������� � ������ ���������� Parameters ����. -
-CN
�������� �� N ��������. ���������� �������� Context, ������� ��������� ������� ������ ��������. ����� ������ ��������, ������������ �������� Context, ������ ���� ���� ������� � ������ ���������� Parameters. -
-CP
�������� �������. � ��������� ������ ��� ����� �� �����������. ���� ����������� � ����������� ���������, ������� ������������ ����������� �������� �������, ��� ��� ������� � RM 95, 10.2. - -CA
�������� �� ���� ��������. ���������� �������� Context ��������� ������� �� ���� ������ ��������, ������� ����������� � ���� ������ ������ ��������, ��������� � ������ ���������� Parameters. ����� ��� ����� ����������� ������������ � ������ -FM, ASIS, ��� ��������� �������� �������� ������ ���������� ASIS (ASIS Compilation Units), ������� ����� ����� �������� «�� ����».
��� �������� ������� ��������� ������ �������� ��� �������� ��������� Context � ��� ��������� �������� ASIS, �������� ������������� ��������� �����:
-
-FS
��� �������, ������� ��������������� ��� ����������� �������� Context, ��������� «�� ����», ��� ����������� �� ������������� ��������������� ������ ��������. ����� ��������, ���� ������ ����� ���� ����������� �������� ���� �������� Context �������� ��������. ��� ����� ����� ���� ����������� ������ ������ � ������ -CA. -
-FT
������������ ������ �������������� ��������� �������. ASIS �� ����� ������� ���� ������. - -FM
��������� ������: ���� ����������� ���� ������ �����������, �� �������������� ������� ������� ��� «�� ����». ��� ����� ����� ���� ����������� ������ ������ � ������ -CA.
��� �������� ������� ��������� ������ � ��������� �������� �� ����� �������� ��������������� ��� �������� ��������� Context, �������� ������������� ��������� �����:
-
-SA
����� � ��������� �������� ��� ���� ������� ����������, ������� ����������� � ��������� Context (����� ����������������� ������ Standard), ����� ������ ��� �������� ��������������� � �������� �������� ��������� Context (��. 3.4, ��� ��������������� �������� ��������������� � ASIS-���-GNAT). -
-SE
������ ������������ ����� � ��������� �������� ��� ���� ������� ����������, ������� ����������� � ��������� Context, ����� ������ ��� �������� ��������������� � �������� �������� ��������� Context (��. 3.4, ��� ��������������� �������� ��������������� � ASIS-���-GNAT). - -SN
�� ���� �� ������ � �������� �������, ������� �������� �� ������������ �������� �������, �� ����� ����������� ��� �������� ���������������� ������ ������ �������� ����������� �������� Context.
������� �� ��������� �������� -CA, -FT � -SA.
������� ��������, ��� ��� ��������� -C1, ������ ���������� ������ ��������� ������������ ��� ����� ������. ����� ����, ��� ������ ���������, ���� �� ����� �������� ��������� ���� ���� ������, �� �����-���� �������, �� ����� ������� ��������, ����� ���������� ���������� Asis_Failed.
������������� ����� -I, ��� ����������� ��������� ASIS, ������� ������������� ����� -I ��� ������ GNAT. ����� -T ������������ ����������� �������, �� ��� ������ ��������, ������������ ������������� ����� -T � -I ����������� � ���������� ����������� �� ASIS-���-GNAT (IS-���-GNAT Reference Manual). ������� ��������, ��� ����� -T ������������ ������ ��� ������ ������������ ������ ��������, � ��� �� ����� ������� ��� ��������� -FS. � ������ �������, ����� -I ������������ ������ ��� ���������� ������ ���������� ����� ASIS ��������� GNAT ��� �������� ������ �������� «�� ����». ����� -I �� ����� ������� ��� ��������� -FT, � ��� �� ����� ���� ������������ ��� �������� ASIS — ��� ���������� ������ ����� � ��������� �������� ��� ������� ���������� ASIS.
4.4 �������� ���������������
��� ������ � ASIS-���-GNAT, ����������� ��� ��������� ���� ������� ���������������, � ��� �� ��� ����� ���� ��������� ��� �������� ��������� ASIS.
��-������, �������� �������� �������� ����� ������ � ������� ������ ������ ����������� GNAT (������� ���������� � ����� README, ����� �������� ���������� � ������� ����������� GNAT � ASIS-���-GNAT). ��� ������������� ������� ������� ��������� � ������������ ASIS-���-GNAT.
��-������, ����� �������� ����� ���� �� ����������� � ������������� ������� � ��������� ��������, ��� ����� �����.
4.4.1 ��������������� ������ ASIS � GNAT
����� ASIS-���-GNAT ������ ���� ������, ��������� ������� ����������� ��� ������� �� �������������� ������������� ASIS-���-GNAT, ASIS ������������� �������� ��� ������ ������������ ����������� ASIS-���-GNAT, � ���������� ���������� PROGRAM_ERROR, � ��������������� ����������. � ���� ������, ���������� PROGRAM_ERROR �� ����� ���� ��������� �����-���� �������� ASIS, � ��� ���������������� �� ������� ASIS. �������������, ��� ��� �� �������� ���������� ����������, ������� ���������� � ������������ ASIS, � ���, ��� ������������ ��� ASIS ���������� �� ����� ���������������� �� �������� �������� ASIS, ��������� � ���� �������� �� �� ��������� ��������� ������������� ������� ASIS-���-GNAT �, �������������, �� ��������� ��������������� ����������� ASIS. ������� ����� ��������, ��� �������� �������� ��������� ������ ����� ������� �����-���� ������ ���� ������, ������� �� ������ ������� ����� ��������������� ASIS-���-GNAT. �������� ������ ����� ��������������� ��� ������ ����������� ASIS-���-GNAT.
������ ����������� ��� ������������� � ����� ����������� ASIS ����������� ���������� «when others«: �� ����������� ��� � ����� ������������ ��-ASIS ���������� � ���������� �� ��� ������-���� �������.
4.4.2 ��������������� ������ �������� � ������ � ��������� ��������
��� ��������� ���������� (����� ������) ������ ��������, ���������� ���� � ��� �� �������� Context, ASIS ����� ���������� �������� ���������������. ����� ������ �������� �������� ��������������� ����� �� �������� ��� (� �����) ������ �������������� ���� � ��� �� ������������� ������ � ��� ������� ���� ������� ��� ������������� ��������� ������ ��������� ������ ����� ������. ���� ������ �������� ��������������� � �������� ������� ������, ��������������� ���� �������, ����� ��������� � ������� ������ ���� � �������� ������� ������ ���������� �� ��������� ������, ������� ��� ����������� ��� ���������� ����� ������.
��� �������� ��������� Context (������ Asis.Ada_Environmens.Open), ASIS ������������ ��������� �������� ��� ���� ������ ��������, ������� �������� �������� Context:
- ����� ��� ��������� Context ����������� ����� -SA, ASIS ���������, ��� ��� ������� ������ ���������� Compilation Unit, ��������������� � ������� ������, �������� ���� � �������� ������� � ��� ���� �� ���� ��� ����������� ��� �������� ������ (���� ������ �������� ������ ��� ���� ������ � ��������� ��������, ������� ���� ������������ ��� �������� ����� ������).
- ����� ��� ��������� Context ����������� ����� -SE, � ��� ������ ���������� Compilation Unit, ��������������� � ������� ������, ���������� ���� � �������� �������, ASIS ���������, ��� ���� �������� ����� �������� ��� �� ����� �������� �������, ������� ��� ����������� ��� �������� ������. ���� ��� ������ ���������� Compilation Unit, ������� ����������� ��������� Context, �� ���������� ����� � �������� �������, ASIS ���������, ��� ��� ����� �������� ���������� ���� ������ ���� ������� ��������� ���� � �� �� ������ ��������� ������ ����� ������.
- ����� ��� ��������� Context ����������� ����� -SN, ASIS ���������, ��� ��� ������� ���� ������� �� ����� � ��� �� ������ �������� �������.
���� �����-���� �� ���� �������� ��������, � ���������� ������� �������� ��������� Context ����� ������������ ���������� Asis_Failed. ���� �������� Context ��� ������� ������, �� ��� �����������, ��� ASIS ����� ������������ ������������� ����� ������ �������� � ��������� ������, ������ �� �������� ��������� Context (�������� ���, ����� ���� ������ �� ������ ���� ������� �����-���� ������� �� ��������� � ASIS ���������).
4.5 ������������� ��������� ���������� ����������
���� ���� ���������� ASIS ������������ ����� ������ ������������ ��������� ���������, � ���� ������ ���� �������� ��������� � �������������� ����� -FS ��� -FM, �� ��� ������� ���������, ��� ��� ����� ��������, ������� ����� ������� ASIS «�� ����», ����� ����������� � ������� ��������. �������������, ����� ��������� ������������ ����� ������ ������������ ��������� ���������, ���������� ASIS ������ �������� ��� ������� ����� ����������, ������� ��������� � �������������� ����� -FS ��� -FM. ��� ������� ������ ���������, ��� ��������� ��������� �� ������ ������������ ����� ��������, ������� ����������� � ������� ��������.
5. ASIS-������������� asistant
5.1 ���������� � asistant
asistant �������� ������������� ����������� � �������� ASIS. �� ��������� ������������ ����������������� � ASIS ��� ���������� ������ ������������ ���������� ASIS. �� ������������ ������� ��������� ����, ������� ��������� ���������� ���������� ����� ASIS � ����������� �� �������� � ������� ��������� � �������� ASIS.
asistant ����� ���� ����� ������� � �������� �������� ASIS: �� ��������� ������������������ � ���������� ��������� ASIS, ���������� ��������� ���������� ��������. � ������ �����-���� ������ ��������� � �������� ASIS, ���������� asistant �� ����������� (��������, ��� ��������� � ������� � ������������ ����� �������� Element) — ������ �����, �� �������� �� ������, � ���� ������������ ����������� ����������� ��� ���.
asistant ����� ���� ����� ������� ��� �������� ������� � ������������ ASIS � �������� ������� ���������� ASIS: ����� � ������������ ���������� ASIS ��������� �����-���� �������� � ������ �������, ������� ������ ���� ����������� � ������������ ��������, ��� � ��������� �������������� ������ ������-���� �������, ��� ��������� ������-���� ��������� ���-����, ����������� ����� ������������ asistant, ��� ���� ����� ������������ ������������� ��������, ������� �������� ���������� �������� � ��� ���������� ASIS, � �������������������� � ��������� ASIS.
���� asistant ���������� �������� ������������� ���������, �� ����� �������� ���������������� ������������������ ������, ������� �������� � ���� (���������� ����� ��������). �����, asistant ����� ��������� � ����� �������� (log) ������������� ������, ������� ������������ ����� ���� ����������� ��� ������-����.
������ ������������ � asistant ���������� � ����������� ������������ asistant — «asistant Users’ Guide» (���� asistant.ug � �������� �������� ������� asistant). ����� ���������� ������ ������� ����� ������������� asistant.
����������� ������ asistant ��������� � �������� �������� ������� asistant, ��� ����� �������� ����������� ASIS-���-GNAT � �������� �������������� ���-����������. ��������� ���� ����������� ������ � ��� ���� ������ ����������� ������, � ����� ������� ������� ‘asistant’, ��� ������� asistant � ������������� ������. � ����������, ��������� ������ � ���� ������� ����������, � ����� �������� ������ ����������� asistant ‘>’. ������, ��� ����� ��������� ��������� �������:
ASIStant - ASIS Tester And iNTerpreter, v1.2
(C) 1997-1999, Free Software Foundation, Inc.
Asis Version: ASIS 2.0.R
>
������, ������������ ����� ������� ������� asistant (� ����� ��������� �����, asistant ������������ ����� �� ����� ������������ ��� � ���� ���, ����� �������� �� ���������� �� ��������):
>Initialize ("") -- ������ ������������� ASIS ���������� �
-- ������ ������� � �������� ���������
>set (Cont) -- �������� ��-������������������ ���������� ��������� Cont
-- ���� ASIS Context
>Associate (Cont, "", "") -- ����� ������� �������������� ASIS
-- � ����� ������� ��������, � �������� ����������,
-- ��� ���������� ��������� Cont
>Open (Cont) -- ����� ������� ASIS Open ��� ���������� ��������� Cont
>set (C_U, Compilation_Unit_Body ("Test", Cont)) -- �������� ����������
-- ������ ���������� C_U ���� ASIS Compilation_Unit � �� �������������
-- ����������� ������ ������� ASIS Compilation_Unit_Body.
-- � ����������, C_U ����� ������������ ������������� ������
-- � ������ "Test", ������������ � ��������� ASIS ��������� Cont.
>set (Unit, Unit_Declaration (C_U)) -- �������� ���������� �������� Unit
-- ���� ASIS Element � �� ������������� ����������� ������ ������� ASIS
-- Unit_Declaration
>print (Unit) -- � ���������� ���������� ���� �������, ASIS ���������
-- ����� ������� �������� �������� Unit:
Element Debug_Image:
A_PROCEDURE_BODY_DECLARATION
located in Test (body, Unit_Id = 2, Context_Id = 1)
text position : 1 : 1 - 9 : 7
Nodes:
Node : 1363 - N_SUBPROGRAM_BODY
R_Node : 1363 - N_SUBPROGRAM_BODY
Node_Field_1 : 0 - N_EMPTY
Rel_Sloc : -10
obtained from the tree .\test.atb (Tree_Id = 1)
-- ����������� ������, ��� �� ������ ������ - �� �������� ������ ASIS
-- ��� ��-����������� ��������:
>set (Elem, Assignment_Expression (Unit))
-- ASIS �������� ����������, � asistant ��������� ���������� ���������� ASIS:
Exception is raised by ASIS query ASSIGNMENT_EXPRESSION.
Status : VALUE_ERROR
Diagnosis :
Inappropriate Element Kind in Asis.Statements.Assignment_Expression
-- ��� �� ������� ��������� �� ����� �� ������������ ����������,
-- � asistant ����� �������� ���� ������� ������������:
> ...
5.2 ������� asistant
������ ������ asistant, ������� ���������� � ���� ������, — �� ������, � �� ��������������� ��� ������������� � �������� ����������� �� �������� asistant. ��� �������� ���� ����������� � ������������ ������ ������������� � ���, ��� ����� ���� ��������� � ������� asistant:
-
Help [(name)]
���������� ������� ������� ASIS ‘name’. ��� ������ ��� ����������, ���������� ����� ��������� asistant. -
Set (name)
������� (��-������������������) ���������� ���� ASIS Context, � ������ ‘name’. -
Set (name, expr)
��������� ��������� ‘expr’ (���������� ‘expr’ ����� ���� ����� ���������� ��� asistant ���������; �����������, �������� ����� ������� �������� ��������� � ������-���� ������� ASIS) � ������� ����������, ��� ������� ‘name’, � ����� � ��������� ��������� ‘expr’. -
Print (expr)
��������� � ���������� �������� ��������� ‘expr’. -
Run («filename»)
��������� ������ �� ����� «filename», � ������ ����������� ������� �� ����. -
Pause
������������� ���������� �������� ������� � ��������� asistant � ������������� �����. -
Run
���������� ���������� ������������� ����������������� �������. -
Browse
����������� asistant � ����� ���������� ��������� ������ ASIS. -
Log («filename»)
������� ���� «filename» ��� ���������������� ������. -
Log
������� ������� ���� ��������� ������. - Quit [(exit-status)]
��������� ������ � asistant.
5.3 ���������� asistant
���������� asistant ��������� (�������) ����� � ����� ���. ���������� ����� ����� ����� ��� ASIS, � ����� ������� ������������� (integer), ���������� (boolean) � ��������� (string) ����. ��� ���������� � �� �������� ��������� � ������������� �����������, ����� ������������� ������� Set. ���������������� ���������� �����������.
� asistant ����������� �������� �����: ������ ����� ������� Set ����� ��������������� ��� �������� (������) ������� ��������� � ��� ������������� ���������, ������� ����������������� ������ ����������.
5.4 �������� ������ ASIS
������������ ���������� ����� ��������� � ��������� ������� BROWSE. BROWSE ��������� ������������� ������ asistant � ���������� ������������� ������ �������������. ������� ������������� ‘Q’ ������������ �������� ������������ — � ����� �������������� ������ asistant, � ��������� ������������� ������ �������������.
��������� ������� BROWSE ����� ������������ �������� ���� Element, ����� ���� ������������ �������� ���������� ������ ASIS ������� � ����� ��������� ���� Element. BROWSE ���������� ��������� ���� Element, ��� ������� �� ������� ���������� ������� ����������� ������ ASIS. ����� �������, ����� ������������ ������ �������:
> set (e0, Browse (e1))
�� �������� ������������ (�����������) ������ ASIS ������� � �������� e1, � ��� ���������� ������������, e0 ����� ������������ ��������� �������, ������� ��� ������� � �������� ������������.
����� ������������ ������ �������:
> Browse (e1)
�� ����� ����������� ��������������� ������ ASIS, �� ��������� ������� ������������ ����� ��������.
������������ ���������� ��� ������� ASIS, �� ������� �� � ������� ������ ���������, � �� ������� ���� �� ��������� ��������� ������:
-
U
�� ���� ��� ����� �� ������ ASIS (������������ ������ ������� Enclosing_Element). -
D
�� ���� ��� ���� �� ������ ASIS, � ������ ���������� �� �������� ��������. -
N
������� � ������� «������������» (sibling) (� ���������� �������� � ������ �������� ASIS). -
P
������� � ������ «������������» (sibling) (� ����������� �������� � ������ �������� ASIS). -
\(D|d)(T|t)
��������� ����� ����������� �������� ��������:- ‘D’ — �������� (ON), � ‘d’ — ��������� (OFF) ����������� ������ �������;
- ‘T’ — �������� (ON), � ‘t’ — ��������� (OFF) ����������� ���������� ������;
-
<SPACE><query>
�������� ������ <query> ��� �������� �������� (��. 5.4). - Q
������������� ������� � ����� asistant. �������������� ������������� ������ ������������� � ������������ ������������� ������ asistant � ������� ���������, ������������ ��� ��������� ������ BROWSE.
������������ ���������� �������������� ��������� ������� � ���������� ����� ������� �������. ��� ���� �������� ������ ��������� ��������� «Cannot go in this direction.», ������� �������������, ��� ������������ ������ ASIS � ��������� ����������� �� �������� ���� �� �������� (�� ����, ������� ���� �������� ������������ ��������� � ����������� ���� �� ��������, ��� ������� ���� �������� ������� ����� ��� ������ ����������� ������-���� �������� � ����������� ����� ��� ������ �� ��������, ��� ������� ���� �������� ����� ������� ��������� ���������� ��������� ������ � ����������� ����� �� ��������).
���������� ����������� ��������� � ������� �������� ASIS �� ������������� (��������, � ������������� ��������). ��� ����, ����������� ��������� �������� �� �������, ������� ��������� ���� �������� ���� Element � ���������� ������� Element � �������� ����������.
����� ������������ �������� ������ (<SPACE>), �� ����������� ���� ����� �������. ���� ������ �������� ����������, ������� ������� ���������� ����������� ������ ��������� ������� � ������� ��������� � �������� ���������.
5.5 ������
�����������, ��� �� ����� ������������� ������ ASIS — Demo, � ����� � �������� �������, ��� ��� — demo.adb:
procedure Demo is
function F (I : Integer) return Integer;
function F (I : Integer) return Integer is
begin
return (I + 1);
end F;
N : Integer;
begin
N := F (3);
end Demo;
����������� �����, ��� ������ ��� ����� ��������� ������ ������� � ������� ��������. ���� ��������������� ������������������ ������ asistant, ������� ��������� ��������� ��������� ����� ������. ����������� asistant ������������ ��� ���������� ����������� ��������:
initialize ("")
-- �������� � �������� ���������, ������� �����������
-- ����� ������� �������� � ������� ��������;
Set (Cont)
Associate (Cont, "", "")
Open (Cont)
-- ��������� �� ����� ��������� Context ������ ����������
-- Compilation_Unit (����) ���������� "Demo";
Set (CU, Compilation_Unit_Body ("Demo", Cont))
-- ������� ������ ��������� ������ (� ���� ������)
-- � ��������� �� ��������� � ������ ����� ���������� ������������:
Set (Unit, Unit_Declaration (CU))
Set (Stmts, Body_Statements (Unit, False))
Set (Stmt, Stmts (1))
Set (Expr, Assignment_Expression (Stmt))
-- ����� ������ ������� � ���������� ������ ���������:
Print (Expr)
Print (Element_Image (Expr))
-- ��� ��������� ����� ��� A_Function_Call, ����� �������, �����
-- ��������� �������� ���������� �������:
Set (Corr_Caled_Fun, Corresponding_Called_Function (Expr))
-- ����� ������ ������� � ���������� ������
-- �������� ���������� �������:
Print (Corr_Caled_Fun)
Print (Element_Image (Corr_Caled_Fun))
-- �������� ������ asistant:
Quit
6. ������� ���������� ASIS
���������� ‘templates’ ������������ ASIS �������� ��������� �������� ������� ����������� ���, ������� ����� ���� ������������ ��� ������� ��� ���������� ������� ���������� ASIS. �������� ���� ����������� � ���, ��� ���-���� ����� ����� ��������� ���������� ASIS ����� �������� ���������� ����, ������� ������������ ��� ���������� ���������� ������������ ASIS-�������, � ������� ���������������� ����� ���� ��������.
���������� � ������� �������� ASIS, ������� ��������������� ������ ������������� ���� ��������.
����� ����, �������������� ����������, � �������� ���������� ASIS, ���������� � ����� README ����������� ‘templates’.
7. ������� ������� ASIS
���������� ‘tutorial’ ������������ ASIS �������� ����� ������� ������� �������� ASIS, ������� ����� ���� ������� ��� ���������� � ASIS. ����� ������� �������� ASIS �������� �������� ������� �����, ������������ �� ����������� asistant � ������ �������� ���������� ASIS, ������� ������������� ��� ����� ������������ ASIS. ��� ���� ������� ����� ����������������� ����������� �������.
� ��������� ������, ������������ � ������� �������� ���������� ��� ��������� ������ README � ����������� ‘tutorial’ � ��� ������������. � ������� ��� ������������ ����� ���������� � ��� �����������.
8. ��� ��������� ����������� ���������� ASIS
8.1 ����� �������� ��� ������� ������ ������������������ ����������
����� �������� ASIS ����������� �� ����� ��� ������ ������, ASIS ����� ������������� ����� ���������� ���������, � �������� ������ ���������� ASIS. ������������ ����� ��������� (��� ����� ��������) �������������, ��� ASIS ��������� ������������ �������, � ��� ����� ����������� ��������� ������ ���������� ASIS.
� ��������, ���������� ��� ������� ������ ��������:
- ��������� ������������ ����������� �������. �����������, ��� � ��������� Cont ���������� ������ P � Q, ������� �� ������� ���� �� �����, � �������� Cont �� �������� ������-���� �������� ������, ������� ������� �� ����� ������� P � Q. ��� �������������, ��� P � Q �� ����� ���� ������������ ����� � ��� �� �������. ��� ��������� ��������� ���������� � ������ P, ASIS ��������� � ������� � ������ p.adt, � ��� ��������� �����-���� ���������� � ������ Q, ASIS ��������� � ������� � ������ q.adt. �������������, ����� ���������� �������� ���������� �� P, � ����� �������� ��������� Q, �� ASIS ������ ��������� ������ q.adt.
- ����������� ����������� ������ � ���� �� ������ ����� ��� � ����� ������. �����-���� ������ ����� ���� ����������� �������, ������� ��������������� ������� ��� ���� ������, � �� ����� ����� ���� ����������� ����� ���������, ���������� ��� �������, ������� ������������ �� ���� �������. �����������, ��� � ��� ���� ������������ ��������� Proc, ������� ������� �� ������������� ������ Pack, � � ������ �������� ����������� ��� �������� Context �� ����� ������� pack.adt � proc.adt. �����������, ��� � �������� ������� ASIS � ������ pack.adt �� �������� �����-�� ������� Element, �������������� �����-�� ��������� ������ Pack, � ����� �����������, ��� � �������� �����-���� ������ ��������, ����������� �����������, ASIS ������� ������ �� proc.adt, ������� �������� � ������� ������ �������. ����������� ������, ��� ���������� ���������� ��������� �����-���� �������� � ��������� Element, �������������� �����-�� ��������� ������ Pack, ���������� �� ������ pack.adt. ���� ������ Pack ����������� ��������� � ������� ������ ������� proc.adt, ASIS ������ ������������� ������� � ������ pack.adt, ��������� ��� ������ � ��������� ������, ����������� ��� ����� �������� �������� Element, ��������� ������ ��� ������ pack.adt.
8.2 ������� ������� ����� ������� ����� ��������
� ��������� �����, � ASIS-���-GNAT, ����� �������� ����� ����� ������ ��� ��������� ��������, ������� ������� �:
Asis.Elements
Asis.Declarations
Asis.Definitions
Asis.Statements
Asis.Clauses
Asis.Expressions
Asis.Text
�� ����������� ��������, ������� ���������� ���������� ������������� ��� ����������� �����. ��� ����� ������������� Asis.Iterator.Traverse_Element, ������������, ���� �� ����, ����� ������� ��� ������� ����������� ������ ������ ��� ��������� ������, ����������� ��� ��������� ������������ �������� Element. ������, ���������, ������� ����������������� ��� ����������� ��������� ��������� (��� Pre_Operation � Post_Operation) ����� ����� ������� �������������� ������ ��������.
8.3 ��� �������� �������� ����� ��������
��� ��������� ������������������ ���������� ASIS, ���������� ��������� �������� ��������� ������ ��������. � ���� ��� ����� ������ ��������� ������������ :
- ������� �������� �������������� ����� ������ ��������, �������������� ����������� ASIS. � ���������, ���������� �������� ������� ��������� ��������, ������� ������� ��� ����������� �������.
����������� ������ ������ ��������, �������������� ����������� ASIS, ������������ ��������� ����� ������������� �� �������� ���������. ���������� ������������ ������� gnatmake ��� �������� ����������� ������ ������ �������� ���-���������.
- ��������� ���������� ������ ����������� ��������� ��� ������ ����������. ��������, ����������� ��������, ������� ����������� ����� ������� (-C1), ��� ����������, ������� ���������� ���������� ��������� ������� (�������� pretty printer ��� gnatstub). ��� ��������� ����� ������, ���������� ��� ������ ������, ASIS �������� �������� ��� �������������� � ������������� ���������� �� ���� ������. ��� ������������� ����������� ���������, ������� ����������� ����� �������, ���������� ������ ����� ��������� ������ ���� ���� ������, � �������� �������� ���������, � �� ����� ������ ���������� �� ����������� ������ ������ ������ ��������. ��������, ����������� �� N ��������, �������� ������������ ����������� ��� ���������, ������������ ����� �������, ��� ����������, ������� � ����������� �������� ����� ������ ����� ��������������. ��� ����, ������, �������� ��������� ����� ����� ����������, � ASIS, � �������� ������ ����������, ����� ������������ ����� ����� ��������� ������ ��������. ����������� ��������, ������� ����������� �� ���� ������ ��������, ������ ��� ��� ����������, ������� �� �������� �� ��������� ������������� ������ (��� ������������� ������ �������), � ������������� ��������� ���� ��������� �������, ��� � ������, ����� ���������� ������ ������������ ������� �������, ��������� �� �������� ���������� �������. ��� ������������� ���������� ����������� �� ���������, ����������� �� ���� ��������, ����������� ��������� ���� ������ �������� ������ ��������, ��� ����������� ������ ������ �������� ��� ���������.
- � ����������, ���������� �������� ������������ ����� ��������������� �������� ��� ����������� ������� ��� �������� ����������� — �������� ������������ ����� ������� �������� ������ ��������.
- ��� ������� ������-���� ������������� ������, ������� ����� ������������ � ����, ��������� ������-���� �������� ����� ������ ���������� ���������� �� ���� ����� ������. � ���� ������, ������, ������� ������� ��� ���� ������, ����� ��������������� ��� ������ ��������� ��� ASIS, � ��� ������ �������� ���������� ��������� ���� � ������������ ����� ������ ��� ������������� ������ ��������.
- ����� ������� «������� ������ ��������» ������ ����������, ������� ��� ������������� ASIS ������������ ���������� ���� -dt (Asis.Implementation.Initialize («-dt»)). ���������� � ���������� ���������� ���������� ���������� ����� ���������� ��� — ��� ����� �������� ������ ��������.
8.4 ������������� gnatmake ��� �������� ������ ������
��� �������� ������������ ������ ������ ��������, ����� ������������ ������� gnatmake. GNAT ������� ����� ALI ��� ������ �������� ����������, ��� ����������� �� ����������� ��������� ���������� ����. �������������, ���������� ����������� ������� ������� gnatmake (� ������� -gnatc � -gnatt) ��� �������� ������ ������ ��������, �������������� ��� ������������� ������, ������� ���������� ������, ��� ���������� �������� ���� �������� gnatmake. ���� �� ����� ������������ gnatmake ��� �������� ������ ������ �������� ����������� ���-��������� (�������). �� ������ ������������ �������� ������ ��� �������� ��������� ��� ��� ������� ��� ������� ������������, �������� gnatmake ��� ��������� (������) �����������.
������������� gnatmake ��� �������� ������ �������� �������� �������������� ������������� — � ���� ������, ����� �������� ����� ����������� ����� ����� � � ������� � ��������� ��������.
���������� ��� ��������� ������� ������������� gnatmake ��� �������� ������ ������ ��������.
������ ������ �������������, ��� �� ���������� ��������� �����, ����� ALI � ����� �������� ����� ��������� � ��� �� ����� ��������, � �����, ��� ���� main_subprogram.adb �������� ���� ������� ������������. ���� �� ��������� gnatmake � ������� �������:
gnatmake -f -c ... main_subprogram.adb -cargs -gnatc -gnatt
��� �������:
gnatmake -f -c -gnatc -gnatt ... main_subprogram.adb
�� ��� ������� �������, ������� ������������ ��� ���������, ��� ������� main_subprogram �������� ������� ����������. ��� ������� ����� ������� ������, �� ����, ���� �����-���� ����� �������� ��� ������������, �� ��� ����� ���������� ������. ��� ������� ���, ��� gnatmake ���������� � ��������� ����� -f (force recompilation). ������������� gnatmake, ��� �������� ������ �������� ��� �������� ����� -f, ����� ���� ����� �������� ������������� � ��� �� ��������, ��� � ��������� ����� — �� �������� ��������, ��������� ��������� ����� � ����� �������� «���������» ���� � �� �� ��������� ������ ALI, � � ������, ����� ��������� ���� ���������� � ���������� � ������ ALI � ������ ��������� ������, �������� ����� �� ����� ���������������� ��� �������� ����� ������ ���� ����� -f �� �������.
������ ������ ����������� � ���������� ������ �������� � ��������������� � ���� ������ ALI � ��������� ��������, � ������������� ����� �������� ������ ��� �������� ������ �������� � ������������� �� ��������������� � ������� �������� ������� (�� ����, ��������� ����� � ��������������� �� ����� ALI ���������� � ������ ��������). � ���� ������, ��� ������� gnatmake � ������� �������:
gnatmake -c ... main_subprogram.adb -cargs -gnatc -gnatt
��� �������:
gnatmake -c -gnatc -gnatt ... main_subprogram.adb
(�� ����, ��� �������������� ��������������) �� ��������� ������ � ������������� ����� ������ �������� �������������� ���� ���������, �� � ���� ������, ������������ ����� �������� ����� �������������� ��������.
��������� ������ ��������� ������, ������� ���������� ��� ������������� ������� ��� ����������� � ������������������ ���-�����������.
9. ��������� ���-���������� � ������� ������� ���������� �� ASIS
� ������� ����� �����-���� ���-���������, ��������������� ��� ��������� ���������� ����������� �� ASIS, ���������� �����-������ ���-����������, ���������� ������������ � ��������� ��������� ������������� ���-��������� � ������������ GNAT:
- ���-���������� �������� ���������� ������������������ ���-�����������. �������� ������ ������������� ���������� ���-����������� ��������������� ��� ����� ���� ����������. ������, ���� ��������� ������������ ���������� ��������� ���������� ����������, �� ��� ���������� �� �������� �������������� ��� ������� gnatmake (� ������� ������) ��� ���� ��������� (��������, �� ������� �� ���������������� Ada.Text_IO, ��� ������� gnatmake ��� ����� ���������, ������� ���������� Ada.Text_IO).
- � ������������ � ������� ���������� GNAT, ������� �������� �� �������� �������, ������������ ����������� ���������� �������������� ����� ������������� ������ ������������, ������� ���������� ��� ����������, ������ ���� ������������ ����������� — �� �������������. ��� ���������, ���� �� ���������� gnatmake ��� �������� ������ ������ �������� ��� ������ ���������, � ���� ��� ��������� ���������� ���-���� �� �����-������ ���-����������, �� ����� ������ ��������, ��������� � ���������� ������� gnatmake, ����� ��������� ������ ������������, �� �� ���� ��� ����������� ����������.
- ����� ����������� GNAT �������� ���������� ������� ���������� GNAT (GNAT Run-Time Library ��� RTL) ��� ������������������ ���-����������. � ��������� �������, ����������� GNAT ����� ��������� ��������� ������ ���������� (����� ��� «Win32Ada Binding» ��� ������ �������� GNAT ��� Windows95/NT).
- � ASIS-���-GNAT �� ���������� ��������� ������� �������, ��� ������ ������ ���������� ����������� (��� ���) � �����-���� ������������������ ���-���������� �������� �� GNAT RTL (��������� ��������� ����� ���� ��������� � Asis.Extensions). ASIS-���-GNAT �������������� (������������� ������ Asis.Compilation_Units.Unit_Origin) �����-���� ������: ��� A_Predefined_Unit, ���� �� ����������� RTL � ���� �� ������ � RM95 A(2) ��� ���������������� ������ Ada95; ��� An_Implementation_Unit, ���� �� ����������� RTL � ���� �� �� ������ � RM95 A(2). ���������� ���-���������, �������� �� RTL, ������ ���������������� ��� An_Application_Unit.
- ���������� ����������� ����������������� ���������� ���-���������, ������� ������������ ������ ����������. ��� ������������� �����, �� ������ ��������� gnatmake ��� ���� ���������, ������ ����� -a. �������������, ���� �� �������� ��� ����� ��������� ����� ������ ��������, �������� gnatmake � ������ -a, ���������� � ���������� ����� ������ �������� ����� ��������� ��� ������, ������� ���������� ���� ��������� ��� ������������ ������������ �������.
����� �������, � ������ ����� ��������� (��� ����� �� ���������) ���-��������� ������ �� ���������������� ���������������� �������, ���������� �� ASIS, ��� ���������������� �������, ���������� �� ASIS, � �� ������������� �������� ��������� ��������:
- ����� ��� ������������� ����������������� �������� ��� ������������� � ��������� ����������� ���-���������, ����� ������ �������� ��� ����� �������� ����� ���� ������ � ������� ������� gnatmake ��� �������� ����� -a (��� �������� ������� �������� ������������� gnatmake). ����� ���������������� �������� ������������ Compilation_Which, ��� ������������ ������������ ������-���� ������������� ������, � ��� �������� ������ Asis.Compilation_Units.Is_Body_Required ���������� ��������� True, � ������ Asis.Compilation_Units.Corresponding_Body ���������� ��������� ���� A_Nonexistent_Body, �� ���������������� �������� ����� ������� �����, ��� ���� ������������ ������ ����������� � �����-���� ������������������ ���-����������.
- ����� ����������������� ��������� ���������� ������������ ��� ������������� ������ ���, ����������� �����-���� ���������, ����� ������ �������� ��� ���� ��������� ������ ���� ������ � ������� ������� gnatmake � ��������� ����� -a.
- ��� ���������� ����������� RTL, ����� ���� ����������� ������ Asis.Compilation_units.Unit_Origin.
10. ����������, ���������� � ���������� ���������� � ASIS-���-GNAT
���� �� �������������� ASIS-���-GNAT ��� ���-���������� � �������� �������, ������� �������� ��� �������� ������, ����� ALI � ������������ ����� � ��������� ���������� ��������� ADA_INCLUDE_PATH � ADA_OBJECTS_PATH (��� �������� ������������� �������� ����������� ASIS-���-GNAT), ��� �� ����������� ��������� ����������� GNAT (�� ����, ��� ������� gcc) � ��������� ������ gnatbind ������� �������������� �����, ����������� ��� ASIS, ��� ������ � ������ ������������ ASIS. ������, ��� ������� ������������ gnatlink, �� ������ ��������������� �������������� �������� «-lasis»:
gnatlink my_application -lasis
��� ������������� gnatmake, �� ����� ������ ��������������� ���� �������� ������������, ����� ������ gnatmake ������������ ����������� ������ gnatlink:
gnatmake ... my_application -largs -lasis
�������� ����� ��������� ��� ������������ �� �����, ����� ������ gnatmake �� ������� ����������� ������:
gnatmake -c ... my_application
���� �� ���������� ASIS-���-GNAT ��� ���������� ���������� library, ��, ��� ������ ��� ����� ������ ���������� ASIS, �� ������ ��������� ���������:
- ��� ����������, �� ������ ��������� ������� � ��������� �������� ���������� ASIS-���-GNAT (asis-[version#]-src/asis and asis-[version#]-src/gnat) � ���� ������ ������ � ��������� ��������. ��� ����� ��������� � ������� ����� -I, ��� ������� gcc, ��� �������� ������� � ��������� �������� ���������� ASIS-���-GNAT � ���������� ��������� ADA_INCLUDE_PATH.
- ��� ����������, �� ������ ��������� ������� � ���������� ������� � ������� ALI, ����������� ���������� ASIS-���-GNAT (asis-[version#]-src/obj, ���� �� ��������� ����������� �� ����������� ASIS-���-GNAT, ������� ��������� � ����� README � ASIS Installation Guide) � ���� ������ ������ ��� ��������� ������ gnatbind. ��� ����� ��������� � ������� ����� -aO, ��� ������� gnatbind, ��� �������� ������� � ���������� ������� � ������� ALI � ���������� ��������� ADA_OBJECTS_PATH.
���� �� �������� �������� ������ � ��������� ��������, ���������� ������� � ������� ALI ���������� ASIS-���-GNAT � ��������� ����������� ��� GNAT ���������� ���������, ��� ��� ������������� ��������� �������������� ���������, ������� ���������� ��� ASIS, ��� ������������� ������� gnatmake ��� ����� ���������� ASIS.
11. ��������������� ��������� ASIS-���-GNAT
�������� ASIS ��������� �������� ����� ������ ������������ ���������� ������������ ASIS. ASIS-���-GNAT ������� ���� ��������.
�����, ASIS-���-GNAT ���������� ��������������� ��������� ����� �� ������������� ��������� ��������, ����������� � �������� ��������� �������� ASIS, ��� ������������ ���������, � �������� ASIS, � ���� ������, �� ������� ����������� ����������. ������ ��������� �������� �������� ������ ������������� ����������� ��� ������������� ������� � �������������� ����� ASIS, ������� ������������ �����������, ������ ��� �������������� ������������ ����������� ���������� ��� �������� Initialize, Finalizes � Associate, ��� ��� �������� ��������� ASIS.
� ASIS-���-GNAT ��������� ��� ������ ��������������� ���������:
- �� ��������� (default)
- ��������������� ��������� ������������ �� ����������� ���������� ������ ������ (stderr);
- ���������� (suppress)
- ��������������� ��������� �����������;
- ���������� ��� ������ (treat as error)
- ��������������� ��������� ����� ������������ ��� ������ ASIS-���-GNAT: ������ ������� ��������� �� ����������� ���������� ������ ������, ASIS-���-GNAT ���������� ���������� Asis_Failed � ����������� ��������������� ��������� � ������ ����������� ASIS (ASIS Diagnosis string). ������ ������ ASIS (ASIS Error Status) ������� �� ������� ���������������� ���������.
����� ��������������� ��������� ASIS-���-GNAT ����� ���� ���������� ��� ������������� ���������� ASIS. �������� «-ws» ������� Asis.Implementation.Initialize ��������� ��������������� ���������, � �������� «-we» — ��������� �� ������������� ���������� ��� ��������������� ��������� ��� ������. ����� ���������, ����� ��������������� ��������� �������� ���������� ��� ���� �������������� ����������, ������ �� ������� ���������� ASIS-���-GNAT.
12. ���������� �� ������������ ������ � ������������ ���� ����������
����� ���������� ASIS, ������� ��������������� � ������� ASIS-���-GNAT, ������� �� ������������ ����������� ASIS �, �����������, �� ������ ����������� ���������� ASIS-���-GNAT. �������������, ������������ ����, ��������� ��� ���� ������������� ������� ����������, � ������ ������ ���������� ���������� ��� �������� ��������� �����, ������� �� ����� ���� ������������ ��� ����� ����������� ����������.
ASIS-���-GNAT �������� ������ ������������ ��������� ASIS ISO/IEC 15291:1999 ASIS Standard.
��������� �������� ������ (��� ������ Asis) ��������� � ASIS-���-GNAT:
- Asis.Extensions �������� (����� ������ � ��������� �������� ���������� � asis-extensions) — ���������� ��������� �������� ���������� ASIS, �� �������������� ���������� � «ASIS Reference Manual«;
- Asis.Set_Get (��������������� ����� � ��������� ��������: asis-set_get.ad[bs]) — �������� ������������ ������� � ���������� ��� ���������� ��� ������� ��������� ASIS, ������� ���������� � ������ Asis;
- Asis.Text.Set_Get (��������������� ����� � ��������� ��������:asis-text-set_get.ad[bs]) — �������� ������������ ������� � ���������� ��� ���������� ��������� ASIS, ������� ���������� � ������ Asis.Text;
��� ��������� ���������� ���������� ASIS-���-GNAT ����������� �������� ������������� ������� � ������ A4G (����������� �� ASIS-for-GNAT) � ����� �����, ������������ � «A4G.«.
����� ����, ASIS-���-GNAT �������� ��������� ���������� GNAT, ��� ����� ���������� ASIS:
Alloc
Atree
Casing
Csets
Debug
Einfo
Elists
Fname
Gnatvsn
Hostparm
Krunch
Lib
Lib-List
Lib-Sort
Namet
Nlists
Opt
Output
Repinfo
Scans
Sinfo
Sinput
Snames
Stand
Stringt
Table
Tree_In
Tree_Io
Types
Uintp
Uname
Urealp
Widechar
����� �������, � ����� ���������� ASIS, �� ������ ������������ ��� ����� ���-����������� ����� �����, �����: ���� ������� ������������ � ASIS ��� ����� ������������ ������� ASIS (Asis.Extensions, Asis.Set_Get, Asis.Text.Set_Get), ����� ���� ��������, ������������� ������� A4G, � ����� ���� ����������� GNAT, ������ ������� ��� ������� ����.
��� ����� � ��������� �������� ���, ����������� ���������� ASIS ��� GNAT (������� ���������� GNAT, ���������� ������ ASIS-���-GNAT) ������� ����������� GNAT �� ������������ ������ ��� �����-���� �������� ���� ������ (file name krunching).
Динамические испытания в резонансной колонке
Возможности
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Динамическое трехосное сжатие
Возможности
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Трехосное сжатие
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Компрессионное сжатие
Возможности
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
Одноплоскостной срез
Возможности
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Простой сдвиг
Возможности
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Морозное пучение
Возможности
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Фильтрационные испытания
Возможности
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Трехосное сжатие
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Испытания шариковым штампом
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Компрессионное сжатие
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Одноосное сжатие
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Одноплоскостной срез
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Срез по поверхности смерзания
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Объемное сжатие (трехосное)
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Испытания на срез
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Испытание на сдвиг
Возможности
Одноосное сжатие
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Трехосное сжатие
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Одноплоскостной срез
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Простой сдвиг
Возможности
- Модуль деформаций
- Структурная прочность
- Набухание над нагрузкой
- Относительная просадочность
- Структурная прочность
- Давление
- Свободное набухание
- Начальное просадочное давление
- Коэффициент переуплотнения
- Давление предварительного уплотнения
- …
Схема функционирования автоматизированной системы представлена на рис.4.1.
Описание программы
Описание интерфейса.
После запуска файла postavki.exe на исполнение на мониторе появляется главное меню (рис 4.1):
Рис 4.1 Главное меню АСИС
Для начала работы с программой необходимо соединиться с базой данных, для чего щелкнуть по команде меню соединится с БД. Если на компьютере пользователя установлен InterBase Local Server и создана база данных, то появится запрос на подтверждение права доступа к БД (рис 4.2):
Рис 4.2 Окно ввода пароля
Пароль доступа Khai. В случае, если соединение прошло успешно, то пользователь допускается к работе с АСИС.
Работа с режимами АСИС
Рабочее окно АСИС выглядит следующим образом (рис 4.3):
Рис 4.3 Рабочая область АСИС
Ниже описана работа с АСИС.
Работа с договорами
Работа с договорами включает в себя:
— Работа с поставщиками;
— Работа с договорами;
— Работа с товарами;
— Работа с заключенными договорами;
— Работа с ассортиментом договоров;
Договор заключается предприятием-заказчиком с предприятием-поставщиком на поставку определенного вида и ассортимента продукции. С одним поставщиком может быть заключено несколько договоров. В качестве атрибутов договора являются следующие поля: номер договора, код поставщика, дата договора, сумма договора, срок действия договора. Все атрибуты, кроме срока действия договора являются обязательными для заполнения. На основании договора производится дальнейшая деятельность по поставкам на предприятии. Она заключается в:
— Работа с заявками;
— Работа со счетами;
— Работа с заказами.
Для автоматизации использования АСИС “Учет поставок” реализована возможность печати бланков документов договора, заявки, заказа.
Добавление нового договора осуществляется путем выбора соответствующей закладки и вводе текста в поля-атрибуты таблицы. Добавление при условии, что для добавляемого договора известен поставщик.
Редактирование происходит при нажатии клавиши Enter на выбранной записи. Происходит автоматическое изменение всех полей других таблиц связанных с номером редактируемого договора. Это изменение необходимо для поддержания ссылочной целостности в БД.
Для удаления определенного договора необходимо два раза щелкнуть правой кнопкой мыши на удаляемом договоре. Автоматически удалятся все записи связанные с удаляемым договором (заявки, счета-фактуры, заказы).
Работа с поставщиками
Работа с поставщиками состоит в добавлении нового поставщика, его атрибутов, удалении поставщика, редактировании атрибутов поставщика: код поставщика (для каждого поставщика код уникален), наименование поставщика, адрес и телефон поставщика. Все атрибуты, кроме телефона являются обязательными для заполнения, в случае их незаполнения возникает ошибка.
Добавление поставщика производится следующим образом: пользователь выбирает соответствующую таблицу и заполняет атрибуты поставщика.
Для редактирования таблицы “поставщики” нужно выбрать запись для редактирования , нажать клавишу Enter и изменить необходимую информацию. Измененные атрибуты поставщика автоматически изменяются в других таблицах.
Удаление записи “поставщик” происходит путем двойного щелчка мышью на удаляемой записи. При этом требуется запрос на подтверждение удаления записи.
Работа с товарами
Таблица “товары” представляет собой справочник товаров, которые поставляются на предприятие. Атрибуты этой таблицы содержат уникальный код для каждого товара и наименование товара. При заключении каждого нового договора необходимо заполнить таблицу ассортимент договора.
Добавление новой записи в таблицу осуществляется путем ввода информации о товаре в строки таблицы товары. Редактирование — нажатием клавиши Enter на редактируемой строке и изменении информации.
Удаление — двойным щелчком мыши на удаляемой строке.
Работа с заключенными договорами
Работа с данной таблицей для пользователя ограничена, поскольку данными для ее заполнения служат ранее заполненные таблицы (договор, поставщик).
Работа с ассортиментом договоров
Работа с ассортиментом договоров заключается в добавлении, редактировании и удалении наименования товара или товаров, которые поставщик обязуется поставить заказчику на основании перечня поставляемых товаров, указываемом в заключенном договоре. Вышеуказанные операции проводятся аналогично операциям в работе с договорами.
Работа с заявками
Работа с заявками представляет собой работу с тремя закладками:
— Заявка;
— Ассортимент заявки;
— Все заявки.
Закладка “заявка” содержит таблицу с данными о заявках, которые сделал заказчик поставщику по одному из заключенных договоров. Таблица заявка содержит атрибуты: номер заявки, номер договора, дата заявки. Заполнение всех атрибутов является обязательным. Номер договора один из заключенных, в противном случае возникает ошибка.
Пользователь имеет возможность добавлять, редактировать и удалять записи.
Добавить запись можно в случае когда таблица активна, т.е. пользователь осуществляет работу с ней. Таблица автоматически переводится в режим добавления записей при нажатии пользователем клавиши на пустой строке, либо нажатием клавиши Insert. Для редактирования необходимо выбрать запись для редактирования и, нажав клавишу Enter произвести редактирование необходимого поля записи. Удаление происходит путем двойного щелчка мышью на выбранной для удаления записи.
Закладка “ассортимент товаров” содержит таблицу с данными о сделанной заявке, а именно: номер заявки, номер товара, количество заказанной продукции в принятых единицах измерения (шт., кг., л., и т.п.). все атрибуты являются обязательными к заполнению. Кроме того, номер товара (код товара) может быть выбран только из номеров товара, которые указаны в справочнике товаров.
Удаление, добавление и редактирование записей происходит аналогично закладке заявка.
Работа со счетами
Для работа со счетами предлагается закладка “счет-фактура”, которая содержит таблицу счета и поле для определения оптимального счета. Таблица “счета” включает атрибуты: номер счета, номер заявки, номер договора, сумма счета. Все атрибуты обязательны для заполнения. Ассортимент счета соответствует ассортименту заявки. На закладку выводится информация (либо предоставляется для ввода) только по одному из заключенных договоров, номер которого выбран в таблице ассортимент договоров.
Работа с заказами
Для работы с заказами предлагается две закладки:
— Заказ;
— Все заказы.
В закладку “заказ” включены таблица “заказ” с атрибутами: номер
заказа, номер договора, номер счета, получено, оплачено, и поле для определения задолженности предприятия по оплате выполненных поставок. Пользователю предоставляется возможность добавления, редактирования и удаления записей. Все операции с записями осуществляются для определенного договора, указанного в закладке ассортимент договора. Все атрибуты таблицы обязательны к заполнению. Заполнение полей таблицы оплачено и получено можно осуществлять с выпадающего списка с двумя строками (да, нет).
В случае если долг по оплате поставок отсутствует, то поле “долг” принимает значение “нет”.
Закладка “все заказы” представляет собой таблицу с перечнем всех заказов сделанных по всем заключенным договорам. Что-либо в ней изменять пользователь не имеет возможности.
Печать.
Закладка “печать” используется для печати бланков договоров, заявок, заказов. Для выбора документа, который необходимо напечатать следует выбрать соответствующий флажок.
Области применения
— Контроль и сигнализация наличия взрывопожароопасных и токсичных веществ в оборотной воде и пароконденсате
— Анализ нефтепродуктов в оборотных и сточных водах промышленных предприятий
— Контроль попадания взрывопожароопасных газов в оборотную воду и пароконденсат
Принцип измерения
Анализатор представляет собой систему, позволяющую, путем непрерывного барботирования, выносить из воды углеводороды и контролировать их концентрацию при помощи различных типов детекторов: пламенно-ионизационного (ПИД), фото-ионизационного (ФИД), полупроводникового (ППД), термо-каталитического (ТКД), электрохимического (ЭХД) и других типов детекторов в зависимости от типа контролируемых веществ.
Газ-носитель непрерывно пропускается через пробу, нагретую до необходимой температуры, молекулы углеводородов из воды попадают в газ и выносятся на детектор, который формирует первичный измерительный сигнал.
Газ-носитель, как правило, это воздух КИП, а для особо чистых сред и измерения особо низких концентраций в таких средах, как конденсат водяного пара, целесообразно применить сетевой азот, для исключения влияния примесей, которые содержаться в сжатом воздухе.
На основании калибровочных данных контроллер пересчитывает сигнал детектора в концентрацию и формирует выходной сигнал анализатора.
Конструкция анализатора
Анализатор конструктивно состоит из двух отсеков: отсека электроники и аналитического отсека. В отсеке электроники распложены контроллеры, реле и все необходимое для функционирования прибора электрооборудование. В отсеке пробы находится барботер, нагреватель и первичный преобразователь соответствующего типа.
Прибор реализован на современной контроллерной базе и имеет широкие функции самодиагностики. Все основные параметры, такие как давление воздуха, температура в барботере, температура в корпусе прибора и прочие необходимые для бесперебойной работы прибора контролируются прибором. Все наиболее важные параметры записываются на съёмный носитель.
Управление и настройка прибора производится при помощи ЖК экрана, размером 7″, расположенной на двери отсека электроники.
Взрывозащита прибора реализована на основе продувки корпуса избыточным давлением для таких детекторов как ФИД, ТКД и аналогичных применяется продувка типа “Z” см. чертеж анализатора. Система управления продувкой распложена над анализатором. Для ПИД детектора применяется продувка типа “Х” на основе контроллера продувки.
Конструктив анализатора позволяет осуществлять легкий доступ для ремонта и обслуживания всех узлов анализатора.
В качестве опций возможны следующие дополнительные функции:
– Функция обратной продувки фильтра (автоочистка), что актуально для загрязнённых сред;
– Автоматический отбор пробы на лабораторный анализ (опция);
– Автоматический анализ нескольких потоков (опция);
Специалисты нашей компании готовы рассмотреть варианты модернизации прибора в соответствии с измерительными задачами и требованиями Заказчика.
Технические характеристики
Максимальная температура пробы
до 50 °С (стандартно) до +250 °С (с охладителем)
Расход пробы
от 50 до 500 мл/мин (стандартно 400 мл/мин)
Температура эксплуатации
5 .. 50 °С
Габаритные размеры анализатора
от 600х600х300 мм до 1400х1000х600 мм (ВхШхГ)
(в зависимости от исполнения анализатора, детектора, типа взрывозащиты, установленных опций)
Маркировка взрывозащиты
1Ex px IIC T4 Gb X или 2Ex pz IIC T4 Gc X
Кол-во измеряемых потоков
от 1 до 5 (в зависимости от длины линий, пробы)
Выходные сигналы аналоговые
0/4 — 20 мА
Выходы релейные
типа «сухой контакт» по концентрации и состояниям
Выходные сигналы цифровые
RS232 / RS485, Ethernet TCP/IP, Modbus и т.п.
Питание
220 В, 50 Гц, 300 Вт (до 1000 Вт при прогреве)
Диапазон измерения
ФИД минимально 0-5 мг/л, до 0-1000 мг/л
ПИД минимально 0-1 мг/л, до 500 мг/л
ТКД минимально 0-100 мг/л, до 500 мг/л
ППД минимально 0-10 мг/л, до 1000 мг/л
ЭХД минимально 0-10 мг/л, до 1000 мг/л
Погрешность измерения
зависит от типа измеряемых веществ
Масса
от 25 до 55 кг (в зависимости от исполнения)
Степень защиты оболочки
IP 54 (стандартно), IP 65 (опционально)
Память архива
SSD съёмная 8 Гб
Воздух
не менее 300 кПа (2-5 л/мин, на пуске до 100 л/мин)
Измеряемые вещества и диапазоны измерения
Вещества | Минимальный диапазон |
---|---|
Ацетон | 0 – 10 мг/м3 |
Бензол | 0 – 10 мг/м3 |
Бензин | 0 – 10 мг/м3 |
Бутан | 0 – 10 мг/м3 |
Бутадиен-1,3 | 0 – 10 мг/м3 |
Водород | 0 – 25 мг/м3 |
Гексан | 0 – 10 мг/м3 |
Гептан | 0 – 10 мг/м3 |
Дизельное топливо | 0 – 10 мг/м3 |
Диэтиловый эфир | 0 – 10 мг/м3 |
Изобутилен | 0 – 10 мг/м3 |
Керосин | 0 – 10 мг/м3 |
Метан | 0 – 10 мг/м3 |
Метилмеркаптан | 0 — 10 мг/м3 |
н-Октан | 0 — 10 мг/м3 |
Пентан | 0 — 10 мг/м3 |
Сероводород | 0 — 10 мг/м3 |
Стирол | 0 — 10 мг/м3 |
Толуол | 0 — 10 мг/м3 |
Этилбензол | 0 — 10 мг/м3 |
* Указаны основные измеряемые вещества, для получения информации по Вашей задаче необходимо заполнить опросный лист.
-
Утвержден
ГТЯН.411711.001РЭ-ЛУ
СИСТЕМА ИЗМЕРИТЕЛЬНАЯ «АСИС»
Руководство по эксплуатации
ГТЯН.411711.001РЭ
(ПАСПОРТ ГТЯН.411711.001ПС)
Содержание
Назначение изделия 4
Технические характеристики 4
Устройство и работа 6
Комплектность 7
Техническое обслуживание 9
Указание мер безопасности 9
Поверка 9
Свидетельство о приемке 10
Сведения об упаковке, транспортировании и хранении 11
Гарантии изготовителя 11
Сведения о ремонте 11
Настоящее руководство по эксплуатации (РЭ) предназначено для ознакомления с устройством, работой и правилами эксплуатации системы измерительной «АСИС» необходимыми для правильной их эксплуатации
Назначение изделия
1.1.1Система измерительная «АСИС» ГТЯН.411711.001 (далее — система) предназначена для измерений давления, силы и линейного перемещения.
1.1.2Система совместно с различными устройствами и комплексами «АСИС» (все типы и модификации комплекса), создающими испытательные воздействия, может быть использована в различных областях промышленности и техники, например, для испытаний пылевато-глинистых, песчаных грунтов и горных пород, с целью определения их прочностных и деформационных свойств.
1.1.3По виду климатического исполнения система относится к УХЛ4.2 по ГОСТ 15150-69 и предназначена для следующих условий эксплуатации:
температура окружающего воздуха:
-
от минус 10 до плюс 35 °С – для датчиков;
-
от плюс 15 до плюс 35 °С – для остальных составных частей системы;
относительная влажность воздуха до 80 % при температуре плюс 25 ºС;
атмосферное давление от 84 до 106,7 кПа (от 630 до 800 мм рт. ст.).
Технические характеристики
1.1.4Модификации Систем отличаются количеством измерительных каналов и их диапазонами измерений.
Перечень измерительных каналов систем приведён в таблице 1.
Таблица 1
Наименование измерительного канала |
Обозначение канала |
Количество измерительных каналов, шт. |
Первичный преобразователь (датчик) |
Вторичный преобразователь |
Диапазон измерений канала |
Пределы допускаемой приведенной погрешности измерений,% |
Давление жидкости и газа |
ИКД 1-1 |
от 1 до 160 |
ГТ 5.1.1 |
ГТ 6.0.30 или ГТ 6.0.31 |
0…1 МПа |
± 0,5 |
ИКД 1-2 |
ГТ 5.1.2 |
0…2 МПа |
||||
Сила сжатия |
ИКС 1-1 |
от 1 до 160 |
ГТ 5.2.1 |
0…1 кН |
||
ИКС 1-2 |
ГТ 5.2.2 |
0…1 кН |
||||
ИКС 5-1 |
ГТ 5.2.3 |
0…5 кН |
||||
ИКС 5-2 |
ГТ 5.2.4 |
0…5 кН |
||||
ИКС 10-1 |
ГТ 5.2.5 |
0…10 кН |
||||
ИКС 10-2 |
ГТ 5.2.6 |
0…10 кН |
||||
ИКС 25-1 |
ГТ 5.2.10 |
0…25 кН |
||||
ИКС 30-1 |
ГТ 5.2.7 |
0…30 кН |
||||
ИКС 50-1 |
ГТ 5.2.8 |
0…50 кН |
||||
ИКС 50-1 |
ГТ 5.2.9 |
0…50 кН |
||||
Относительное линейное перемещение |
ИКП 10-1 |
от 1 до 160 |
ГТ 5.3.1 |
0…10 мм |
± 0,5 |
|
ИКП 10-2 |
ГТ 5.3.2 |
0…10 мм |
||||
ИКП 10-3 |
ГТ 5.3.3 |
0…10 мм |
||||
ИКП 15-1 |
ГТ 5.3.6 |
0…15 мм |
||||
ИКП 20-1 |
ГТ 5.3.4 |
0…20 мм |
± 0,2 |
|||
ИКП 40-1 |
ГТ 5.3.5 |
0…40 мм |
||||
ИКП 80-1 |
ГТ 5.3.7 |
0…80 мм |
1.1.5Фотография общего вида приведена на рисунке.
Рисунок
1.1.6Метрологические и технические характеристики представлены в таблице 2.
Таблица 2
Наименование параметра |
Значение |
Диапазон измерений давления, МПа |
от 0 до 2 (в зависимости от модификации) |
Диапазон измерений силы, кН |
от 0 до 50 (в зависимости от модификации) |
Диапазон измерений линейного перемещения, мм |
от 0 до 80 (в зависимости от модификации) |
Пределы допускаемой приведённой погрешности измерений давления, % |
± 0,5 |
Пределы допускаемой приведённой погрешности измерений силы, % |
± 0,5 |
Пределы допускаемой приведённой погрешности измерений линейного перемещения, % |
± 0,2; ± 0,5 |
Количество каналов измерений давления жидкости и газа, шт. |
от 1 до 160 |
Количество каналов измерений силы, шт. |
от 1 до 160 |
Количество каналов измерений линейного перемещения, шт. |
от 1 до 160 |
Напряжение питающей сети, В |
от 187 до 242 |
Частота напряжения питания, Гц |
50 ± 1 |
Условия эксплуатации: — температура окружающего воздуха, ºС:
— относительная влажность окружающего воздуха, %; — атмосферное давление, кПа |
от минус 10 до плюс 35 от плюс 15 до плюс 35 до 80 от 84 до 106,7 |
Устройство и работа
1.1.7Конструкция системы двухуровневая.
Нижний уровень системы представлен датчиками соответствующих физических величин и вторичным преобразователем (блок электронно-преобразующий).
Верхний уровень системы включает в себя ПЭВМ.
1.1.8Информационная связь между компонентами системы реализована с использованием стандартных средств обмена информацией в цифровом виде (цифровой сети).
1.1.9Принцип действия системы заключается в измерении физических величин датчиками с последующим преобразованием измерительной информации во вторичном преобразователе (блоке электронно-преобразующим) в цифровой вид. Полученная информация передаётся в ПЭВМ, обрабатывается и выводится на монитор и внешние устройства.
1.1.10Метод измерений с помощью системы – прямой с непосредственным снятием показаний в измеряемых величинах на экране ПЭВМ.
1.1.11Работа с программным обеспечением, установленным в ПЭВМ в настоящем руководстве по эксплуатации не описывается, поскольку интерфейс пользователя, являющийся не метрологически значимым программным обеспечением, проектируется под конкретную модификацию системы, под конкретные пожелания потребителя. Практическое руководство по использованию программного обеспечения можно получить непосредственно у изготовителя.
Комплектность
1.2Комплектность системы приведена в таблице 3.
Таблица 3- Комплектность системы измерительной «АСИС»
Обозначение изделия |
Наименование изделия |
Количество |
Заводской номер |
Примечание |
ГТЯН.421447.017 |
Блок электронно-преобразующий ГТ 6.0.30 |
|||
ГТЯН.421447.018 |
Блок электронно-преобразующий ГТ 6.0.30 |
|||
ГТЯН.406515.006 |
Датчик давления ГТ 5.1.1 |
|||
ГТЯН.406515.007 |
Датчик давления ГТ 5.1.2 |
|||
ГТЯН.406515.058 |
Датчик силы ГТ 5.2.1 |
|||
ГТЯН.406515.059 |
Датчик силы ГТ 5.2.2 |
|||
ГТЯН.406515.055 |
Датчик силы ГТ 5.2.3 |
|||
ГТЯН.406515.060 |
Датчик силы ГТ 5.2.4 |
|||
ГТЯН.406515.054 |
Датчик силы ГТ 5.2.5 |
|||
ГТЯН.406515.061 |
Датчик силы ГТ 5.2.6 |
|||
ГТЯН.406515.056 |
Датчик силы ГТ 5.2.7 |
|||
ГТЯН.406515.057 |
Датчик силы ГТ 5.2.8 |
|||
ГТЯН.406515.062 |
Датчик силы ГТ 5.2.9 |
|||
ГТЯН.406515.032 |
Датчик силы ГТ 5.2.10 |
|||
ГТЯН.406515.049 |
Датчик перемещений ГТ 5.3.1 |
|||
ГТЯН.406515.051 |
Датчик перемещений ГТ 5.3.2 |
|||
ГТЯН.406515.052 |
Датчик перемещений ГТ 5.3.3 |
|||
ГТЯН.406515.038 |
Датчик перемещений ГТ 5.3.4 |
|||
ГТЯН.406515.045 |
Датчик перемещений ГТ 5.3.5 |
|||
ГТЯН.406515.050 |
Датчик перемещений ГТ 5.3.6 |
|||
ГТЯН.406515.064 |
Датчик перемещений ГТ 5.3.7 |
|||
ГТЯН.685621.046 |
Кабель 16 |
|||
Эксплуатационная документация |
||||
ГТЯН.411711.001РЭ |
Система измерительная «АСИС» Руководство по эксплуатации |
|||
ГТЯН.411711.001МП |
Системы измерительные «АСИС» методика поверки |
Техническое обслуживание
1.3Техническое обслуживание системы заключается в периодической проверке работоспособности, в регулярном техническом осмотре.
1.3.1Метрологические характеристики системы в течение межповерочного интервала соответствуют установленным нормам при условии соблюдения потребителем правил хранения, транспортирования и эксплуатации, указанным в настоящем руководстве.
Указание мер безопасности
1.4Монтаж системы следует производить при неработающем объекте контроля и с соблюдением техники безопасности.
1.5При работе с системой должны соблюдаться требования безопасности, установленные действующими «Правилами техники безопасности при эксплуатации электроустановок потребителей», поскольку в системе ИСПОЛЬЗУЕТСЯ ОПАСНОЕ ДЛЯ ЖИЗНИ НАПРЯЖЕНИЕ ПЕРЕМЕННОГО ТОКА 220 В.
Поверка
1.6Система поверяется в соответствии с документом «Системы измерительные «АСИС». ГТЯН.411711.001МП. Методика поверки», утвержденным руководителем ГЦИ СИ ФБУ «Пензенский ЦСМ» 29 июня 2012 г.
1.7Интервал между поверками (межповерочный интервал) – 1 год.
Свидетельство о приемке
СВИДЕТЕЛЬСТВО О ПРИЕМКЕ |
||||
Система измерительная «АСИС» |
ГТЯН.411711.001 |
№ |
||
наименование изделия |
обозначение |
заводской номер |
||
Изготовлен и принят в соответствии с обязательными требованиями государственных (национальных) стандартов, действующей технической документацией и признан годным для эксплуатации |
||||
МП |
||||
личная подпись |
расшифровка подписи |
|||
год, месяц, число |
Сведения об упаковке, транспортировании и хранении
1.8Система транспортируется в упаковке любым видом транспорта. Допускается её транспортирование без упаковки при условии защиты от повреждений.
1.9Воздух в помещении не должен содержать примесей агрессивных газов.
1.10Хранение системы должно осуществляться в упакованном виде в закрытых помещениях (хранилищах).
1.11Срок хранения (консервации) системы включается в межповерочный интервал – 1 год.
Гарантии изготовителя
1.12Изготовитель гарантирует соответствие системы требованиям технических условий при соблюдении потребителем условий транспортирования, хранения, эксплуатации, монтажа и наладки на месте эксплуатации.
1.13Гарантийный срок хранения системы – 12 месяцев с момента изготовления предприятием изготовителем.
1.14Гарантийный срок эксплуатации 18 месяцев с учетом гарантийного срока хранения.
Сведения о ремонте
№ |
Основа-ние для сдачи в ремонт |
Дата поступ- ления в ремонт |
Дата выхода из ремонта |
Вид ремонта |
Должность, фамилия и подпись |
|
Производившего ремонт |
Принявшего ремонт |
|||||
Достарыңызбен бөлісу: