Ada Semantic Interface Specification - Ada Semantic Interface Specification

Ada Semantic Interface Specification (ASIS)
Entwickler Sprachanwälte, Ada Lovelace
Zielplattform (en) Ada-Programmiersprachenanwendungen und statische Analyse
Status Aktiv
Lizenz Proprietär

Die Ada Semantic Interface Specification ( ASIS ) ist eine mehrschichtige, offene Architektur, die einen herstellerunabhängigen Zugriff auf die Ada Library-Umgebung bietet . Es ermöglicht die statische Analyse von Ada-Programmen und -Bibliotheken. Es ist eine offene, veröffentlichte Schnittstellenbibliothek, die aus der Ada-Umgebung und ihren Tools und Anwendungen besteht.

Wie von der ASIS-Arbeitsgruppe erläutert :

„ASIS ist eine Schnittstelle zwischen einer Ada-Umgebung gemäß ISO / IEC 8652: 1995 (Ada-Referenzhandbuch) und jedem Tool, das Informationen aus dieser Umgebung benötigt“ (SIGAda, 2020).

Es wird ausschließlich für Programmiersprachenanwendungen und statische Analysen in Ada-Programmen verwendet, um die relevanten Informationen und den Zugriff auf Computer Aided Software Engineering (CASE) und anwendbare Entwickler zu ermöglichen. ASIS kann auch die relevanten Software-Engineering-Tools verwenden und gleichzeitig ein einfaches Verständnis der Komplexität einer Ada-Umgebungsanzeige vermitteln. Darüber hinaus bietet es Prozeduren, Funktionen und relevante Informationen, die in erheblichem Maße für den Zugriff auf exklusive Informationen in Referenzhandbüchern und im Abstract Syntax Tree (AST) verwendet werden können. Im Gegenzug wird ASIS in die Lage versetzt, tragbar zu sein, um Informationen und Terminologie von Ada-Tools zu transportieren und zu speichern.

"ASIS besteht aus 21 Paketen, 2 sind optional und definieren in diesen Paketen 349 Abfragen." ASIS wird auch aus einem Paket bestehen, das untergeordnete Pakete enthält, die "Fehlerkompilierungseinheiten, Ada-Umgebungen, Implementierung, Ausnahmen, Elemente, Iterator, Deklarationen, Ausdrücke, Klauseln, Definitionen, Anweisungen, Text und IDs" enthalten.

Insgesamt ist ASIS einfach eine einfache Möglichkeit, Daten aus einem ADA-Programm zu erfassen, und erhöht die Portabilität der Ada-Tools.

Ada-Programmierung / Alle Kapitel. Vol.1 von 3 Volume Set. Die Basis von ASIS

Funktionen von ASIS

Die Ada Semantic Interphase-Spezifikation gemäß dem ISO / IEC 8652 Ada 95-Referenzhandbuch (Ada Language Referencing Manual, 1994) ist als Schnittstelle zwischen einer Aria-Umgebung und anderen Tools definiert, für die Informationen aus der Aria-Umgebung erforderlich sind.

Zu den Funktionen von ASIS-basierten Tools können gehören:

  • Hochwertige Code-Analyse
  • automatisierte Codemonitore
  • Browser
  • Baumwerkzeuge aufrufen
  • Code-Reformatoren
  • Tools zur Einhaltung von Kodierungsstandards
  • Korrektheitsprüfer
  • Debugger
  • Tools zur Analyse von Abhängigkeitsbäumen
  • Design-Tools
  • Dokumentgeneratoren
  • Metrik-Tools
  • Reverse Engineering- Tools
  • Re-Engineering-Tools
  • Stilprüfer
  • Testwerkzeuge
  • Timing-Schätzer
  • Übersetzer

ASIS bietet auch begrenzte Ansätze für die strukturellen und semantischen Informationen, die in der Ada-Bibliothek enthalten sind. Es zielt darauf ab, Informationen bereitzustellen und zu produzieren, die ähnlich, wenn nicht genau der gleichen semantischen Ebene wie die Definition von Ada sind. Dies wird wesentlich dazu beitragen, interessierten Personen und Kunden (Ehrenfried) genau die gleichen Definitionen und Informationen des Referenzhandbuchs für die Ada-Programmiersprache (LRM) zur Verfügung zu stellen.

Hauptabstraktionen

In ASIS gibt es 3 Haupt Abstraktionen , die in dem ‚privaten‘ Typen Ada existieren. Dies besteht aus Context, Compilation_Unit und Element. Es gibt zwar zusätzliche Arten von Abstraktionen, aber die drei genannten sind die Grundlagen.

Context

