Especificación de interfaz semántica de Ada - Ada Semantic Interface Specification

Especificación de interfaz semántica de Ada (ASIS)
Desarrollador (es) Abogados de idiomas, Ada Lovelace
Plataforma (s) de destino Aplicaciones del lenguaje de programación Ada y análisis estático
Estado Activo
Licencia Propiedad

La especificación de interfaz semántica de Ada ( ASIS ) es una arquitectura abierta en capas que proporciona acceso independiente del proveedor al entorno de biblioteca Ada . Permite el análisis estático de programas y bibliotecas de Ada. Es una biblioteca de interfaz abierta y publicada que consta del entorno Ada y sus herramientas y aplicaciones.

Como lo explicó el Grupo de Trabajo de ASIS :

“ASIS es una interfaz entre un entorno Ada según lo definido por ISO / IEC 8652: 1995 (el Manual de referencia de Ada) y cualquier herramienta que requiera información de este entorno” (SIGAda, 2020)

Se utiliza exclusivamente para aplicaciones de lenguaje de programación y análisis estático en programas Ada, por lo que brinda la información relevante y el acceso a la ingeniería de software asistida por computadora (CASE) y los desarrolladores correspondientes. ASIS también tiene la capacidad de utilizar las herramientas de ingeniería de software relevantes al mismo tiempo que incorpora una fácil comprensión de las complejidades de una pantalla de entorno Ada. Además, proporciona procedimientos, funciones e información relevante que se puede utilizar de manera significativa para acceder a información exclusiva que se encuentra en los manuales de referencia y el Árbol de sintaxis abstracta (AST). Lo que a cambio hará avanzar a ASIS a la capacidad de ser portátil para transportar y retener información y terminología de las herramientas de Ada.

“ASIS consta de 21 paquetes, 2 son opcionales y dentro de estos paquetes se definen 349 consultas”. ASIS también constará de un paquete que incluye paquetes secundarios que incluyen “Unidades de compilación de errores, entornos Ada, implementación, excepciones, elementos, iterador, declaraciones, expresiones, cláusulas, definiciones, declaraciones, texto e ID”.

En general, ASIS es simplemente una forma sencilla de recopilar datos de un programa ADA y aumenta la portabilidad de cualquiera de las herramientas Ada.

Programación Ada / Todos los capítulos. Volumen 1 de 3 set. La base de ASIS

Características de ASIS

La Especificación de Interfase Semántica Ada bajo el Manual de Referencia ISO / IEC 8652 Ada 95 (Manual de Referencia del Lenguaje Ada, 1994) se define como una interfaz en medio de un entorno Aria y otras herramientas que requieren información del entorno Aria.

Las características de las herramientas basadas en ASIS podrían incluir:

  • análisis de código de alta calidad
  • monitores de código automatizados
  • navegadores
  • Llamar a herramientas de árbol
  • reformadores de código
  • herramientas de cumplimiento de estándares de codificación
  • verificadores de corrección
  • depuradores
  • herramientas de análisis del árbol de dependencia
  • herramientas de diseño
  • generadores de documentos
  • herramientas de métricas
  • herramientas de ingeniería inversa
  • herramientas de reingeniería
  • damas de estilo
  • herramientas de prueba
  • estimadores de tiempo
  • traductores

ASIS también proporciona enfoques limitados a la información estructural y semántica que se encuentra en la biblioteca de Ada, su objetivo es proporcionar y producir información que sea similar, si no exactamente al mismo nivel semántico que la definición de Ada. Esto ayudará enormemente a proporcionar exactamente las mismas definiciones e información del Manual de referencia para el lenguaje de programación Ada (LRM) a las personas y clientes interesados ​​(Ehrenfried).

Principales abstracciones

En ASIS, hay 3 abstracciones principales que existen en los tipos 'privados' de Ada. Consiste en Context, Compilation_Unit y Element. Si bien también hay otros tipos de abstracciones involucradas, las 3 mencionadas son las fundamentales.

Context

La abstracción del contexto de ASIS consta de las definiciones, términos y condiciones que están disponibles en las consultas de ASIS. También se utiliza como una forma y un identificador lógico para el entorno Ada.

Compilation_Unit

La Unidad de compilación también es un identificador lógico para el entorno Ada. Esta abstracción también define las propiedades y características que se ven más adelante en el Manual de referencia de Ada . Utiliza la implementación del lenguaje de programación de Ada para transmitir unidades de compilación a través de ASIS. Como dijo Adacore;

"Un ASIS Compilation_Unit proporciona la vista de 'caja negra' de una unidad de compilación, considerando la unidad como un todo. Puede descomponerse en ASIS Element y luego analizarse en forma de 'caja blanca'".

Ejemplos de estas propiedades dadas pueden incluir:

  1. Hora de la última actualización
  2. Nombre del objeto que contiene el texto del soruce de la unidad
Element

De manera comparable, la abstracción de elementos también es un identificador lógico de la unidad de compilación discutida anteriormente, esto puede ser explícito o implícito.

Estructura de ASIS

La estructura de la aplicación ASIS se puede clasificar en 3 categorías; Configure el análisis ASIS, las unidades de compilación de procesos y el análisis ASIS completo. Esta estructura es para ayudar a soportar varios programas de análisis de código que aparecen en el lenguaje de programación Ada.

Configurar análisis ASIS

El primer paso para la estructura del análisis ASIS es configurarlo de manera eficiente. Durante este paso, se inicializan y establecen varias tareas y programas. Por ejemplo, según lo identificado por William Colket (1999), este paso es cuando el programa ASIS inicializa ASIS, establece el contexto y el objeto de estado de ASIS, asocia el contexto de ASIS con el análisis, abre el contexto de ASIS y realiza cualquier preprocesamiento necesario para apoyar el análisis ASIS. El primer paso es generalmente poner en funcionamiento el análisis ASIS y estar listo para usarlo de manera eficiente y efectiva.

