INF Semântica formal N

Documentos relacionados
Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 2. Nelma Moreira (DCC-FC) Fundamentos de Linguagens de Programação Aula 2 2 / 12

Programas em L1 pertencem ao conjunto de árvores de sintaxe abstrata definido pela gramática abstrata abaixo:

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos:

Uma memória é uma função total de identificadores para valores inteiros: se x=y σ(y) caso contrário

Intuição da sintaxe de L2 (35)

introdução de um novo valor semântico de erro; e A[E 2 ]s 0 erro erro se B [b]s = erro

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.

Prova. t ::= t t. t 1 t 4 t 2 t 3 (t 1 t 2 ) (t 3 t 4 ) (t 2 t 1 ) (t 4 t 3 )

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção.

Matemática Discreta para Ciência da Computação

Corretude e Completude da Dedução Natural. Thiago Alves Rocha

Capítulo 8. Estruturas de Controle no Nível de Sentença

Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Semântica Operacional

Linguagens de Programação

Elementos básicos das linguagens de programação

Afirmações Matemáticas

Matemática Discreta para Ciência da Computação

Gramáticas ( [HMU00], Cap. 5.1)

Linguagem C estruturas de repetição

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

Introdução à Computação - aulas 01 e 02 -

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Semântica Axiomática

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

INF Semântica Formal - Prova II /1

Compiladores - Autômatos

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

Estados Equivalentes. Exemplo R: Sim, b e f. Note que se estamos em b ou f então:

Paradigmas de Programação

Verificação Formal de Software Aula 18

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

Linguagens de Programação

Gramáticas e Linguagens independentes de contexto

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Lógica Proposicional

Linguagens de Programação

Linguagens de Programação

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Introdução Operadores Relacionais Lógicos Comando If Comando If...else Comando swich()...case...break Operador condicional ternário

Análise e Projeto de Algoritmos

Introdução à Engenharia ENG1000

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Compiladores Análise de Tipos

Folha 4.2 Análise sintática ascendente

Aula 9: Máquinas de Turing

Lógica Proposicional Parte 3

Programação Funcional - Introdução a Cálculo Lambda

Algoritmos e Técnicas de

Autômatos de Pilha (AP)

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Compiladores Análise de Tipos

Compiladores Análise de Tipos

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

Linguagem de programação: Pascal

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Operadores Lógicos e Relacionais Comandos condicionais (if-else) Casting AULA 04

Variantes de Máquinas de Turing

Algoritmia e Programação

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

Lógica Computacional

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

TEORIA DE COMPLEXIDADE

Compiladores Análise de Tipos

Sistemas de Tipos. Cristiano Damiani Vasconcellos.

Python 3.x Estrutura de Repetição for Estrutura de Decisão if then else

Técnicas Inteligência Artificial

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Linguagens livres de contexto e autômatos de pilha

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da

Administração de Redes de Computadores

Capítulo 7. Expressões e Sentenças de Atribuição

Linguagens de Programação

Síntese de programas utilizando a linguagem Alloy

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

4 AULA. Regras de Inferência e Regras de Equivalência LIVRO. META: Introduzir algumas regras de inferência e algumas regras de equivalência.

Tarefa 06 Todos Subconjuntos

Máquinas de Turing - Computabilidade

Introdução à Programação. Uma Abordagem Funcional

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

01/08/2011 PROGRAMAÇÃO EM LINGUAGEM C. Histórico

Estruturas de controle no nível de sentença

Aula 4 Estruturas de Controle

Sintaxe Básica de Java Parte 2

Curso de PHP. FATEC - Jundiaí

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Automatocom Pilha Pushdown Automaton

Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 31. Instituto de C

Capítulo 3: Repetições. Pontifícia Universidade Católica Departamento de Informática

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha

Aula 4 Objetivos if/else while

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Transcrição:

INF05516 - Semântica formal N Ciência da Computação - UFRGS 2006-2 Marcus Ritt mrpritt@inf.ufrgs.br 23/08/2006 Introdução 2 Agenda............................................................... 3 Semântica operacional estrutural 4 Passos pequenos: a idéa.................................................... 5 Comparação............................................................ 6 Discussão.............................................................. 7 Sistemas de transição...................................................... 8 Sistemas de transição (2)................................................... 9 SOE................................................................ 10 SOE dos comandos...................................................... 11 Exemplo............................................................. 12 Exemplo............................................................... 13 Transições e provas na SOE................................................ 14 SOE dos comandos (2)................................................... 15 Exemplo............................................................. 16 Equivalência e determinísmo................................................ 17 Discussão: variações..................................................... 18 Equivalência........................................................... 19 Estudo de caso: Paralelismo 20 Paralelismo............................................................ 21 Paralelismo: SOE....................................................... 22 Exemplo de uma derivação................................................. 23 Exemplo de uma derivação.................................................. 24 Paralelismo: SON....................................................... 25 Resumo: Paralelismo..................................................... 26 A05.tex 1 Rev: 1941, August 23, 2006

