ASF+SDF Meta-Environment

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.
Este artigo ou secção contém uma lista de referências no fim do texto, mas as suas fontes não são claras porque não são citadas no corpo do artigo, o que compromete a confiabilidade das informações. (Agosto de 2016) |
| ASF+SDF Meta-Environment | |
|---|---|
Tela principal do ASF+SDF Meta-Environment 2.0.1 | |
| Desenvolvedor | SEN1 [1] um grupo no CWI [2] |
| Lançamento estável | 2.0.3
/ 11 de Novembro de 2008 |
| Sistema operacional | Linux, Unix e Mac OS X |
| Tipo | Sistema de transformação |
| Licença | BSD, LGPL |
| Website | http://www.meta-environment.org/ |
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
[editar | editar código]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.
Arquitetura[1]
[editar | editar código]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.
Referências
- ↑ Seção baseada em (Klint, 2008)
- Bergstra, J. A.; Heering, J.; Klint, P (1989). Algebraic Specification. [S.l.]: ACM Press/Addison-Wesley. ISBN 0-201-41635-2
- Brand, Mark van den; Klint, Paul; Vinju, Jurgen (3 de setembro de 2008). «The Language Specification Formalism ASF+SDF». Consultado em 23 de Outubro de 2008
- Klint, Paul; Vinju, Jurgen (12 de dezembro de 2007). «Writing Language Definitions in ASF+SDF». Consultado em 23 de outubro de 2008
- «The Meta-Environment». Consultado em 25 de Outubro de 2008
- Klint, Paul; Vinju, Jurgen (14 de maio de 2008). «The Architecture of The Meta-Environment». Consultado em 25 de Outubro de 2008