• Nenhum resultado encontrado

Paradigmas de Programação

N/A
N/A
Protected

Academic year: 2021

Share "Paradigmas de Programação"

Copied!
22
0
0

Texto

(1)

Paradigmas de

Programação

Prof.: Edilberto M. Silva

http://www.edilms.eti.br http://www.edilms.eti.br

Aula 4

Aula 4

Sintaxe e semântica Sintaxe e semântica

(2)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Sintaxe

A sintaxe de uma linguagem de programação é a

forma de suas expressões, declarações e unidades de programa.

Também pode ser definida como o conjunto de

regras que determinam que construções estão corretas e quais não estão.

Algumas aplicações são melhor acomodadas pela

sintaxe de uma linguagem do que outras.

Por exemplo, a sintaxe de FORTRAN foi projetada para

expressar programas matemáticos, enquanto que a de BASIC é uma boa opção para tornar o programa

compreensível para não-programadores.

As linguagens mais modernas como C, C++ e Java

possuem uma sintaxe que permite mais facilmente a expressão de estruturas de controle.

(3)

Duas Abordagens para Descrição de

Linguagens de Programação

Descrições Informais

Utiliza linguagem natural

É imprecisa: permite a ocorrência de erros de interpretação

Descrições Formais

Utiliza uma linguagem matemática

Possui significado bem definido: Evita erros de interpretação

Possibilita a utilização de metodologias de apoio a projetos

(4)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Vantagens da Utilização de

Métodos Formais

Interface entre projetistas, implementadores e usuários

Projetista:

Define precisamente a linguagem desejada

Permite a identificação precoce de erros

Implementador:

Possibilita a utilização de geradores (semi-)automáticos

Dificulta o aparecimento de erros

(5)

Sintaxe

Define a forma e estrutura de uma linguagem

Símbolos, palavras, frases e sentenças (estruturas)

Principal formalismo:

Gramáticas Livres de Contexto e Expressões RegularesNotação mais utilizada: BNF (Backus-Naur Form)

(6)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Gramáticas Livres de Contexto

Estrutura principal:

Comando <--

[[ “if” Expressão “then” Comando “else” Comando ]]

Significado:

Um Comando da linguagem definida pode ser formado pela palavra chave “if” seguida de uma Expressão da linguagem, da palavra chave “then”, de um Comando da linguagem, da palavra chave “else”, e de um outro

(7)

Sintaxe Concreta x Sintaxe

Abstrata

Sintaxe concreta: Descreve a estrutura da

linguagem com todos os detalhes.

Considera elementos “estéticos” como comentários, palavras reservadas, precedência de operadores, e outros “açucares sintáticos”.

Utilizado para construir reconhecedores para programas.

Sintaxe abstrata: Descreve apenas os elementos

relevantes da linguagem de programação.

Ignora comentários e outros elementos que não contribuem para a semântica do programa

Utilizada para representar programas internamente no compilador

(8)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Mais Detalhes ...

Esse formalismo será estudado mais detalhadamente

na disciplina de “Teoria e Implementação de Linguagens de Computacionais”

(9)

Semântica

Objetivo:

Descrever o significados das estruturas do programa expressos na sua sintaxe

Tipos de semântica

Semântica estática: Descreve as características de uma programa válido

Semântica dinâmica: Descreve os resultados da execução

(10)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Formalismos Utilizados

Ao contrário da sintaxe, não existe ainda um

formalismo aceito globalmente para descrever a semântica da linguagem

Exemplos de formalismos:

Semântica Operacional Estrutural, Máquinas de Estado

Abstratas, Semântica Denotacional, Semântica de Ações, Montages, etc.

(11)

Semântica De Ações

Formalismo para definição de linguagens de

programação.

Define um mapeamento da sintaxe do programa

para o seu significado.

Significado de programa é dado através da notação

(12)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Notação de Ações

Biblioteca que descreve os principais conceitos

encontrados em linguagens de programação que serão estudados nesse curso (valores, bindings, memória, etc.)

Durante esse curso veremos para cada conceito

estudado os operadores que descrevem as propriedades fundamentais de cada conceito

(13)

Definição de Ações

Uma ação é uma entidade que pode ser executada.

