next up previous contents index
Next: Analisador de Relações Up: Ferramentas Previous: Ferramentas

Aproximações Simplificativas

Para simplificar a tarefa de desenvolvimento das próprias ferramentas, optou-se por evitar entidades monolíticas, como seria o caso de um programa gerador de envelopes num só passo, construído, por exemplo, utilizando ferramentas típicas como LEX e YACC [Mason & Brown, 1990]. A preferência foi dada a entidades cuja funcionalidade se encontra distribuída por subcomponentes formando uma cadeia de processamento, cada elemento apresentando responsabilidade limitada no resultado final.

Verificou-se que os processadores assim obtidos, embora não sendo ferramentas canónicas para este tipo de processamento, conseguem apresentar resultados satisfatórios. O tempo dispendido é várias ordens de grandeza inferior: o tempo de desenvolvimento da ferramenta em LEX/YACCgif, capaz de processar C++ e gerar os resultados esperados, chegou a dois meses, enquanto que a solução alternativa, utilizando uma sucessão de estádios de processamento, escrita em Perl [Wall & Schwartz, 1991] e AWK [Aho et al., 1988], ficou pronta a gerar código em menos de uma semana.

A figura 6.3 mostra a organização das várias ferramentas entre si e com o código por elas produzido.

  
Figure: Acções das ferramentas.



David M. M. de Matos
Thu Jun 29 14:58:09 MET DST 1995