O ASF+SDF Meta-Environment é uma IDE de código aberto para geração de ferramentas a partir da definição formal de uma linguagem. Este ambiente é baseado na linguagem de reescrita de termos ASF+SDF, onde esta é uma extensão ao formalismo SDF para definição de gramáticas livres de contexto. A ferramenta é utilizada principalmente para geração de compiladores e análise e transformação de programas. O acrônimo ASF+SDF vem da abreviação dos termos Algebraic Specification Formalism e Syntax Definition Formalism dados na língua inglesa.

Visão Geral O ASF+SDF Meta-Environment é uma ferramenta de código aberto para a geração de uma série de outras ferramentas voltadas para tratamento de programas fonte descritos em uma determinada linguagem. Estas linguagens devem ser definidas através dos formalismos adotados pelo Meta-Environment, que são o ASF e o SDF.

O Meta-Environment pode ser utilizado com diferentes propósitos, incluindo: Análise sintática de linguagens de programação. Estas podendo ser novas linguagens ou mesmo linguagens já definidas como por exemplo Java e C. Análise do código fonte. Transformação do código fonte. Geração de código. Definição e implementação de linguagens específicas de domínio. Geração e prototipação rápida de ambientes integrados de desenvolvimento (IDE) para linguagens de programação e linguagens específicas de domínio. Geração de documentação a partir do código fonte. Compilação de linguagens específicas de domínio. Descrição formal da sintaxe e semântica de linguagens de programação.

ArquiteturaSeção baseada em (Klint, 2008) A arquitetura do Meta-Environment é composta dos seguintes grupos de componentes: núcleo: Componentes que prove funcionalidades básicas como por exemplo a interface com usuário e edição. SDF: Todos os componentes relacionados com a definição e análise da sintaxe. ASF: Todos os componentes relacionados com a linguagem ASF e o sistema de reescrita de termos.

A comunicação entre os componentes de cada grupo é feita através de um componente chamado ToolBus. Onde este coordena a comunicação entre os componentes pela definição de um script toolbus, também conhecido como Tscript. A linguagem do Tscript é uma linguagem concorrente que permite a definição de processos paralelos, a comunicação entre estes processos e a interação entre os processos e ferramentas existentes no Meta-Environment.

Categoria:Linguagens formais Categoria:Teoria da computação Categoria:Matemática