Spécification de l'interface sémantique Ada - Ada Semantic Interface Specification

Spécification d'interface sémantique Ada (ASIS)
Développeur (s) Avocats en langues, Ada Lovelace
Plateforme (s) cible Applications du langage de programmation Ada et analyse statique
Statut actif
Licence Propriétaire

La spécification d'interface sémantique Ada ( ASIS ) est une architecture ouverte en couches fournissant un accès indépendant du fournisseur à l' environnement de bibliothèque Ada . Il permet l' analyse statique des programmes et bibliothèques Ada. Il s'agit d'une bibliothèque d'interfaces ouverte et publiée qui comprend l'environnement Ada et ses outils et applications.

Comme expliqué par le groupe de travail ASIS :

«ASIS est une interface entre un environnement Ada tel que défini par ISO / CEI 8652: 1995 (le Manuel de référence Ada) et tout outil nécessitant des informations de cet environnement» (SIGAda, 2020)

Il est exclusivement utilisé pour les applications de langage de programmation et l'analyse statique sur les programmes Ada, donnant ainsi les informations pertinentes et l'accès à l'ingénierie logicielle assistée par ordinateur (CASE) et aux développeurs applicables. ASIS a également la capacité d'utiliser les outils d'ingénierie logicielle pertinents tout en incarnant une compréhension facile des complexités d'un affichage d'environnement Ada. En outre, il fournit des procédures, des fonctions et des informations pertinentes qui peuvent être utilisées de manière significative pour accéder à des informations exclusives trouvées dans les manuels de référence et dans l'arbre de syntaxe abstraite (AST). Ce qui en retour permettra à ASIS d'être portable pour transporter et conserver les informations et la terminologie des outils Ada.

«ASIS se compose de 21 packages, 2 sont optionnels et dans ces packages définissent 349 requêtes». ASIS sera également constitué d'un package qui en son sein comprendra des packages enfants qui incluent des «Unités de compilation d'erreurs, des environnements Ada, une implémentation, des exceptions, des éléments, un itérateur, des déclarations, des expressions, des clauses, des définitions, des instructions, du texte et des Id».

Globalement, ASIS est simplement un moyen simple de collecter des données à partir d'un programme ADA et augmente la portabilité des outils Ada.

Programmation Ada / Tous les chapitres. Vol.1 de 3 volumes. La base d'ASIS

Caractéristiques d'ASIS

Spécification d'interphase sémantique Ada dans le manuel de référence ISO / CEI 8652 Ada 95 (Ada Language Referencing Manual, 1994) est définie comme une interface au milieu d'un environnement Aria et d'autres outils nécessitant des informations de l'environnement Aria.

Les caractéristiques des outils basés sur ASIS peuvent inclure:

  • analyse de code de haute qualité
  • moniteurs de code automatisés
  • navigateurs
  • outils d'arbre d'appel
  • reformateurs de code
  • outils de conformité aux normes de codage
  • vérificateurs d'exactitude
  • débogueurs
  • outils d'analyse d'arborescence de dépendances
  • outils de conception
  • générateurs de documents
  • outils de métrique
  • outils de rétro-ingénierie
  • réingénierie des outils
  • vérificateurs de style
  • outils de test
  • estimateurs de synchronisation
  • traducteurs

ASIS fournit également des approches limitées des informations structurelles et sémantiques qui se trouvent dans la bibliothèque Ada, il vise à fournir et à produire des informations similaires sinon exactement au même niveau sémantique que la définition d'Ada. Cela aidera grandement à fournir exactement les mêmes définitions et informations du Manuel de référence pour le langage de programmation Ada (LRM) aux personnes et clients intéressés (Ehrenfried).

Principales abstractions

Dans ASIS, il existe 3 abstractions principales qui existent dans les types «privés» Ada. Cela se compose de Context, Compilation_Unit et Element. Bien qu'il existe d'autres types d'abstractions également impliqués, les 3 mentionnés sont les fondamentaux.

Context

L'abstraction de contexte d'ASIS se compose des définitions, termes et conditions disponibles dans les requêtes ASIS. Il est également utilisé comme un moyen et une poignée logique pour l'environnement Ada.

Compilation_Unit

L'unité de compilation est également une poignée logique pour l'environnement Ada. Cette abstraction définit également les propriétés et les caractéristiques qui sont décrites plus en détail dans le Manuel de référence d'Ada . Il utilise l'implémentation du langage de programmation d'Ada pour véhiculer des unités de compilation via ASIS. Comme l'a dit Adacore;

"Un ASIS Compilation_Unit fournit la vue" boîte noire "d'une unité de compilation, en considérant l'unité dans son ensemble. Il peut être décomposé en ASIS Element puis analysé à la manière d'une" boîte blanche "."

Des exemples de ces propriétés peuvent inclure:

  1. Heure de la dernière mise à jour
  2. Nom de l'objet contenant le texte soruce de l'unité
Element

De manière comparable, l'abstraction d'élément est également un descripteur logique de l'unité de compilation décrite ci-dessus, cela peut être explicite ou implicite.

Structure d'ASIS

La structure de l'application ASIS peut être classée en 3 catégories; Configurez l'analyse ASIS, les unités de compilation de processus et l'analyse ASIS complète. Cette structure permet de prendre en charge divers programmes d'analyse de code qui apparaissent dans le langage de programmation Ada.

Configurer l'analyse ASIS

La première étape de la structure de l'analyse ASIS est de la configurer efficacement. Au cours de cette étape, diverses tâches et programmes sont initialisés et établis. Par exemple, comme identifié par William Colket (1999), cette étape se produit lorsque le programme ASIS initialise ASIS, établit le contexte ASIS et l'objet d'état, associe le contexte ASIS à l'analyse, ouvre le contexte ASIS et effectue tout prétraitement nécessaire pour soutenir l'analyse ASIS. La première étape consiste généralement à lancer l'analyse ASIS et à être prête à être utilisée de manière efficace et efficiente.

