[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF-TOPIC]Duvida cruel



O lex como o nome já diz é um analisador léxico, o yacc já, é um analisador sintático. Acho que agora fica mais fácil.
No inglês o analisador sintático é chamado de parser ( mas toda a fase pode ser chamada de parsing).
Agora vamos ver o que isto realmente significa:
Por exemplo em um arquivo de configuração qualquer, um código fonte, etc..
você tem algumas regras para este seguir, isto é chamado de gramática.
O ato de interpretar estes arquivos, você tem dois passos (na verdade três, mas mais usado em compiladores) o primeiro que é ler o arquivo e separar em partes "interessantes", ou tokens é chamado de analise léxica.
Outra parte que você interpreta se o arquivo esta sintaticamente correto, é chamado de analise sintática, nesta fase que você acha erros de sintaxe como por exemplo, um erro deste tipo:
for (=a;a<10;a++)
note que falta um int no começo da construção é um erro sintático pois esta faltando um token. Este erro é só verificado e achado na fase sintática.
Espero que tenha ajudado.
Mais informações
Principles of compiler design, Aho
Nota: veja que tanto um arquivo de configuração como um código fonte, usam os mesmos princípios.

Eduardo
On Sun, 5 Jan 2003 17:50:21 -0200
"Leandro A. F. Pereira" <leandro@linuxmag.com.br> wrote:

> Quoted by a can full of über elephants
> For `fapec@petrobras.com.br' 
> On Sunday, 05 January 2003 (17:24):
> 
> > 
> > Tenho uma dúvida que não consigo tirar (a despeito de ter lido um
> > bocado!!!). Quando se refere a lex e yacc, fala-se muito em ´parse´ e
> > ´parsing´. Acontece que não consegui entender a que se refere. Alguém
> > poderia ajudar ? :-)))
> > 
> 
> 	"Parsing" é o que os programas fazem quando lêem um arquivo e usam esse dado
> para determinada coisa.
> 
> 	Por exemplo: o Mozilla abre um HTML e constrói a página, adicionando cores,
> links, imagens etc; o gcc (e os outros utilitários) lê um arquivo em C e o
> transforma em um código assembly; praticamente qualquer outro programa que pega
> um dado e faz algo com ele está "parseando" (ugh) alguma coisa.
> 
> 	Existem "parsers" que são fáceis de se fazer "na mão" (vide os arquivos .ini do
> Windows), mas tem uns que realmente dão trabalho, como os que citei ali em cima.
> 
> 	Nesses casos o lex e o yacc entram. Eles geram, através de regras definidas em
> um arquivo, o código em C para implementar o parser, facilitando a vida do
> coitado do programador... :P
> 
> 	Posso ter dito um monte de besteira ali em cima, portanto me corrijam -- nunca
> usei essas ferramentas, só li um bocado sobre elas.
> 
> -- 
>  Leandro Pereira              (oO)           <leandro@linuxmag.com.br>
>  www.mindcrisis.tk            /||\                 GPG key: 0x062E7976
> 
>           "O medo é uma coisa boa. Se você não tiver medo, pode
>              acabar pulando pela janela" --Keith Richards  
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-user-portuguese-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 



Reply to: