Spécification de l'interface sémantique Ada - Ada Semantic Interface Specification
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.
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:
- Heure de la dernière mise à jour
- 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
- gnatelim
- gnatstub
- gnatcheck
- gnatpp
- 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
- ISO / CEI 15291: Technologies de l'information - Langages de programmation - Spécification de l'interface sémantique Ada (ASIS)
- Manuel de référence du langage Ada. Version 6.0 21 décembre 1994. Copyright (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
- Spécification ASIS 2.0