Especificação de interface semântica Ada - Ada Semantic Interface Specification

Especificação de interface semântica Ada (ASIS)
Desenvolvedor (s) Advogados de idiomas, Ada Lovelace
Plataforma (s) de destino Aplicações da linguagem de programação Ada e análise estática
Status Ativo
Licença Proprietário

A Ada Semantic Interface Specification ( ASIS ) é uma arquitetura aberta em camadas que fornece acesso independente do fornecedor ao ambiente de biblioteca Ada . Ele permite a análise estática de programas e bibliotecas Ada. É uma biblioteca de interface aberta e publicada que consiste no ambiente Ada e suas ferramentas e aplicativos.

Conforme explicado pelo Grupo de Trabalho ASIS :

“ASIS é uma interface entre um ambiente Ada conforme definido pela ISO / IEC 8652: 1995 (o Manual de Referência Ada) e qualquer ferramenta que requeira informações deste ambiente” (SIGAda, 2020)

Ele é usado exclusivamente para aplicativos de linguagem de programação e análise estática em programas Ada, fornecendo, portanto, as informações relevantes e acesso à Engenharia de software auxiliada por computador (CASE) e desenvolvedores aplicáveis. ASIS também tem a capacidade de utilizar as ferramentas de engenharia de software relevantes, ao mesmo tempo que incorpora uma compreensão fácil das complexidades de um display de ambiente Ada. Além disso, fornece procedimentos, funções e informações relevantes que podem ser significativamente usadas para acessar informações exclusivas encontradas em manuais de referência e na Abstract Syntax Tree (AST). O que em troca avançará o ASIS para a capacidade de ser portátil para transportar e reter informações e terminologia das ferramentas Ada.

“ASIS consiste em 21 pacotes, 2 são opcionais e dentro desses pacotes definem 349 consultas”. ASIS também consistirá em um pacote que inclui pacotes filhos que incluem “Unidades de compilação de erros, ambientes Ada, implementação, exceções, elementos, iterador, declarações, expressões, cláusulas, definições, declarações, texto e Ids”.

O ASIS geral é simplesmente uma maneira direta de coletar dados de um programa ADA e aumenta a portabilidade de qualquer uma das ferramentas Ada.

Programação Ada / Todos os capítulos. Vol.1 de 3 volumes definidos. A base do ASIS

Características do ASIS

Ada Semantic Interphase Specification sob o ISO / IEC 8652 Ada 95 Reference Manual (Ada Language Referencing Manual, 1994) é definida como uma interface entre um ambiente Aria e outras ferramentas que requerem informações do ambiente Aria.

Os recursos das ferramentas baseadas em ASIS podem incluir:

  • análise de código de alta qualidade
  • monitores de código automatizados
  • navegadores
  • ferramentas de árvore de chamadas
  • reformadores de código
  • ferramentas de conformidade de padrões de codificação
  • verificadores de exatidão
  • depuradores
  • ferramentas de análise de árvore de dependência
  • ferramentas de design
  • geradores de documentos
  • ferramentas de métricas
  • ferramentas de engenharia reversa
  • ferramentas de reengenharia
  • verificadores de estilo
  • ferramentas de teste
  • estimadores de tempo
  • tradutores

ASIS também fornece abordagens limitadas para as informações estruturais e semânticas que são encontradas na biblioteca Ada, ele visa fornecer e produzir informações que são semelhantes, senão exatamente o mesmo nível semântico que a definição de Ada. Isso ajudará muito no fornecimento das mesmas definições e informações exatas do Manual de Referência para a Linguagem de Programação Ada (LRM) para indivíduos e clientes interessados ​​(Ehrenfried).

Abstrações principais

No ASIS, existem 3 abstrações principais que existem nos tipos 'privados' Ada. Isso consiste em Contexto, Compilation_Unit e Elemento. Embora existam tipos adicionais de abstrações também envolvidos, mas os 3 mencionados são os fundamentos.

Context

A abstração de contexto do ASIS consiste nas definições, termos e condições que estão disponíveis nas pesquisas do ASIS. Ele também é usado como uma forma e um identificador lógico para o ambiente Ada.

Compilation_Unit

A unidade de compilação também é um identificador lógico para o ambiente Ada. Essa abstração também define as propriedades e características que são vistas posteriormente no Manual de Referência Ada . Ele usa a implementação da linguagem de programação Ada para transmitir unidades de compilação por meio do ASIS. Conforme dito por Adacore;

"Um ASIS Compilation_Unit fornece a visão 'caixa preta' de uma unidade de compilação, considerando a unidade como um todo. Ela pode ser decomposta em ASIS Element e então analisada no estilo 'caixa branca'."

Exemplos dessas propriedades fornecidas podem incluir:

  1. Hora da última atualização
  2. Nome do objeto que contém o texto de origem da unidade
Element

Comparativamente, a abstração de Elemento também é um identificador lógico para a Unidade de Compilação discutida acima, isso pode ser explícito ou implícito.

Estrutura do ASIS

A estrutura do aplicativo ASIS pode ser categorizada em 3 categorias; Configure a Análise ASIS, Unidades de Compilação de Processo e Análise ASIS completa. Essa estrutura é para ajudar no suporte a vários programas de análise de código que aparecem na linguagem de programação Ada.

Configuração da análise ASIS

O primeiro passo para a estrutura da análise ASIS é configurá-la de forma eficiente. Durante esta etapa, várias tarefas e programas são inicializados e estabelecidos. Por exemplo, conforme identificado por William Colket (1999), esta etapa é quando o programa ASIS inicializa ASIS, estabelece o contexto ASIS e o objeto de estado, associa o contexto ASIS à análise, abre o contexto ASIS e executa qualquer pré-processamento necessário para apoiar a análise ASIS. Geralmente, a primeira etapa é colocar a análise ASIS em funcionamento e estar pronta para uso com eficiência e eficácia.