Die Kontextabstraktion von ASIS besteht aus den Definitionen, Bedingungen und Konditionen, die in ASIS-Anfragen verfügbar sind. Es wird auch als Weg und logisches Handle für die Ada-Umgebung verwendet.

Compilation_Unit

Die Kompilierungseinheit ist auch ein logisches Handle für die Ada-Umgebung. Diese Abstraktion definiert auch die Eigenschaften und Merkmale, die im Ada-Referenzhandbuch näher erläutert werden . Es verwendet die Programmiersprachenimplementierung von Ada, um Kompilierungseinheiten über ASIS zu übertragen. Wie von Adacore gesagt;

"Ein ASIS Compilation_Unit bietet die 'Black-Box'-Ansicht einer Kompilierungseinheit, wenn man die Einheit als Ganzes betrachtet. Sie kann in ASIS zerlegt Element und dann in' White-Box'-Weise analysiert werden."

Beispiele für diese Eigenschaften können sein:

  1. Zeitpunkt der letzten Aktualisierung
  2. Name des Objekts, das den Soruce-Text der Einheit enthält
Element

Vergleichsweise ist die Elementabstraktion auch ein logisches Handle für die oben diskutierte Kompilierungseinheit. Dies kann entweder explizit oder implizit sein.

Struktur von ASIS

Die ASIS-Anwendungsstruktur kann in drei Kategorien eingeteilt werden. Richten Sie die ASIS-Analyse, die Prozesskompilierungseinheiten und die vollständige ASIS-Analyse ein. Diese Struktur soll bei der Unterstützung verschiedener Code-Analyseprogramme helfen, die in der Programmiersprache Ada angezeigt werden.

ASIS-Analyse einrichten

Der erste Schritt zur Struktur der ASIS-Analyse besteht darin, sie effizient einzurichten. In diesem Schritt werden verschiedene Aufgaben und Programme initialisiert und eingerichtet. Wie von William Colket (1999) identifiziert, ist dieser Schritt beispielsweise, wenn das ASIS-Programm ASIS initialisiert, den ASIS-Kontext und das Statusobjekt erstellt, den ASIS-Kontext mit der Analyse verknüpft, den ASIS-Kontext öffnet und die erforderliche Vorverarbeitung durchführt unterstützen die ASIS-Analyse. Der erste Schritt besteht im Allgemeinen darin, die ASIS-Analyse zum Laufen zu bringen und bereit zu sein, effizient und effektiv zu arbeiten.

Prozess-Kompilierungseinheiten

Auf das Setup folgt dann " Compilation Units verarbeiten ". In dieser Zeit werden Elemente abgetastet und analysiert, um in den ASIS-Kontext zu passen, der zu Beginn der ASIS-Struktur geöffnet und zugeordnet wurde. Während dieses Schritts werden hauptsächlich die meisten ASIS-Anwendungselemente in Korrelation mit dem ASIS-Kontext verarbeitet. Außerdem können Kompilierungseinheiten vor und nach der Verarbeitung ausgeführt werden.

Vollständige ASIS-Analyse

Die letzte und letzte Stufe der ASIS-Struktur ist der Abschluss der ASIS-Analyse. Hier wird alles finalisiert und überprüft, um eine Nachbearbeitung der ASIS-Analyse durchzuführen. Der ASIS-Kontext wird ebenfalls geschlossen und getrennt, und ASIS wird schließlich fertiggestellt.

Design-Kriterien

Da sich ASIS in ähnlicher Weise weiterentwickelt, ändert sich auch die Entwicklung seiner Entwurfskriterien. Die Kriterien für die Gestaltung von ASIS können in 9 verschiedene Kategorien unterteilt werden. breite Akzeptanz, Transportierbarkeit, Einheitlichkeit und Kohäsivität, Implementierbarkeit, Stand der Technik, Erweiterbarkeit, ada Terminologie und Stil, Leistung und minimale Anzahl von Schnittstellen.

1. Breite Akzeptanz

Es muss nach diesen Kriterien ausgelegt sein, damit eine Vielzahl von Werkzeugen für ASIS verwendet werden kann. Wenn Sie es so gestalten, ist die Schnittstellenbibliothek flexibler und für Tools auf anderen Plattformen verfügbar, die von Ada-Anbietern implementiert werden. Dadurch kann auch die Schulungszeit für Tool-Benutzer und -Entwickler verkürzt werden.

2. Transportierbarkeit

ASIS muss auch so konzipiert sein, dass es von einem Computer auf einen anderen Computer oder eine andere Umgebung auf einen anderen übertragen werden kann.

3. Einheitlichkeit und Zusammenhalt