Introdução 2 / 26 Agenda Última aula: Aplicações da semântica: Características de IMP. Hoje: Semântica operacional estrutural. Características da semântica operacional estrutural. Estudo de caso: Paralelismo. v1941 Semântica formal N, aula 5 3 / 26 Semântica operacional estrutural 4 / 26 Passos pequenos: a idéa Definimos por exemplo Considere a seguinte variação a 1, σ n 1 a 2, σ n 2 sum, com n = n1 + n 2 a 1 +a 2, σ n. a 1, σ a 1, σ a 1 +a 2, σ a 1+a 2, σ a, σ a, σ n+a, σ n+a, σ com n = n 1 + n 2 n 1 +n 2, σ n, σ v1941 Semântica formal N, aula 5 5 / 26 2

Comparação Observe a diferenças: Primeira versão: Reduz uma expressão diretamente para o resultado Porém se chama SO de passos grandes (big-step) ou SO natural. Segunda versão: Reduz uma expressão passo a passo Por isso ela resulta em uma expressão parcialmente reduzida junto com um estado até chegar no resultado. Se chama SO de passos pequenos (small-step) ou SO estrutural. Gordon Plotkin Gilles Kahn v1941 Semântica formal N, aula 5 6 / 26 Discussão SON em geral tem menos regras; assim é mais compreensível. SON é mais parecido com uma prova do resultado. SOE modela os passos intermediários e assim se aplica bem para a semântica de linguagens concorrentes ou paralelos. SOE é um sistema de transição que precisa varios passos até chegar no resultado. Os dois são dirigida a sintaxe: a semântica de uma expressão ou um comando é baseado na semântica das suas componentes. v1941 Semântica formal N, aula 5 7 / 26 3

Sistemas de transição Um sistema de transição consiste em um conjunto de estados Γ e uma relação de transição Γ Γ. Na semântica operacional estrutural as regras definem. Escrevemos γ 0 k γ k se temos γ i, 0 i < k tal que γ i γ i+1. (Lê: Existe uma derivação com k passos de γ 0 para γ k.) para o fecho reflexivo e transitivo de. (Lê γ 0 γ 1 : Existe uma derivação de γ 0 para γ 1.) v1941 Semântica formal N, aula 5 8 / 26 Sistemas de transição (2) Uma configuração γ é sem sucessor, se γ Γ : γ γ Usamos também um conjunto de estados finais F Γ (que são sem sucessor). Assim temos dois tipos de estados γ sem sucessor γ F : γ é um estado final (resultado de uma computação) γ F : γ é parada ( stuck ): temos nem resultado nem um passo seguinte. v1941 Semântica formal N, aula 5 9 / 26 4

SOE É possível de dar uma semântica operacional estrutural para a linguagem inteira: as expressões aritméticas as expressões booleanas os comandos Para nós os comandos são mais interessantes: Ficamos com as mesmas regras para expressões aritméticas e booleanas. Em geral, na SOE podemos escolher a granularidade dos passos. v1941 Semântica formal N, aula 5 10 / 26 SOE dos comandos de IMP Usamos estados Γ = Com Σ com estados finais F = {skip} Σ. a, σ n assign x:=a, σ skip, σ[x n] c 1, σ c 1, σ seq1 c 1 ;c 2, σ c 1;c 2, σ seq2 skip;c 2, σ c 2, σ v1941 Semântica formal N, aula 5 11 / 26 5

Exemplo Com σ tal que σ(i) = 3 o que significa i:=i+1;(skip;i:=i*2)? i:=i+1;(skip;i:=i*2), σ assign skip;(skip;i:=i*2), σ[i 4] seq2 skip;i:=i*2, σ[i 4] seq2 i:=i*2, σ[i 4] assign skip, σ[i 8] v1941 Semântica formal N, aula 5 12 / 26 Exemplo... Observa: Temos que provar cada passo usando as regras, por exemplo i+1, σ 4 assign i:=i+1, σ skip, σ[i 4] seq1 i:=i+1;(skip;i:=i*2), σ skip;(skip;i:=i*2), σ[i 4] v1941 Semântica formal N, aula 5 13 / 26 6