Unidades de compilación de procesos

Luego, la configuración es seguida por " unidades de compilación de procesamiento ", durante este tiempo es cuando los elementos se muestrean y analizan para encajar en el contexto ASIS que se había abierto y asociado al comienzo de la estructura ASIS. Durante este paso, procesa principalmente la mayoría de los elementos de la aplicación ASIS en correlación con el contexto ASIS, también tiene la capacidad adicional de realizar unidades de compilación antes y después de que se haya realizado el procesamiento.

Análisis ASIS completo

La última y última etapa de la estructura de ASIS es la finalización del análisis de ASIS. Aquí es donde todo se finaliza y se revisa para realizar cualquier procesamiento posterior al análisis ASIS. El contexto de ASIS también se cierra y se disocia y, finalmente, ASIS se finaliza.

Criterio de diseño

A medida que ASIS continúa evolucionando de manera similar, también lo hace la evolución de sus criterios de diseño. Los criterios sobre cómo se puede diseñar ASIS se pueden clasificar en 9 categorías diferentes; amplia aceptación, transportabilidad, uniformidad y cohesión, implementabilidad, estado de la tecnología, extensibilidad, terminología y estilo ada, rendimiento y conjunto mínimo de interfaces.

1. Amplia aceptación

Debe diseñarse de acuerdo con este criterio para que se pueda utilizar una amplia variedad de herramientas para ASIS. Diseñarlo con esto permite que la biblioteca de interfaz sea más flexible y esté disponible para herramientas en otras plataformas, implementaciones de proveedores de Ada. También permite reducir el tiempo de formación para los usuarios y desarrolladores de herramientas.

2. Transportabilidad

ASIS también debe diseñarse para que tenga la capacidad de ser transferido de una computadora a otra o de otro entorno a otro.

3. Uniformidad y cohesión

También debe ser coherente en propiedades, conceptos, tipos y operaciones, pero también debe mantenerse como una operación simple y coherente.

4. Implementabilidad

ASIS también es criticado por ser "implementable por cualquier proveedor de compiladores Ada con un esfuerzo razonable". Además de mantener la coherencia durante todo el programa.

5. Estado de la tecnología

El estado de la tecnología siempre debe estar actualizado y avanzado para garantizar que no ocurran problemas. Además, debe garantizarse que todas las posibles variaciones y versiones de ASIS sean coherentes y eficientes.

6. Extensibilidad

"No debería excluir extensiones que utilizarán abstracciones y el modelo de diseño de ASIS".

7. Terminología y estilo de Ada

ASIS también debe adaptarse a los términos y condiciones de estilo y definiciones del Manual de referencia de Ada.

8. Rendimiento

"El diseño de ASIS debe permitir la eficiencia tanto desde el punto de vista del cliente como desde el punto de vista de la implementación"

9. Conjunto mínimo de interfaces

"Debería permitir a los clientes implementar interfaces en capas adicionales utilizando las operaciones primitivas proporcionadas".

Usos de ASIS

ASIS para GNAT

Adacore ha utilizado ASIS para implementar un estándar ASIS en la utilización de aplicaciones ASIS para GNAT. ASIS se puede utilizar para GNAT a través de aplicaciones típicas tales como: "Análisis estático (verificación de propiedad), instrumentación de código, herramientas de diseño y generación de documentos, herramientas de prueba métrica o de tiempo, herramientas de análisis de árbol de dependencias, generadores de diccionarios de tipos, herramientas de aplicación de estándares de codificación, idioma Traductores, herramientas de evaluación de la calidad, navegadores y formateadores de fuentes y editores dirigidos por sintaxis ”(ASIS para GNAT).

Este uso también ha permitido desarrollar numerosas cantidades de herramientas con la ayuda de ASIS, incluyendo

  1. gnatelim
  2. gnatstub
  3. mosquito
  4. mosquito
  5. gnatmétrico.

ASIS como aislante

Pace Drury (1999) utiliza ASIS para crear un código para su proyecto llamado 'SIDPERS-3' donde el código se usa para identificar detalles íntimos y variaciones observadas en Commercial Off the Shelf (COTS) generado a partir de la interacción de la base de datos Drury usó ASIS para su proyecto en el que ASIS creó una nueva capa de código Ada que aisló con éxito al desarrollador de software de los mismos detalles específicos del código Ada generado.

Habiendo escrito un código tan difícil llamado 'generate_db_support_code' que consistía principalmente en código Ada, el objetivo era abrir 2 archivos, examinar el contenido y crear dos nuevos archivos basados ​​en los 2 archivos anteriores. ASIS se ha utilizado para examinar la estructura del código de manera eficiente, lo que facilita el almacenamiento y el enlace a una lista que contiene el lenguaje Ada. ASIS completa coherentemente lo que se le pide que haga y obtiene con éxito un acceso constante y seguro a la información de la base de datos que satisface las necesidades del proyecto.

AdaControl

AdaControl es una herramienta gratuita (GMGPL) que detecta el uso de varios tipos de construcciones en los programas Ada. Sus usos incluyen la verificación de estándares de codificación, la exploración del uso de las funciones de Ada, la elaboración de estadísticas y más. Aprovecha todo el poder de ASIS y puede considerarse como la aplicación ASIS más típica.

Referencias

Adicional

  1. ISO / IEC 15291: Tecnología de la información - Lenguajes de programación - Especificación de interfaz semántica de Ada (ASIS)
  2. Manual de referencia del lenguaje Ada. Versión 6.0 21 de diciembre de 1994. Copyright (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
  3. Especificación ASIS 2.0

enlaces externos