Quando uma ação é executada ela pode:

Terminar com sucesso

Terminar com um erro

Gerar uma exceção (escape)

Não-terminar (executar para sempre)

Durante a execução de uma ação ela produz e

consome vários tipos de informação: (transientes, bindings, memória, etc.)

(14)

PP - Prof. Edilberto Silva - http://edilms.eti,br

A faceta básica define operadores que não

manipulam nenhum tipo de informação apenas controlam o fluxo do programa

Semântica de Ações

Faceta Básica

Principais Operadores

complete -- Executa com sucesso sem produzir

nenhuma informação.

fail -- Produz uma falha na execução da ação

a and then b -- Executa as ações a e b

sequêncialmente

a or b -- Executa uma das ações e se esta falhar a

(15)

Exemplos de Ações:

| complete and then | complete | complete and then | fail

(16)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Exemplo de Descrições

Comandos vazioSintaxe:Comando --> [[ “;” ]]Semântica:

execute _ :: Comando --> action.

(17)

Exemplo de Descrições

Sequência de Comandos:

Sintaxe:

Comando --> [[ Comando Comando ]]

Semântica:

execute _ :: Comando --> action.

execute [[ c1 c2 ]] = | execute c1

and then | execute c2.

(18)

PP - Prof. Edilberto Silva - http://edilms.eti,br

A faceta funcional define ações que manipulam valores

temporários (transitórios) produzidos pela execução de um programa.

Utilização principal: Descrição da manipulação de

valores e como expressões são avaliadas em um programa.

Semântica de Ações -Faceta Funcional

Principais Operadores

give e -- produz o valor resultante da avaliação da

expressão e.

x then y -- Executa as ações x e y seqüencialmente, os valores transitórios produzidos por x serão repassados para a ação y.

the given t # n -- Expressão (produtor) que recupera o

n-ésimo valor passado para essa ação e verifica se este é do tipo t.

(19)

Exemplos de Ações

give 10

| give 20 then

| give sum(2,the given

integer#1)

| | give 1 | and then | | give 2 then

| give product(the given

integer#1,

(20)

PP - Prof. Edilberto Silva - http://edilms.eti,br

EXP1

Linguagens de Expressões Aritméticas

Demostra a utilização de valores em LP

Estrutuas:

Constantes numéricas: 1,2,3, etc.

Operações fundamentais:1 + 2

4 - 3

5 * 2

(21)

Descrição de EXP1

Constantes Numéricas.

Sintaxe:

Expressão <-- [[ Integer ]].

Semântica:

avalie _ :: Expressão --> action. avalie [[ x : Integer ]] = give x.

(22)

PP - Prof. Edilberto Silva - http://edilms.eti,br

Descrição de EXP1

Soma de Expressões.

Sintaxe:

Expressão <-- [[ Expressão “+” Expressão ]].

Semântica:

avalie _ :: Expressão --> action. avalie [[ x “+” y ]] =

|avalie x and then avalie y then

Referências

Documentos relacionados

Sobretudo recentemente, nessas publicações, as sugestões de ativi- dade e a indicação de meios para a condução da aprendizagem dão ênfase às práticas de sala de aula. Os

Obedecendo ao cronograma de aulas semanais do calendário letivo escolar da instituição de ensino, para ambas as turmas selecionadas, houve igualmente quatro horas/aula

A disponibilização de recursos digitais em acesso aberto e a forma como os mesmos são acessados devem constituir motivo de reflexão no âmbito da pertinência e do valor

“O CONSÓRCIO NUTRIBOM/CHEVALS, nos autos do Pregão Presencial em referência, vem manifestar sua intenção de interpor recurso administrativo em face da decisão de

Evacuar imediatamente a área do derramamento ou vazamento, em todas as direções, num raio de pelo menos 15 m (consultar a Tabela de Distância de Evacuação. Se o nome do produto for

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

A partir da implementação do Programa de Apoio a Planos de Reestruturação e Expansão das Universidades Federais, a universidade brasileira abre-se para o acesso de novos e

Caso as palavras SAPI/DAPI recebidas não coincidam, o Transponder irá alarmar TIM, porém mesmo assim, irá entregar o que está no Payload do quadro OTN para o