Interpretadores de comandos

Disponível somente no TrabalhosFeitos
  • Páginas : 10 (2457 palavras )
  • Download(s) : 0
  • Publicado : 22 de setembro de 2012
Ler documento completo
Amostra do texto
Roteiro de EA878: Wu S. Ting, Fernando Von Zuben, Eleri Cardozo e Marco Amaral Henriques

EA878 - Laboratório de Micro e Minicomputadores: Software Atividade 3

1. Tema
Interpretadores de comandos, compiladores e ferramentas para geração de novas linguagens.

2. Objetivos
Familiarização com processos de geração automática de analisadores léxicos e sintáticos. Compreensão dos papéiscomplementares entre a análise léxica e a sintática no processo de reconhecimento de uma sentença válida (comando). Uso de gramáticas formais para especificação das funcionalidades de analisadores. Associação de ações semânticas (síntese de resultados) aos comandos interpretados. Implementação de um parser para os comandos do protocolo http (o parser fará parte do servidor HTTP em desenvolvimento).3. Interpretadores e Compiladores
Interpretadores e compiladores são programas que processam dados de entrada (instruções de programas ou comandos isolados) e geram ações ou dados de saída (programa compilado). Normalmente os dados de entrada consistem de uma seqüência de caracteres (por exemplo, digitados pelos usuários ou provenientes de um arquivo-texto) e a saída, de uma série de açõesestabelecidas pela aplicação. Basicamente, distinguem-se duas fases no processo de compilação ou interpretação: • análise: validação da seqüência de caracteres de entrada de acordo com a sintaxe da linguagem. Os caracteres são agrupados de forma a permitir decidir quais ações semânticas são aplicáveis sobre eles; • síntese: aplicação das ações semânticas sobre grupos de caracteres. As ações semânticasmais comuns são a geração de códigos de máquina (código-objeto) num arquivo, no caso de compiladores, e a execução de comandos analisados e apresentação dos resultados, no caso de interpretadores. Sob o ponto de vista de implementação, é mais eficiente separar a fase de análise em duas etapas: análise léxica e análise sintática. As principais razões para tal procedimento são: • significativasimplificação na implementação, tanto da análise léxica como sintática, quando ambas são realizadas separadamente. Com isso, aumenta a possibilidade de utilização de ferramentas de automatização das análises léxica e sintática; • a eficiência e a portabilidade do compilador ou interpretador é aumentada. Se um compilador ou interpretador tivesse que processar apenas programas corretos, seu projeto eimplementação seriam enormemente simplificados. No entanto, eles possuem a importante tarefa de assessorar o programador na identificação e localização de erros. Por outro lado, a grande maioria das especificações de linguagem de programação não descrevem como os compiladores ou interpretadores devem responder a erros, que podem ser léxicos, sintáticos, semânticos ou lógicos. A resposta é deixada acargo do projetista do compilador ou interpretador. Além disso, as linguagens de programação exigem muito mais precisão e rigor que as linguagens faladas (por exemplo, não pode existir ambigüidade nas linguagens de programação). O primeiro compilador Fortran foi finalizado há mais de 40 anos por um grupo de especialistas que levou vários anos para escrevê-lo. Hoje, um único programador comconhecimentos incipientes pode obter o mesmo resultado em poucas semanas. O que torna isto possível são os avanços na ciência de computação e nas ferramentas de desenvolvimento de software.

4. Sistemas formais
As regras que estabelecem concatenações válidas de caracteres na seqüência de entrada constituem a sintaxe de uma linguagem de programação. Quando uma linguagem abrange um conjunto finito deconcatenações, pode-se validar qualquer cadeia de caracteres especificada através de uma busca exaustiva contendo todas as seqüências válidas preestabelecidas. Este método, além de ser ineficiente, não consegue processar uma linguagem que contém um número infinito, porém enumerável, de concatenações válidas, como é o caso das linguagens de alto nível.

Copyright © 1997-2004 DCA/FEEC/UNICAMP

1...
tracking img