ADA -Semantische Schnittstellenspezifikation

ADA Semantische Schnittstellenspezifikation (ASIS)
Entwickler (en) Sprachanwälte, Ada Lovelace
Zielplattform (n) ADA -Programmiersprachanwendungen und statische Analyse
Status Aktiv
Lizenz Proprietär

Das Ada Semantische Schnittstellenspezifikation (WIE ES IST) ist eine geschichtete, offene Architektur, die den näherabhängigen Zugang zum nähermalsunabhängigen Zugang zur Verfügung stellt Ada Bibliotheksumgebung. Es erlaubt das Statische Analyse von ADA -Programmen und Bibliotheken. Es handelt sich um eine offene, veröffentlichte Schnittstellenbibliothek, die aus der ADA -Umgebung und ihren Tools und Anwendungen besteht.

Wie erklärt durch die ASIS -Arbeitsgruppe:

"ASIS ist eine Schnittstelle zwischen einer ADA -Umgebung, die von ISO/IEC 8652: 1995 (dem ADA -Referenzhandbuch) und jedem Instrument, das Informationen aus dieser Umgebung benötigt, definiert." (Sigada, 2020)

Es wird ausschließlich für Programmiersprachanwendungen und statische Analysen zu ADA-Programmen verwendet, wodurch die relevanten Informationen und der Zugriff auf computergestütztes Software-Engineering (Fall) und anwendbare Entwickler gewährt werden. ASIS hat auch die Möglichkeit, die relevanten Tools für Software -Engineering zu nutzen und gleichzeitig ein leichtes Verständnis der Komplexität einer ADA -Umgebung zu verkörpern. Darüber hinaus bietet es Verfahren, Funktionen und relevante Informationen, die erheblich verwendet werden können, um auf exklusive Informationen in Referenzhandbüchern und den abstrakten Syntaxbaum (AST) zuzugreifen. Was als Gegenleistung ASIS auf die Fähigkeit des tragbaren Transports und Beibehaltens von Informationen und Terminologie von ADA -Tools vorantreibt.[1]

„ASIS besteht aus 21 Paketen, 2 sind optional und definieren in diesen Paketen 349 Abfragen“.[2] ASIS besteht auch aus einem Paket, das darin enthalten ist, Kinderpakete mit „Fehlerkompilierungseinheiten, ADA -Umgebungen, Implementierung, Ausnahmen, Elementen, Iterator, Deklarationen, Ausdrücken, Klauseln, Definitionen, Aussagen, Text und IDs enthalten“.[3]

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

ADA -Programmierung/alle Kapitel. Vol.1 von 3 Volumensatz. Die Grundlage des Asis

Merkmale von Asis

ADA Semantische Interphasenspezifikation im Rahmen des ISO/IEC 8652 ADA 95 Referenzhandbuch (ADA Language Referencing Manual, 1994) wird als Schnittstelle inmitten einer ARIA -Umgebung und anderen Tools definiert, die Informationen aus der ARIA -Umgebung benötigen.

Die Funktionen von ASIS -basierten Tools können umfassen:[4]

  • Hochwertige Codeanalyse
  • automatisierte Codemonitore
  • Browser
  • Rufen Sie Baumwerkzeuge auf
  • Code -Reformatoren
  • Codierungsstandards Compliance -Tools
  • Korrektheitsprüfer
  • Debugger
  • Abhängigkeitsbaumanalysewerkzeuge
  • Designwerkzeuge
  • Dokumentgeneratoren
  • Metrikenwerkzeuge
  • Reverse Engineering Werkzeug
  • Wiedergutmachungsinstrumente
  • Stilprüfer
  • Testwerkzeuge
  • Timing -Schätzer
  • Übersetzer

ASIS liefert auch begrenzte Ansätze für die strukturellen und semantischen Informationen, die in der ADA -Bibliothek zu finden sind. Sie soll Informationen bereitstellen und erstellen, die ähnlich sind, wenn nicht genau das gleiche semantische Niveau wie die Definition von ADA. Dies hilft erheblich bei der Bereitstellung der gleichen Definitionen und Informationen des Referenzhandbuchs für die ADA -Programmiersprache (LRM) an interessierte Personen und Kunden (Ehrenfried).

Hauptabstraktionen

In Asis gibt es 3 Haupthaupt Abstraktionen Das existiert in den ada -privaten Typen. Dies besteht aus Kontext, Compilation_unit und Element.[5] Zwar gibt es auch zusätzliche Arten von Abstraktionen, aber die 3 genannten sind die Grundlagen.

Kontext 

Die Kontextabstraktion von ASIS besteht aus den Definitionen, Bedingungen, die in ASIS -Anfragen verfügbar sind. Es wird auch als Weg und logischer Griff für die ADA -Umgebung verwendet.[4]

Compilation_unit 

Die Kompilierungseinheit ist auch ein logisches Griff für die ADA -Umgebung. Diese Abstraktion definiert auch die Eigenschaften und Eigenschaften, die weiter in der gesehen werden ADA -Referenzhandbuch. Es verwendet die Implementierung der Programmiersprache von ADA, um Kompilierungseinheiten über ASIS zu vermitteln. Wie von Adacore gesagt;