Unités de compilation de processus

La configuration est ensuite suivie par des " unités de compilation de traitement ", pendant ce temps, les éléments sont échantillonnés et analysés pour s'insérer dans le contexte ASIS qui avait été ouvert et associé au début de la structure ASIS. Au cours de cette étape, il traite principalement la plupart des éléments d'application ASIS en corrélation avec le contexte ASIS, il a également la capacité supplémentaire d'effectuer des unités de compilation avant et après le traitement.

Analyse ASIS complète

La dernière et dernière étape de la structure ASIS est l'achèvement de l'analyse ASIS. C'est là que tout est finalisé et revu pour effectuer tout post-traitement à l'analyse ASIS. Le contexte ASIS est également fermé et dissocié et ASIS est finalement finalisé.

Critère de design

Comme ASIS continue d'évoluer de la même manière, il en va de même pour l'évolution de ses critères de conception. Les critères de conception de l'ASIS peuvent être classés en 9 catégories différentes; large acceptation, transportabilité, uniformité et cohésion, implémentabilité, état de la technologie, extensibilité, terminologie et style ada, performances et ensemble minimal d'interfaces.

1. Large acceptation

Il doit être conçu selon ces critères afin qu'une grande variété d'outils puisse être utilisée pour l'ASIS. Le concevoir avec cela permet à la bibliothèque d'interfaces d'être plus flexible et disponible pour les outils sur d'autres plates-formes, les implémentations des fournisseurs Ada. Cela lui permet également de réduire le temps de formation des utilisateurs et des développeurs d'outils.

2. Transportabilité

ASIS doit également être conçu de manière à pouvoir être transféré d'un ordinateur à un autre ordinateur ou d'un autre environnement à un autre.

3. Uniformité et cohésion

Il doit également être cohérent dans les propriétés, les concepts, les types et les opérations, mais également être conservé comme une opération simple et cohérente.

4. Applicabilité

ASIS est également critiqué pour qu'il soit "implémentable par n'importe quel éditeur de compilateurs Ada avec un effort raisonnable". En plus de maintenir la cohérence tout au long du programme.

5. État de la technologie

L'état de la technologie doit toujours être mis à jour et avancé pour s'assurer qu'aucun problème ne survient. De plus, il faut s'assurer que toutes les variantes et versions possibles de l'ASIS seront cohérentes et efficaces.

6. Extensibilité

"Cela ne devrait pas empêcher les extensions qui utiliseront le modèle de conception et les abstractions ASIS."

7. Terminologie et style Ada

ASIS devrait également s'adapter aux termes et conditions de style et aux définitions du Manuel de référence Ada.

8. Performance

"La conception ASIS doit permettre une efficacité à la fois du point de vue du client et de la vue de la mise en œuvre"

9. Ensemble minimal d'interfaces

"Il devrait permettre aux clients d'implémenter des interfaces en couches supplémentaires en utilisant les opérations primitives fournies."

Utilisations d'ASIS

ASIS pour GNAT

ASIS a été utilisé par Adacore pour implémenter une norme ASIS dans l'utilisation des applications ASIS-for-GNAT. ASIS peut être utilisé pour GNAT via des applications typiques telles que: «Analyse statique (vérification de propriété), instrumentation de code, outils de conception et de génération de documents, outils de test métrique ou de synchronisation, outils d'analyse d'arbre de dépendance, générateurs de dictionnaire de types, normes de codage outils d'application, langage Traducteurs, outils d'évaluation de la qualité, navigateurs et formateurs de sources et éditeurs dirigés par la syntaxe »(ASIS pour GNAT).

Cette utilisation a également permis de développer de nombreux outils avec l'aide d'ASIS, notamment

  1. gnatelim
  2. gnatstub
  3. gnatcheck
  4. gnatpp
  5. gnatmetric.

ASIS comme isolant

Pace Drury (1999) utilise ASIS pour créer un code pour son projet nommé `` SIDPERS-3 '' où le code est utilisé pour identifier les détails intimes et les variations vus dans Commercial Off the Shelf (COTS) générés à partir de l'interaction de base de données Drury a utilisé ASIS pour son projet où ASIS a créé une nouvelle couche de code Ada qui a réussi à isoler le développeur du logiciel des mêmes spécificités du code Ada généré.

Après avoir écrit un code aussi difficile appelé 'generate_db_support_code' qui se composait principalement de code Ada, le but était d'ouvrir 2 fichiers, d'examiner le contenu et de créer deux nouveaux fichiers basés sur les 2 fichiers précédents. ASIS avait été utilisé pour examiner efficacement la structure du code, facilitant le stockage et le lien vers une liste contenant le langage Ada. ASIS complète de manière cohérente ce qui est demandé et obtient avec succès un accès constant et sécurisé aux informations de la base de données qui répondent aux besoins du projet.

AdaControl

AdaControl est un outil gratuit (GMGPL) qui détecte l'utilisation de divers types de constructions dans les programmes Ada. Ses utilisations incluent la vérification des normes de codage, l'exploration de l'utilisation des fonctionnalités Ada, la création de statistiques, etc. Il exploite toute la puissance d'ASIS et peut être considéré comme l'application ASIS la plus typique.

Les références

Supplémentaire

  1. ISO / CEI 15291: Technologies de l'information - Langages de programmation - Spécification de l'interface sémantique Ada (ASIS)
  2. Manuel de référence du langage Ada. Version 6.0 21 décembre 1994. Copyright (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
  3. Spécification ASIS 2.0

Liens externes