Buscar

Exercícios Capítulo 3 Paradigmas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Nome: Amanda Kelly Rodrigues Cândido
	Giovanna de Sousa Sampaio
	Giulianni dos Santos Oliveira
Data: 01/03/2020
Professor: José Olímpio
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO
CAPÍTULO 3
1. Defina sintaxe e semântica.
2. Para quem as descrições de linguagens são criadas?
Um dos problemas em descrever uma linguagem é a diversidade de pessoas que precisam entender a descrição. Entre essas, estão os avaliadores iniciais, os implementadores e os usuários.
3. Descreva a operação de um gerador de linguagens típico.
4. Descreva a operação de um reconhecedor de linguagens típico.
A porção de verificação de sintaxe de um compilador (um reconhecedor de linguagens) não é uma descrição de linguagem tão útil para um programador porque ela pode ser usada apenas em modo tentativa e erro. Por exemplo, para determinar a sintaxe correta de uma sentença em particular usando um compilador, o programador pode apenas submeter uma versão que ele estima estar correta e esperar para ver se o compilador a aceita. Em contrapartida, normalmente é possível determinar se a sintaxe de uma sentença está correta comparando-a com a estrutura do gerador.
5. Qual é a diferença entre uma sentença e uma forma sentencial?
6. Defina uma regra gramática recursiva à esquerda.
Quando uma regra gramatical tem seu lado esquerdo aparecendo também no início de seu lado direito, a regra é dita recursiva à esquerda. Essa recursão à esquerda especifica associatividade à esquerda.
7. Que três extensões são comuns para a maioria das EBNFs?
8. Diferencie a semântica estática da semântica dinâmica.
A semântica estática de uma linguagem é apenas indiretamente relacionada ao significado dos programas durante a execução; em vez disso, ela tem a ver com as formas permitidas dos programas (sintaxe em vez da semântica).
9. Para que servem os predicados em uma gramática de atributos?
10. Qual a diferença entre um atributo sintetizado e um herdado?
Atributos sintetizados são usados para passar informações semânticas para cima em uma árvore de análise sintática, enquanto os atributos herdados passam informações semânticas para baixo e através de uma árvore.
11. Como a ordem de avaliação de atributos é determinada para as árvores de uma
gramática de atributos?
12. Qual o principal uso das gramáticas de atributos?
As gramáticas de atributos são uma abordagem formal, usada tanto para descrever quanto para verificar a corretude das regras de semântica estática de um programa. Apesar de elas não serem sempre usadas de maneira formal no projeto de compiladores, os conceitos básicos das gramáticas de atributos são ao menos informalmente usados em todos os compiladores.
13. Explique os principais usos de uma metodologia e notação para descrever a se-
mântica de linguagens de programação.
14. Por que as linguagens de máquina não podem ser usadas para definir sentenças
em semântica operacional?
Segundo, o armazenamento de um computador real é muito grande e complexo. Existem normalmente diversos níveis de dispositivos de memória, assim como conexões para incontáveis
outros computadores e dispositivos de memória por meio de redes. Dessa forma, linguagens de máquina e computadores reais não são usados para semântica operacional formal.
15. Descreva os dois níveis de uso da semântica operacional.
16. Na semântica denotacional, o que são os domínios sintáticos e semânticos?
Na semântica denotacional, o domínio é chamado de domínio sintático, porque são mapeadas estruturas sintáticas. A imagem é chamada de domínio semântico.
17. O que é armazenado no estado de um programa para semântica denotacional?
18. Que abordagem semântica é mais conhecida?
	A semântica denotacional é o método mais rigoroso e mais conhecido para a descrição do significado de programas. Ela é solidamente baseada na teoria de funções recursivas.	
19. Que duas coisas devem ser definidas para cada entidade de linguagem de forma
a construir uma descrição denotacional da linguagem?
20. Que parte de uma regra de inferência é o antecedente?
A parte de cima de uma regra de inferência é chamada de antecedente.
21. O que é uma função de transformação de predicado?
22. O que a corretude parcial significa para um laço?
Por causa da dificuldade de provar o término de laços, esse requisito é geralmente ignorado. Se o término de um laço puder ser mostrado, a descrição axiomática do laço é chamada de corretude total. Se as outras condições puderem ser satisfeitas, mas o término não é garantido, ela é chamada de corretude parcial.
Em laços mais complexos, encontrar uma invariante de laço adequada, mesmo para corretude parcial, requer uma boa dose de criatividade. Como computar a pré-condição para um laço while depende da descoberta de uma invariante de laço, provar a corretude de programas com laços while usando semântica axiomática pode ser difícil.
23. Em que ramo da matemática a semântica axiomática é baseada?
24. Em que ramo da matemática a semântica denotacional é baseada?
Em semântica denotacional as mudanças de estado são definidas por funções matemáticas. Na semântica denotacional, objetos matemáticos são usados para representar o significado das construções da linguagem. Entidades de linguagem são convertidas para esses objetos matemáticos por meio de funções recursivas.
25. Qual é o problema em usar um interpretador puro de software para semântica
operacional?
26. Explique o que as pré-condições e as pós-condições de uma sentença significam
na semântica axiomática.
A regra de inferência diz que, para obter a pré-condição da sequência, a pré-condição da segunda deve ser computada. Essa nova asserção é usada como a pós-condição da primeira sentença, a qual pode ser usada para computar a pré-condição da primeira – a qual também é a pré-condição de toda a sequência.
27. Descreva a abordagem de usar semântica axiomática para provar a corretude de
um programa.
28. Descreva o conceito básico de semântica denotacional.
A semântica denotacional é o método mais rigoroso e mais conhecido para a descrição do significado de programas.
29. De que forma fundamental a semântica operacional e a semântica denotacional
se diferem?

Outros materiais