Es sollte auch in Eigenschaften, Konzepten, Typen und Operationen konsistent sein, aber auch als einfache und kohärente Operation beibehalten werden.

4. Implementierbarkeit

ASIS wird auch kritisiert, damit es "von jedem Ada Compiler-Anbieter mit angemessenem Aufwand implementiert werden kann". Sowie die Aufrechterhaltung der Konsistenz während des gesamten Programms.

5. Stand der Technik

Der Stand der Technik muss immer aktualisiert und erweitert werden, um sicherzustellen, dass keine Probleme auftreten. Darüber hinaus sollte sichergestellt werden, dass alle möglichen Variationen und Versionen von ASIS kohärent und effizient sind.

6. Erweiterbarkeit

"Es sollte keine Erweiterungen ausschließen, die das ASIS-Entwurfsmodell und Abstraktionen verwenden."

7. Ada Terminologie und Stil

ASIS sollte sich auch an die allgemeinen Geschäftsbedingungen und Definitionen des Ada-Referenzhandbuchs anpassen.

8. Leistung

"Das ASIS-Design muss sowohl aus Sicht des Kunden als auch aus Sicht der Implementierung Effizienz ermöglichen."

9. Minimaler Satz von Schnittstellen

"Es sollte Clients ermöglichen, zusätzliche geschichtete Schnittstellen unter Verwendung der bereitgestellten primitiven Operationen zu implementieren."

Verwendung von ASIS

ASIS für GNAT

ASIS wurde von Adacore verwendet, um einen ASIS-Standard für die Verwendung von ASIS-for-GNAT-Anwendungen zu implementieren. ASIS kann für GNAT über typische Anwendungen verwendet werden, z. B.: „Statische Analyse (Eigenschaftsüberprüfung), Code-Instrumentierung, Tools zum Entwerfen und Generieren von Dokumenten, Tools zum Testen von Metriken oder zum Timing, Tools zum Analysieren von Abhängigkeitsbäumen, Generatoren für Typwörterbücher, Tools zur Durchsetzung von Codierungsstandards, Sprache Übersetzer, Tools zur Qualitätsbewertung, Quellbrowser und Formatierer sowie syntaxgesteuerte Editoren “(ASIS for GNAT).

Diese Verwendung war auch in der Lage, mit Hilfe von ASIS zahlreiche Tools zu entwickeln, einschließlich

  1. Mücke
  2. Mückenstub
  3. gnatcheck
  4. gnatpp
  5. gnatmetrisch.

ASIS als Isolator

Pace Drury (1999) verwendet ASIS, um einen Code für sein Projekt mit dem Namen 'SIDPERS-3' zu erstellen, in dem der Code verwendet wird, um intime Details und Variationen zu identifizieren, die in Commercial Off the Shelf (COTS) zu sehen sind, die aus der Datenbankinteraktion generiert wurden. Drury verwendete ASIS für sein Projekt Projekt, in dem ASIS eine neue Schicht von Ada-Code erstellt hat, die den Softwareentwickler erfolgreich von denselben generierten Ada-Code-Besonderheiten isoliert hat.

Nachdem ein so schwieriger Code namens 'generate_db_support_code' geschrieben wurde, der hauptsächlich aus Ada-Code bestand, bestand das Ziel darin, zwei Dateien zu öffnen, den Inhalt zu untersuchen und zwei neue Dateien basierend auf den vorherigen zwei Dateien zu erstellen. ASIS wurde verwendet, um die Struktur des Codes effizient zu untersuchen und das Speichern und Verknüpfen mit einer Liste mit Ada-Sprache zu vereinfachen. ASIS schließt das, was zu tun ist, kohärent ab und erhält erfolgreich einen konstanten und sicheren Zugriff auf die Datenbankinformationen, die den Anforderungen des Projekts entsprechen.

AdaControl

AdaControl ist ein kostenloses (GMGPL) Tool, das die Verwendung verschiedener Arten von Konstrukten in Ada-Programmen erkennt. Zu seinen Verwendungszwecken gehören die Überprüfung von Codierungsstandards, die Untersuchung der Verwendung von Ada-Funktionen, das Erstellen von Statistiken und vieles mehr. Es nutzt die gesamte Leistung von ASIS und kann als die typischste ASIS-Anwendung angesehen werden.

Verweise

Zusätzlich

  1. ISO / IEC 15291: Informationstechnologie - Programmiersprachen - Ada Semantic Interface Specification (ASIS)
  2. Ada Sprachreferenzhandbuch. Version 6.0, 21. Dezember 1994. Copyright (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
  3. ASIS 2.0-Spezifikation

Externe Links