"Ein Asis Compilation_unit Bietet die Ansicht "Black-Box" einer Kompilierungseinheit unter Berücksichtigung des gesamten Geräts. Es kann in Asis zersetzt werden Elementund dann in "White-Box" -Modus analysiert. "[4]

Beispiele für diese angegebenen Eigenschaften können umfassen:

  1. Zeit des letzten Updates
  2. Name des Objekts, das Einheitsbärbentext enthält
Element 

Vergleichbar 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 3 Kategorien eingeteilt werden. Setup ASIS -Analyse, Prozesskompilierungseinheiten und vollständige ASIS -Analyse. Diese Struktur soll bei der Unterstützung verschiedener Codeanalyseprogramme helfen, die in der ADA -Programmiersprache erscheinen.[3]

Setup ASIS -Analyse

Der erste Schritt zur Struktur der ASIS -Analyse besteht darin, sie effizient einzurichten. Während dieses Schritts werden verschiedene Aufgaben und Programme initialisiert und festgelegt. Wie von William Colket (1999) identifiziert, ist dieser Schritt beispielsweise, wenn das ASIS-Programm ASIS initialisiert, ASIS-Kontext und Staatsobjekt festlegt, den ASIS-Kontext mit der Analyse assoziiert, den ASIS Unterstützen Sie die ASIS -Analyse. Der erste Schritt besteht im Allgemeinen darin, die ASIS -Analyse in Betrieb zu nehmen und effizient und effektiv zu verwenden.

Prozesskompilierungseinheiten

Dem Setup folgt dann "Verarbeitung Kompilierungseinheiten"Während dieser Zeit werden Elemente abgetastet und analysiert, um in den ASIS -Kontext zu passen, der zu Beginn der ASIS -Struktur geöffnet und in Verbindung gebracht wurde. In diesem Schritt verarbeitet es hauptsächlich die meisten ASIS -Anwendungselemente in Korrelation mit dem ASIS -Kontext hat auch die zusätzliche Fähigkeit, Kompilierungseinheiten vor und nach der Verarbeitung durchzuführen.

Vollständige ASIS -Analyse

Die letzte und letzte Phase der ASIS -Struktur ist die Abschluss der ASIS -Analyse. Hier wird alles fertiggestellt und überprüft, um eine Postverarbeitung mit der ASIS -Analyse durchzuführen. Der ASIS -Kontext ist ebenfalls geschlossen und abgebaut und ASIS wird schließlich abgeschlossen.

Design-Kriterien

Da sich Asis ähnlich weiterentwickelt, entwickelt sich auch die Entwicklung seiner Entwurfskriterien. Die Kriterien für die Art und Weise, wie ASIS entworfen werden kann, können in 9 verschiedene Kategorien sortiert werden. Große Akzeptanz, Transportfähigkeit, Einheitlichkeit und Zusammenhalt, Implementierbarkeit, Technologiezustand, Erweiterbarkeit, ADA -Terminologie und -Stil, Leistung und minimale Reihe von Schnittstellen.[6]

1. breite Akzeptanz

Es muss nach diesen Kriterien konzipiert werden, damit eine Vielzahl von Werkzeugen für ASIS verwendet werden kann. Durch das Entwerfen mit diesem ermöglicht die Schnittstellenbibliothek flexibler und für Tools auf anderen Plattformen, ADA -Anbieter -Implementierungen, verfügbar. Es ermöglicht es auch, die Schulungszeit für Toolbenutzer und -entwickler zu verkürzen.

2. Transportfähigkeit

ASIS muss auch so konzipiert werden, dass es die Fähigkeit hat, von einem Computer auf einen anderen Computer oder eine andere Umgebung auf einen anderen zu übertragen.

3. Gleichmäßigkeit und Kohäsivität

Es sollte auch in Eigenschaften, Konzepten, Typen und Operationen konsistent sein, aber auch als einfacher und kohärenter Betrieb aufbewahrt werden.

4. Implementierbarkeit

ASIS wird auch so kritisiert, dass es "von einem ADA -Compiler -Anbieter mit angemessenen Anstrengungen implementiert werden kann".[4] Sowie die Konsistenz im gesamten Programm aufrechtzuerhalten.

5. Technologiezustand

Der Technologiezustand muss immer aktualisiert und fortgeschritten sein, um sicherzustellen, dass keine Probleme stattfinden. 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 -Designmodell und die Abstraktionen verwenden."[4]

7. ADA -Terminologie und Stil

ASIS sollte sich auch an die Bedingungen von Stil und Definitionen an das ADA -Referenzhandbuch anpassen.

8. Leistung

"Das ASIS -Design muss sowohl die Effizienz sowohl aus der Sicht der Kunden als auch aus der Ansicht der Implementierung ermöglichen."[4]

9. Minimaler Schnittstellen

"Es sollte Clients ermöglichen, zusätzliche vielschichtige Schnittstellen mithilfe der vorgesehenen primitiven Vorgänge zu implementieren."