Unidades de compilação de processo

A configuração é seguida por " unidades de compilação de processamento ", durante este tempo é quando os elementos são amostrados e analisados ​​para caber no contexto ASIS que foi aberto e associado no início da estrutura ASIS. Durante esta etapa, ele processa principalmente a maioria dos elementos do aplicativo ASIS em correlação com o contexto ASIS, ele também tem a capacidade adicional de realizar unidades de compilação antes e depois do processamento ter sido feito.

Análise ASIS completa

A última e última etapa da estrutura ASIS é a conclusão da análise ASIS. É aqui que tudo é finalizado e revisado para realizar qualquer pós-processamento da análise ASIS. O contexto ASIS também é fechado e desassociado e ASIS é finalmente finalizado.

Critérios de projeto

À medida que o ASIS continua a evoluir de forma semelhante, o mesmo ocorre com a evolução de seus critérios de design. Os critérios de como o ASIS pode ser projetado podem ser classificados em 9 categorias diferentes; ampla aceitação, transportabilidade, uniformidade e coesão, implementabilidade, estado da tecnologia, extensibilidade, terminologia ada e estilo, desempenho e conjunto mínimo de interfaces.

1. Ampla aceitação

Deve ser projetado de acordo com esses critérios, de modo que uma ampla variedade de ferramentas possa ser usada para ASIS. Projetar com isso permite que a biblioteca de interface seja mais flexível e disponível para ferramentas em outras plataformas, implementações de fornecedores Ada. Também permite reduzir o tempo de treinamento para usuários e desenvolvedores de ferramentas.

2. Transportabilidade

O ASIS também deve ser projetado de forma que tenha a capacidade de ser transferido de um computador para outro ou de outro ambiente para outro.

3. Uniformidade e coesão

Também deve ser consistente em propriedades, conceitos, tipos e operações, mas também deve ser mantida como uma operação simples e coerente.

4. Implementabilidade

ASIS também é criticado por ser "implementável por qualquer fornecedor de compilador Ada com um esforço razoável". Além de manter a consistência ao longo de todo o programa.

5. Estado da tecnologia

O estado da tecnologia deve estar sempre atualizado e avançado para garantir que nenhum problema ocorra. Além disso, deve-se garantir que todas as variações e versões possíveis do ASIS sejam coerentes e eficientes.

6. Extensibilidade

"Isso não deve impedir as extensões que farão uso do modelo de design ASIS e abstrações."

7. Terminologia e estilo Ada

ASIS também deve se adaptar aos termos e condições de estilo e definições do Manual de Referência Ada.

8. Desempenho

"O design ASIS deve permitir a eficiência tanto da visão do cliente quanto da visão de implementação"

9. Conjunto mínimo de interfaces

"Ele deve permitir que os clientes implementem interfaces em camadas adicionais usando as operações primitivas fornecidas."

Usos de ASIS

ASIS para GNAT

ASIS foi usado por Adacore para implementar um padrão ASIS na utilização de aplicativos ASIS para GNAT. ASIS pode ser usado para GNAT por meio de aplicativos típicos, como: “Análise estática (verificação de propriedade), instrumentação de código, ferramentas de design e geração de documentos, ferramentas de teste ou temporização de métricas, ferramentas de análise de árvore de dependência, geradores de dicionário de tipo, ferramentas de aplicação de padrões de codificação, linguagem Tradutores, ferramentas de avaliação de qualidade, navegadores e formatadores de fontes e editores direcionados à sintaxe ”(ASIS para GNAT).

Este uso também foi capaz de desenvolver inúmeras ferramentas com a ajuda do ASIS, incluindo

  1. gnatelim
  2. gnatstub
  3. gnatcheck
  4. gnatpp
  5. gnatométrico.

ASIS como isolante

Pace Drury (1999) utiliza ASIS para criar um código para seu projeto chamado 'SIDPERS-3', onde o código é usado para identificar detalhes íntimos e variações vistas em Commercial Off the Shelf (COTS) gerados a partir da interação de banco de dados Drury usou ASIS para seu projeto em que a ASIS criou uma nova camada de código Ada que isolou com sucesso o desenvolvedor de software dos mesmos códigos específicos de Ada gerados.

Tendo escrito um código tão difícil chamado 'generate_db_support_code' que consistia principalmente em código Ada, o objetivo era abrir 2 arquivos, examinar o conteúdo e criar dois novos arquivos baseados nos 2 arquivos anteriores. ASIS foi usado para examinar a estrutura do código de forma eficiente, tornando mais fácil armazenar e vincular a uma lista contendo a linguagem Ada. A ASIS completa de forma coerente o que é solicitado e obtém com sucesso um acesso constante e seguro às informações do banco de dados que atendem às necessidades do projeto.

AdaControl

AdaControl é uma ferramenta gratuita (GMGPL) que detecta o uso de vários tipos de construções em programas Ada. Seus usos incluem verificação de padrões de codificação, exploração do uso de recursos Ada, criação de estatísticas e muito mais. Ele explora todo o poder do ASIS e pode ser considerado o aplicativo ASIS mais comum.

Referências

Adicional

  1. ISO / IEC 15291: Tecnologia da informação - Linguagens de programação - Ada Semantic Interface Specification (ASIS)
  2. Manual de referência da linguagem Ada. Versão 6.0 de 21 de dezembro de 1994. Copyright (C) 1992, 1993, 1994, 1995 Intermetrics, Inc.
  3. Especificação ASIS 2.0

links externos