Transições e provas na SOE Em geral, temos varios passos. Cada passo é provado correto. Prova Prova Prova Prova s1 s2 s3 s4 s5 v1941 Semântica formal N, aula 5 14 / 26 SOE dos comandos de IMP (2) b, σ true if-true if b then c 1 else c 2, σ c 1, σ b, σ false if-false if b then c 1 else c 2, σ c 2, σ while while b do c, σ if b then (c;while b do c) else skip, σ v1941 Semântica formal N, aula 5 15 / 26 7

Exemplo Seja w while x<6 do x:=x+1 e σ tal que σ(x) = 4. w, σ while if x<6 then (x:=x+1;w) else skip, σ if-true x:=x+1;w, σ seq1,seq2 w, σ[x 5] while if x<6 then (x:=x+1;w) else skip, σ[x 5] if-true x:=x+1;w, σ[x 5] seq1,seq2 w, σ[x 6] while if x<6 then (x:=x+1;w) else skip, σ[x 6] if-false skip, σ[x 6] v1941 Semântica formal N, aula 5 16 / 26 Equivalência e determinísmo Em analogia com a semântica operacional natural, temos as noções da equivalência c 1 c 2 se temos para todos σ Σ c 1, σ γ sse c 2, σ γ para γ final ou parada, c 1, σ tem uma derivação infinita sse c 2, σ tem uma derivação infinita; e do determinismo, se para todos σ 0 Σ.c, σ 0 γ c, σ 0 γ γ = γ. v1941 Semântica formal N, aula 5 17 / 26 8

Discussão: variações Compare nossas regras com as seguintes variações (suponhando passos pequenos para expressões booleanas): b, σ b, σ if if b then c else c, σ if b then c else c, σ if-true if true then c else c, σ c, σ if-false if false then c else c, σ c, σ v1941 Semântica formal N, aula 5 18 / 26 Equivalência É possível de provar que a SON e SOE do IMP são equivalentes (indução!): c, σ σ se e somente se c, σ skip, σ Uma prova na semântica operacional natural resulta no estado σ sse a execução na semântica operacional estrutural para com o mesmo estado. Uma execução na semântica operacional natural não tem prova sse a execução na semântica operacional estrutural não para. v1941 Semântica formal N, aula 5 19 / 26 9

Estudo de caso: Paralelismo 20 / 26 Paralelismo Vamos aumentar IMP com o construto c par c Informalmente, par significa a execução paralela (ou concorrente que não importa nesse contexto) de c e c x :=1 par y :=2; x:=x+1 par y:=y+x Como seriam as regras certas na semântica operacional? v1941 Semântica formal N, aula 5 21 / 26 Paralelismo: SOE c 1, σ c 1, σ par l1 c 1 par c 2, σ c 1 par c 2, σ par l2 skip par c 2, σ c 2, σ c 2, σ c 2, σ par r1 c 1 par c 2, σ c 1 par c 2, σ par r2 c 1 par skip, σ c 1, σ v1941 Semântica formal N, aula 5 22 / 26 10

Exemplo de uma derivação Seja σ tal que σ(x) = 1 e σ(y) = 2. Temos x:=x+1 par y:=y+x, σ assign,parl1 skip par y:=y+x, σ[x 2] parl2 y:=y+x, σ[x 2] assign skip, σ[x 2][y 4] v1941 Semântica formal N, aula 5 23 / 26 Exemplo de uma derivação... Mas temos também x:=x+1 par y:=y+x, σ assign,parr1 x:=x+1 par skip, σ[y 3] parr2 x:=x+1, σ[y 3] assign skip, σ[x 2][y 3] Portanto, IMP com essa semântica não é mais determinístico! v1941 Semântica formal N, aula 5 24 / 26 11

Paralelismo: SON Como seriam as regras certas na semântica operacional natural? c 1, σ 0 σ 1 c 2, σ 1 σ 2 par1 Certo? c 1 par c 2, σ 0 σ 2 c 1, σ 1 σ 2 c 2, σ 0 σ 1 par2 c 1 par c 2, σ 0 σ 2 v1941 Semântica formal N, aula 5 25 / 26 Resumo: Paralelismo Na semântica operacional estrutural a expressão do paralelismo é facil Na semântica operacional natural os componentes de um comando são atômicos: por isso uma execução paralelo de sub-comandos (intercalação) não é possível. v1941 Semântica formal N, aula 5 26 / 26 12