Verwendung von Asis

Asis für Gnat

ASIS wurde von Adacore verwendet, um einen ASIS-Standard bei der Verwendung von ASIS-for-GNAT-Anwendungen zu implementieren. ASIS kann für GNAT über typische Anwendungen wie: „Statische Analyse (Eigenschaftsprüfung), Codeinstrumentierung, Design- und Dokumentengenerierungswerkzeuge, metrische Tests oder Timing -Tools, Abhängigkeitsbaumanalyse -Tools, Typ -Wörterbuchgeneratoren, Codierung von Standards Durchsetzungswerkzeugen, Sprache verwendet werden Übersetzer, Qualitätsbewertungswerkzeuge, Quellbrowser und Formatierungen und Syntax -gerichtete Redakteure “(ASIS for GNAT).

Diese Verwendung war auch in der Lage, zahlreiche Mengen an Werkzeugen mit Unterstützung von ASIS zu entwickeln

  1. Gnatelim
  2. Gnatstub
  3. Gnatcheck
  4. gnatpp
  5. gnatmetric.

Asis als Isolator

Pace Drury (1999) nutzt 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 im kommerziellen Regal aus dem Regal (COTS) aus Datenbank-Interaktion Drury für seine generierten. Projekt, bei dem ASIS eine neue Ebene von ADA -Code erstellt hat, die den Softwareentwickler erfolgreich von denselben generierten ADA -Codespezifikationen isoliert hat.[7]

Nach einem so schwierigen Code namens "Generate_db_support_code", der hauptsächlich aus ADA -Code bestand, war das Ziel, 2 Dateien zu öffnen, Inhalte zu untersuchen und zwei neue Dateien basierend auf den vorherigen 2 Dateien zu erstellen. ASIS wurde verwendet, um die Struktur des Codes effizient zu untersuchen, wodurch das Speichern und Verknüpfung zu einer Liste mit ADA -Sprache erleichtert wurde. ASIS vervollständigt kohärent das, was gebeten wird, und gewinnt erfolgreich einen konstanten und sicheren Zugriff auf die Datenbankinformationen, die den Anforderungen des Projekts entsprechen.

Adacontrol

Adacontrol ist ein kostenloses Tool (GMGPL), das die Verwendung verschiedener Arten von Konstrukten in ADA -Programmen erkennt. Zu den Verwendungen gehört die Überprüfung der Codierungsstandards, die Erforschung der Verwendung von ADA -Funktionen, das Erstellen von Statistiken und vieles mehr. Es nutzt die gesamte Kraft des ASIS aus und kann als die typischste ASIS -Anwendung angesehen werden.

Verweise

  1. ^ Sward, Ricky E.; Chamillard, A. T. (2004). "Neubindung globaler Variablen in ADA". Proceedings der jährlichen ACM Sigada International Conference von ACM Sigada über ADA The Engineering der korrekten und zuverlässigen Software für Echtzeit- und verteilte Systeme unter Verwendung von ADA und verwandten Technologien - Sigada '04. Atlanta, Georgia, USA: ACM Press. Xxiv (4): 29–34. doi:10.1145/1032297.1032303. ISBN 978-1-58113-906-8.
  2. ^ Strohmeier, Alfred; Fofanov, Vasiliy; Rybin, Sergey; Barbey, Stéphane (1998). Asplund, Lars (Hrsg.). "Qualität für Assis: Eine tragbare Testeinrichtung für ASIS". Zuverlässige Softwaretechnologien-ADA-Europe. Vorlesungsnotizen in Informatik. Berlin, Heidelberg: Springer. 1411: 163–175. doi:10.1007/bfb0055003. ISBN 978-3-540-69802-9.
  3. ^ a b Colket, William Currie (September 1999). "Codeanalyse von Safey-Critical [SIC] und Echtzeit-Software mit ASIS". ACM Sigada Ada Briefe. Xix (3): 67–76. doi:10.1145/319295.319306. ISSN 1094-3641.
  4. ^ a b c d e f et al
  5. ^ "4. ASIS-Übersicht-ASIS-for-GNAT-Benutzerhandbuch 22.0W Dokumentation". docs.adacore.com. Abgerufen 2020-11-20.
  6. ^ Bladen, James B.; Spenhoff, David; Blake, Steven J. (1991). "ADA Semantische Schnittstellenspezifikation (ASIS)". Proceedings der Konferenz über Triad '91 heute; Die Erwartungen von morgen - Tri -ada '91. New York, New York, USA: ACM Press: 6–15. doi:10.1145/126551.126552. ISBN 0-89791-445-7.
  7. ^ Drury, Pace (März 1999). "Verwenden von ASIS für die Datenbankisolierung". ACM Sigada Ada Briefe. Xix (1): 64–65. doi:10.1145/311457.311486. ISSN 1094-3641.

Zusätzlich

  1. ISO/IEC 15291: Informationstechnologie - Programmiersprachen - ADA -Semantische Schnittstellenspezifikation (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