Lista haskell

2503 palavras 10 páginas
Questão 1

Procure entender os conceitos de sintaxe concreta e sintaxe abstrata. Explique-os e faça uso de exemplos para mostrar o seu entendimento.

A sintaxe concreta é uma forma de escrever programas sintaticamente bem formados utilizando, para isso, todos os recursos visíveis no código de uma linguagem, tais como parênteses e delimitadores. Entretanto, ao especificar uma semântica, é conveniente concentrar-se apenas na estrutura das frases, sendo para esta finalidade, utilizada a sintaxe abstrata. Através desta última obtêm-se as árvores sintáticas abstratas, onde cada nó representa uma regra de produção e há exatamente uma sub-árvore por sub-frase. Essa gramática não tem como objetivo gerar sentenças, pois símbolos terminais não possuem nenhum papel real na sintaxe abstrata.

Como exemplo, temos:

Sintaxe Concreta

Program ::= single-Command

Command ::= single-Command | Command ';' single-Command

single-Command ::= V-name ':=' Expression | Identifier '(' Expression ')' | 'if' Expression 'then' single-Command 'else' single-Command | 'while' Expression 'do' single-Command | 'let' Declaration 'in' single-Command | 'begin' Command 'end'

. . .

Type-denoter ::= Identifier

Relacionados