Semântica Operacional

Tamanho: px
Começar a partir da página:

Download "Semântica Operacional"

Transcrição

1 Semântica

2 Conceitos Semântica é o estudo do significado. Incide sobre a relação entre significantes, tais como palavras, frases, sinais e símbolos, e o que eles representam, a sua denotação.

3 Semântica Operacional A ideia existente por trás da semântica operacional é descrever o significado de um programa ao executar suas instruções em uma máquina, seja ela real ou simulada. As alterações que ocorrem no estado de uma máquina quando ela executa determinada instrução, definem o significado desta.

4 Para entender o conceito considere uma instrução de linguagem de máquina. Digamos que o estado de um computador sejam os valores de todos os seus registradores e de suas localizações de memória, inclusive códigos de condição e registro de status. Ao se registrar o estado do computador, executar uma determinada instrução e depois examinar o novo estado da máquina, a semântica será clara: ela é representada pela mudança no estado do computador, causada pela execução da instrução.

5 Exemplo: exp1 for(exp1; exp2; exp3) loop if exp2>=5 goto out { exp3; } goto loop out

6 Avaliação A semântica operacional constitui um meio efetivo de descrever a semântica para usuários e para implementadores da linguagem, contanto que as descrições mantenham-se simples e informais. A semântica operacional depende de algoritmos, não da matemática. As instruções de uma linguagem de programação são descritas em termos das instruções de uma de nível mais baixo. Essa abordagem pode levar a circularidades, em que os conceitos são indiretamente definidos em termos de si mesmos.

7 Semântica Axiomática Princípio evidente por si mesmo, particularmente em matemática. O matemático grego Euclídes definiu o axioma como uma noção comum, ou seja, uma afirmação geral aceita sem discussão. Um exemplo de axioma é: "a parte é menor que o todo".

8 Semântica Axiomática A semântica axiomática foi definida em conjunto com o desenvolvimento de um método para provar a exatidão dos programas que mostra a computação descrita por sua especificação, quando pode ser construída. Em uma prova, cada instrução de um programa tanto é precedida como seguida de uma expressão lógica que especifica restrições a variáveis.

9 Semântica Axiomática Estas, em vez do estado inteiro de uma máquina abstrata, são usadas para especificar o significado da instrução. A notação usada para descrever restrições, na verdade a linguagem da semântica axiomática, é o cálculo de predicado. Ainda que expressões booleanas simples sejam frequentemente adequadas para expressar restrições, em alguns casos não o são.

10 Asserções A semântica axiomática baseia-se na lógica matemática. As expressões lógicas são chamadas predicados ou asserções. Uma asserção que precede imediatamente uma instrução de programa descreve as restrições de variáveis dele nesse ponto. Uma asserção que se segue imediatamente a uma instrução descreve as novas restrições a essas variáveis depois da execução da instrução.

11 Asserções Essas asserções são denominadas pré-condição e póscondição, respectivamente, da instrução. O desenvolvimento de uma descrição axiomática ou prova de determinado programa exige que toda instrução tenha uma pré-condição e uma pós-condição.

12 Exemplo: Consideremos que as pré-condições para instruções são computadas partindo de determinada pós condição. soma = 2*x+1 {soma > 1}

13 Pré-condições mais fracas Aquela que é a menos restritiva que garantirá a validade da pós-condição associada. Para o exemplo anterior qualquer valor de x> 100, 50 ou 10 seria válido, e a pré-condição mais fraca seria x>0, note que 2*1+1 = 3

14 Instruções de Atribuição Digamos que x=e seja uma instrução de atribuição geral, e Q sua pós-condição. Então sua pré-condição, E é definida pelo axioma P=Qx-> E Significando que P é computado como Q com todas as instâncias de x substituídas por E.

15 Exemplo: a= b/2-1 {a<10} Qual é a pré-condição mais fraca?

16 Exemplo: a= b/2-1 {a<10} Qual é a pré-condição mais fraca? {b<22}.

17 Instruções de Atribuição A pré condição é calculada da seguinte forma: 2*y 3 > 25 y > 14 Então {y>14} é a pré-condição mais fraca para essa instrução de atribuição e de pós-condição. x = x + y - 3 {x>10} y>13 x

18 Aplicando Agora que conhecemos a teria, vamos a prática, como o axioma para instruções de atribuição pode ser usado para provar alguma coisa? Quando aplicamos à pós-condição e a instrução gera a pré-condição daa, o teorema está provado

19 Exemplo: {x>3} x = x 3 {x>0} Aplicando o teorema temos: x = x-3 {x>0} {x>3}

20 Exemplo: {x>5} x = x 3 {x>0} Aplicando o teorema temos: x = x-3 {x>0} {x>3}

21 {x>5} x = x 3 {x>0} Exemplo: Aplicando o teorema temos: x = x-3 {x>0} {x>3} Ora, {x>5} é tão válido, embora seja mais forte que {x>3}

22 Para usarmos isso em uma prova, precisaremos de uma regra de inferência, chamada regra de consequência. A forma geral de uma regra de inferência é: S1.S2...Sn S Aplicando a qual estabelece que se S1, S2... e Sn forem verdadeiros, a verdade S poderá ser inferida.

23 Aplicando A forma da regra de consequência é: {P} S {Q}. P => P, Q =>Q {P } S {Q} O Símbolo => significa implica S pode ser qualquer instrução lógica.

24 Aplicando A regra pode ser enunciada da seguinte maneira: se a instrução lógica {P} S {Q} for verdadeira e a asserção P implica a asserção P e a asserção Q implica a asserção Q, pode-se inferir que {P} S {Q}. Agora usaremos para a prova anterior a regra de consequência. {x>3} x = x 3 {x>0}, {x>5} => {x>3}, {x>0} => {x>0} {x>5} x = x 3 {x>0}

25 Aplicando A regra pode ser enunciada da seguinte maneira: se a instrução lógica {P} S {Q} for verdadeira e a asserção P implica a asserção P e a asserção Q implica a asserção Q, pode-se inferir que {P} S {Q}. Agora usaremos para a prova anterior a regra de consequência. {P} S {Q} {P } {P} {Q} {Q } {x>3} x = x 3 {x>0}, {x>5} => {x>3}, {x>0} => {x>0} {x>5} x = x 3 {x>0} {P } {S} {Q}

26 Sequencias A pré-condição mais fraca de uma sequência de instruções não pode ser descrita por meio de um axioma porque depende dos tipos particulares de instruções da sequência. Neste caso, a pré-condição somente pode ser descrita com uma regra de inferência.

27 Sequências Considere S1 e S2 instruções de programa adjacentes. Se S1 e S2 tiverem as seguintes pré-condições: {P1} S1 {P2} {P2} S2 {P3} A regra de inferência para esta sequência de duas instruções será: {P1} S1 {P2}, {P2} S2 {P3} {P1} S1;S2 {P3}

28 Sequências {P1} S1;S2{P3} descreve a semântica axiomática da sequência S1; S2. Se S1 e S2 forem instruções de atribuição x1 = E1 e x2 = E2 Teremos {P3x2->E2} x2 = E2 {P3} Portanto, a pré-condição mais fraca para a sequência x1 =E1; x2 = E2 com a pós condição P3 é: {(P3x2->E2)x1->E2}

29 Exemplo: 1) y = 3 * x + 1 2) x = y + 3 {x < 10} A pré-condição da segunda atribuição é y < 7 Essa será a pós-condição para a primeira. A précondição para a primeira instrução de atribuição agora poderá ser calculada. 3 * x + 1 < 7 x<2

30 Seleção Consideremos em seguida a regra de inferência para instruções de seleção. Consideremos somente as seleções que incluem cláusulas else. A regra de inferência será {B and P} S1 {Q}, {(not B) and P} S2 {Q} {P} if B then S1 else S2 {Q}

31 Seleção Consideremos em seguida a regra de inferência para instruções de seleção. Consideremos somente as seleções que incluem cláusulas else. A regra de inferência será {B and P} S1 {Q}, {(not B) and P} S2 {Q} {P} if B then S1 else S2 {Q}

32 Seleção Essa regra indica que as instruções de seleção devem ser provadas para ambos os casos. A primeira instrução lógica acima da linha é a cláusula then; a segunda é a clausula else.

33 Exemplo: if ( x > 0) then y = y -1 else y = y > 1

34 if ( x > 0) then y = y -1 else y = y > 1 Exemplo: Suponhamos que a pós-condição para essa instrução de seleção seja {y > 0}. Podemos usa o axioma para a atribuição na cláusula then.

35 if ( x > 0) then y = y -1 else y = y > 1 Exemplo: Suponhamos que a pós-condição para essa instrução de seleção seja {y > 0}. Podemos usa o axioma para a atribuição na cláusula then. y = y -1 {y > 0}

36 Exemplo: Isso produzirá {y -1 > 0} ou simplesmente {y > 1}.

37 Exemplo: Isso produzirá {y -1 > 0} ou simplesmente {y > 1}. Aplicaremos agora à cláusula else y = y + 1 {y > 0}

38 Exemplo: Isso produzirá {y -1 > 0} ou simplesmente {y > 1}. Aplicaremos agora à cláusula else y = y + 1 {y > 0} Isso Produzirá a pré condição {y > 0} ou {y > -1}. Uma vez que {y > 1} => {y > -1}, a rega de consequencia, nos permite usar {y > 1} para a pré-condição da instrução de seleção.

39 Lações de Pré-teste Lógico: Outra construção fundamental de uma linguagem de programação imperativa é o laço de pré-teste lógico, ou laço while.

40 Lações de Pré-teste Lógico: Outra construção fundamental de uma linguagem de programação imperativa é o laço de pré-teste lógico, ou laço while. O problema de computar a pré-condição mais fraca para laços é similar ao problema de provar um teorema sobre todos os números inteiros.

41 Lações de Pré-teste Lógico: Outra construção fundamental de uma linguagem de programação imperativa é o laço de pré-teste lógico, ou laço while. O problema de computar a pré-condição mais fraca para laços é similar ao problema de provar um teorema sobre todos os números inteiros. Como se provar?

42 Indução O passo principal será encontrar uma hipótese O passo correspondente na semântica axiomática de um laço while é encontrar uma asserção chamada invariante de laço.

43 Indução A regra de inferência para computar a pré-condição para um laço é: (I and B) S {I} {I} while B do S end {I and (not B)} I é o invariante do laço

44 Indução A descrição axiomática de um laço while é escrita como: {P} while B do S end {Q}

45 Indução Invariante

46 Indução Invariante A pré-condição mais fraca para o while deve garantir a verdade da invariante do laço

47 Indução Invariante A pré-condição mais fraca para o while deve garantir a verdade da invariante do laço. Deve garantir a verdade da pós-condição após a finalização do laço.

48 Indução Invariante A pré-condição mais fraca para o while deve garantir a verdade da invariante do laço. Deve garantir a verdade da pós-condição após a finalização do laço. Durante a execução do laço, a verdade da invariante do laço não deve ser afetada pela avaliação da expressão booleana que controla o laço.

49 Lações de Pré-teste Lógico: A descrição axiomática completa de uma construção exige que tudo que segue seja verdadeiro sendo I invariante. P=>I {I} B {I} {I and B} S {I} {i and(not B)} => Q

50 Lações de Pré-teste Lógico: Como encontrar o invariante?

51 Lações de Pré-teste Lógico: Como encontrar o invariante? Usamos a pós-condição de laço Q para computar pré-condições para diversos números de iterações do corpo do laço, iniciando com nenhum.

52 Lações de Pré-teste Lógico: Como encontrar o invariante? Usamos a pós-condição de laço Q para computar pré-condições para diversos números de iterações do corpo do laço, iniciando com nenhum. wp(instrução, pós-condição) = pré-condição.

53 Exemplo 1: while y < x do y = y+1 end {y = x} A pré-condição mais fraca é {y = x}

54 Para uma iteração Exemplo 1: wp(y = y + 1, {y = x} )= {y + 1 = x}, ou {y = x-1}

55 Exemplo 1: Para uma iteração wp(y = y + 1, {y = x} )= {y + 1 = x}, ou {y = x-1} Para duas iterações wp(y = y + 1, {y = x-1} )= {y + 1 = x-1}, ou {y = x-2}

56 Exemplo 1: Para uma iteração wp(y = y + 1, {y = x} )= {y + 1 = x}, ou {y = x-1} Para duas iterações wp(y = y + 1, {y = x-1} )= {y + 1 = x-1}, ou {y = x-2} Para três iterações wp(y = y + 1, {y = x-2} )= {y + 1 = x-2}, ou {y = x-3}

57 Exemplo 1: Para uma iteração wp(y = y + 1, {y = x} )= {y + 1 = x}, ou {y = x-1} Para duas iterações wp(y = y + 1, {y = x-1} )= {y + 1 = x-1}, ou {y = x-2} Para três iterações wp(y = y + 1, {y = x-2} )= {y + 1 = x-2}, ou {y = x-3} Basta {y<x} para uma ou mais iterações ou simplesmente {y<=x}

58 Exemplo 1: {I and B} S {I} {y <=x and y<>x} y = y +1 {y <=x} y = y + 1 {y <= x} {y+1<=x} que é equivalente a {y < x}

59 {I and (not B)} => {Q} Exemplo 1: {(y<=x) and (not(y<>x))} => {y = x} {(y<=x) and (y=x)} => {y=x} {y=x} => {y=x}

60 A finalização do laço Exemplo 1: {y <= x} while y<x do y = y + 1 end{y=x}

61 Exemplo 2: {n >= 0} cont = n fatorial = 1 while cont > 0 do fatorial = fatorial * cont cont = cont -1 end {fatorial = n!}

62 Invariante? Exemplo 2:

63 Invariante? Exemplo 2: fatorial = (cont +1) * (cont +2) *...* (n-1) *n

64 Invariante? Exemplo 2: fatorial = (cont +1) * (cont +2) *...* (n-1) *n AND (cont >=0)

65 Condições: {I and B} S {I} Exemplo 2: ((fatorial = (cont +1)*...*n AND (cont >=0)) AND (cont <>0) (fatorial = (cont +1)*...*n ) AND (cont >0)

66 Condições: {I and (not B)} => {Q} Exemplo 2: ((fatorial = (cont +1)*...*n AND (cont >=0)) AND (cont =0) => fatorial = n!

67 Avaliação: Para definir a semântica de uma linguagem completa usando o método axiomático, um axioma ou uma regra de inferência deve ser usado para cada tipo de instrução. Semântica axiomática e uma ferramenta poderosa para pesquisar provas de exatidão de programas.

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end. SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão

Leia mais

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti.

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti. Sintaxe e Semântica George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução O problema de descrever a sintaxe Métodos formais para descrever a sintaxe Gramáticas de atributos Descrevendo

Leia mais

SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica

SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica UNIVERSIDADE ESTADUAL DE SANTA CRUZ CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO DOCENTE: ROGÉRIO VARGAS DISCENTE: MARIANNA NOVAES Semântica SEMÂNTICA Semântica é a área

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

Semântica Axiomática

Semântica Axiomática Semântica Axiomática O estilo axiomático presta-se particularmente à prova e raciocínio sobre propriedades dos programas, e à sua verificação, i.e. à prova de correcção dos programas face às suas especificações.

Leia mais

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

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

Leia mais

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

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada. Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens

Leia mais

Semântica Denotacional

Semântica Denotacional Semântica Denotacional Uma introdução ISBN 0-321-19362-8 Semântica denotacional é um método formal para definir a semântica de linguagens de programação. Interessa a: projetista de linguagens, quem escreve

Leia mais

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

Capítulo 8. Estruturas de Controle no Nível de Sentença Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação

Leia mais

3 Cálculo de Hoare. 3.1 Semântica Axiomática de Linguagens de Programação

3 Cálculo de Hoare. 3.1 Semântica Axiomática de Linguagens de Programação Cálculo de Hoare 31 3 Cálculo de Hoare 3.1 Semântica Axiomática de Linguagens de Programação As técnicas para as semânticas operacional e denotacional de linguagens de programação são fundamentadas na

Leia mais

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

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção. Verificação Automática de Programas Consideremos o seguinte programa para calcular 100 m=1 m: x:=0; y:=1; (while y!=101 do x:=x+y;y:=y+1) Como podemos provar que este programa termina com x = 100 m=1 m.

Leia mais

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

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos: Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos: Integridade: Cada regra deve preservar validade. O que implica (por indução nas

Leia mais

ao paradigma imperativo

ao paradigma imperativo PARADIGMA FUNCIONAL PARADIGMA FUNCIONAL: INTRODUÇÃO G Exemplos de linguagens funcionais LISP - Início: LP puramente funcional - Depois: acréscimo de alguns recursos imperativos (aumentaram eficiência de

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016 MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números

Leia mais

Indução. Método de Prova por Indução. Jon Barwise e John Etchemendy, Capítulo: 16

Indução. Método de Prova por Indução. Jon Barwise e John Etchemendy, Capítulo: 16 Indução Método de Prova por Indução Referência: Capítulo: 16 Language, Proof and Logic Jon Barwise e John Etchemendy, 2008 1 Indução Métodos de prova já vistos relacionam-se diretamente com as propriedades

Leia mais

Noção de Computabilidade

Noção de Computabilidade Noção de Computabilidade 1 Procedimento X Algoritmo Procedimento: sequência finita de instruções, que são operações claramente descritas, e que podem ser executadas mecanicamente, em tempo finito. claramente

Leia mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

Fundamentos 1. Lógica de Predicados

Fundamentos 1. Lógica de Predicados Fundamentos 1 Lógica de Predicados Predicados e Quantificadores Estudamos até agora a lógica proposicional Predicados e Quantificadores Estudamos até agora a lógica proposicional A lógica proposicional

Leia mais

Paradigmas de Linguagens de Programação. Descrevendo a Sintaxe e a Semântica

Paradigmas de Linguagens de Programação. Descrevendo a Sintaxe e a Semântica Descrevendo a Sintaxe e a Semântica Cristiano Lehrer Introdução Descrição, compreensível, de uma linguagem de programação é difícil e essencial. Capacidade de determinar como as expressões, instruções

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/14 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)

Leia mais

Intuição da sintaxe de L2 (35)

Intuição da sintaxe de L2 (35) 2.2 A Linguagem L2 2.2 A Linguagem L2 A linguagem L2 é uma extensão de L1 com funções recursivas, memória (acesso e atualização de variáveis), sequência de comandos ( ; ) e laço de repetição while. Primeiro,

Leia mais

Processamento da Informação

Processamento da Informação Processamento da Informação Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Recursão 1 Recursão Indução Matemática Em bases matemáticas vocês aprenderam sobre indução matemática: Provamos

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.

Leia mais

Introdução O problema geral de descrever sintaxe Métodos formas de descrever sintaxe Gramática de atributos Semântica dinâmica

Introdução O problema geral de descrever sintaxe Métodos formas de descrever sintaxe Gramática de atributos Semântica dinâmica Capítulo 3 Descrevendo sintaxe e semântica ISBN 0-321-19362-8 Tópicos Introdução O problema geral de descrever sintaxe Métodos formas de descrever sintaxe Gramática de atributos Semântica dinâmica Copyright

Leia mais

5 Implementação do Corretor de Programas

5 Implementação do Corretor de Programas Implementação do Corretor de Programas 67 5 Implementação do Corretor de Programas 5.1 Introdução Para validar as idéias expostas anteriormente, faz-se necessário implementar um corretor de programas com

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Expressões Precedência e associatividade de operador Sobrecarga de operador Expressões de modo misto Várias formas de

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2

Leia mais

Técnicas de projeto de algoritmos: Indução

Técnicas de projeto de algoritmos: Indução Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 7 de outubro de 2016 Marco Antonio

Leia mais

Fundamentos 1. Lógica de Predicados

Fundamentos 1. Lógica de Predicados Fundamentos 1 Lógica de Predicados Predicados Estudamos até agora a lógica proposicional Predicados Estudamos até agora a lógica proposicional A lógica proposicional têm possibilidade limitada de expressão.

Leia mais

Linguagens Lógicas. Aluno: Victor Rocha

Linguagens Lógicas. Aluno: Victor Rocha Linguagens Lógicas Aluno: Victor Rocha Roteiro Introdução Cálculo de Predicados Proposições Conectores Lógicos Variáveis Tipos de Cláusulas fatos regras Banco de Dados Prolog Fatos em Prolog Questões Unificação

Leia mais

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

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação

Leia mais

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51 Os números inteiros Abordaremos algumas propriedades dos números inteiros, sendo de destacar o Algoritmo da Divisão e o Teorema Fundamental da Aritmética. Falaremos de algumas aplicações como sejam a detecção

Leia mais

Aula 1. Teoria da Computação III

Aula 1. Teoria da Computação III Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável

Leia mais

Expressões e sentença de atribuição

Expressões e sentença de atribuição Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Linguagens de Programação. Marco A L Barbosa

Linguagens de Programação. Marco A L Barbosa Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

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

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 Fundamentos de Linguagens de Programação Nelma Moreira Departamento de Ciência de Computadores da FCUP Fundamentos de Linguagens de Programação Aula 2 Nelma Moreira (DCC-FC) Fundamentos de Linguagens de

Leia mais

Linguagens de Programação

Linguagens de Programação 45 Linguagens de Programação O paradigma de programação imperativo está diretamente atrelado à arquitetura básica dos computadores sobre os quais os programas eram executados. Boa parte dos computadores

Leia mais

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal. Capítulo 4 TESTES, ESCOLHAS E MALHAS DE REPETIÇÃO 1. INTRODUÇÃO Em muitos exemplos e exercícios realizados nos capítulos anteriores, não foram raras as vezes em que fizemos uso de elementos disponíveis

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação de Linguagens de Programação Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 11 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:

Leia mais

Programação II RECURSÃO

Programação II RECURSÃO Programação II RECURSÃO Bruno Feijó Dept. de Informática, PUC-Rio Motivação Escher: Metamorphosis (1937) - Drawing Hands (1948) Relativity (1953) http://www.worldofescher.com/gallery/ Alguém diz: Esta

Leia mais

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos

Leia mais

algoritmo "exercício 22 resposta incorreta" var A, i: inteiro eh_primo: logico inicio repita escreva ("Entre com um valor inteiro positivo: ") leia

algoritmo exercício 22 resposta incorreta var A, i: inteiro eh_primo: logico inicio repita escreva (Entre com um valor inteiro positivo: ) leia 180 algoritmo "exercício 22 resposta incorreta" var A, i: inteiro eh_primo: logico escreva ("Entre com um valor inteiro positivo: ") leia (A) ate (A>0) eh_primo

Leia mais

Variáveis e instruções de repetição

Variáveis e instruções de repetição Variáveis e instruções de repetição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Compiladores II. Fabio Mascarenhas

Compiladores II. Fabio Mascarenhas Compiladores II Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp2 Máquinas Virtuais Uma máquina virtual é uma técnica de implementação de linguagens de programação que é um meio termo entre

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos

Leia mais

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação

Leia mais

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Teoria dos Conjuntos Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas. Porém, não é nosso objetivo ver uma teoria axiomática dos conjuntos.

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

Lógica Proposicional Parte 3

Lógica Proposicional Parte 3 Lógica Proposicional Parte 3 Nesta aula, vamos mostrar como usar os conhecimentos sobre regras de inferência para descobrir (ou inferir) novas proposições a partir de proposições dadas. Ilustraremos esse

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

Análise de Algoritmos Estrutura de Dados II

Análise de Algoritmos Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO ROTEIRO 1. INTRODUÇÃO 2. LINGUAGENS IMPERATIVAS 1. CONCEITO 2. PARADIGMA IMPERATIVO 3. ORIGENS 4. MODELO COMPUTACIONAL 1. ARQUITETURA DE VON NEUMANN 2. CARACTERISTICAS

Leia mais

LINGUAGEM C: COMANDOS DE REPETIÇÃO

LINGUAGEM C: COMANDOS DE REPETIÇÃO LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 2 Prof. Daniel Cavalcanti Jeronymo Conceito de algoritmo. Raciocínio lógico na construção de algoritmos. Estrutura de algoritmos. Universidade Tecnológica Federal

Leia mais

ALGORITMOS E ESTRUTURA DE DADOS

ALGORITMOS E ESTRUTURA DE DADOS ALGORITMOS E ESTRUTURA DE DADOS Algoritmos Tipos de Dados Prof. André Peixoto - Todo o trabalho realizado por um computador é baseado na manipulação dos dados/informações contidas em sua memória. Podemos

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

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

Programas em L1 pertencem ao conjunto de árvores de sintaxe abstrata definido pela gramática abstrata abaixo: 1 Semântica Operacional e Sistemas de Tipos Vamos definir a semântica operacional de uma série de linguagens no estilo conhecido por semântica operacional estrutural chamado também de semântica operacional

Leia mais

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

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga

Leia mais

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Programação em Lógica UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Roteiro Introdução Conceitos Básicos Linguagens Lógicas Semântica de Modelos Semântica de Prova Programação

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando

Leia mais

Análise e Técnicas de Algoritmos

Análise e Técnicas de Algoritmos Análise e Técnicas de Algoritmos Prof. Jorge Figueiredo http://www.dsc.ufcg.edu.br/~abrantes/atal032.html Jorge Figueiredo Aula 1-1 Agenda Apresentação do curso Motivação Introdução informal Jorge Figueiredo

Leia mais

Fundamentos 1. Lógica de Predicados

Fundamentos 1. Lógica de Predicados Fundamentos 1 Lógica de Predicados Predicados Estudamos até agora a lógica proposicional Predicados Estudamos até agora a lógica proposicional A lógica proposicional têm possibilidade limitada de expressão.

Leia mais

Linguagens de Programação Funcional

Linguagens de Programação Funcional Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A

Leia mais

é uma proposição verdadeira. tal que: 2 n N k, Φ(n) = Φ(n + 1) é uma proposição verdadeira. com n N k, tal que:

é uma proposição verdadeira. tal que: 2 n N k, Φ(n) = Φ(n + 1) é uma proposição verdadeira. com n N k, tal que: Matemática Discreta 2008/09 Vítor Hugo Fernandes Departamento de Matemática FCT/UNL Axioma (Princípio da Boa Ordenação dos Números Naturais) O conjunto parcialmente (totalmente) ordenado (N, ), em que

Leia mais

Compiladores - Análise SLR

Compiladores - Análise SLR Compiladores - Análise SLR Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Um exemplo que funciona Todo estado com um item de redução e algum outro item causa conflito LR(0)! A técnica LR(0)

Leia mais

Elementos básicos das linguagens de programação

Elementos básicos das linguagens de programação Elementos básicos das linguagens de programação Objetivos: Apresentar os últimos elementos básicos das linguagens de programação Elementos básicos já estudados Entrada (read, readln) Saída (write, writeln)

Leia mais

Conhecimento e Raciocínio Lógica Proposicional

Conhecimento e Raciocínio Lógica Proposicional Conhecimento e Raciocínio Lógica Proposicional Agente Baseado em Conhecimento ou Sistema Baseado em Conhecimento Representa conhecimento sobre o mundo em uma linguagem formal (KB) Raciocina sobre o mundo

Leia mais

5 AULA. Teorias Axiomáticas LIVRO. META: Apresentar teorias axiomáticas.

5 AULA. Teorias Axiomáticas LIVRO. META: Apresentar teorias axiomáticas. 1 LIVRO Teorias Axiomáticas 5 AULA META: Apresentar teorias axiomáticas. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de: Criar teorias axiomáticas; Provar a independência dos axiomas de uma

Leia mais

Afirmações Matemáticas

Afirmações Matemáticas Afirmações Matemáticas Na aula passada, vimos que o objetivo desta disciplina é estudar estruturas matemáticas, afirmações sobre elas e como provar essas afirmações. Já falamos das estruturas principais,

Leia mais

UMA PROVA DE CONSISTÊNCIA

UMA PROVA DE CONSISTÊNCIA UMA PROVA DE CONSISTÊNCIA Felipe Sobreira Abrahão Mestrando do HCTE/UFRJ felipesabrahao@gmail.com 1. INTRODUÇÃO Demonstradas por Kurt Gödel em 1931, a incompletude da (ou teoria formal dos números ou aritmética)

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Fabio Mascarenhas 2017.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões abaixo

Leia mais

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL: INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe

Leia mais

Sumário. Computador. Processador. Computador Noção de algoritmo Linguagem de programação Léxico, sintaxe e semântica Gramáticas Fluxogramas

Sumário. Computador. Processador. Computador Noção de algoritmo Linguagem de programação Léxico, sintaxe e semântica Gramáticas Fluxogramas Sumário Computador Noção de algoritmo Linguagem de programação Léxico, sintaxe e semântica Gramáticas Fluxogramas 02-1 Computador Máquina Memória Armazena dados Dispositivos de entrada/saída Permite a

Leia mais

Expressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti

Expressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti Expressões e Instruções de Atribuição George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Expressões Aritméticas Operadores Sobrecarregados Conversões de Tipo Expressões Relacionais

Leia mais

1 Lógica de primeira ordem

1 Lógica de primeira ordem 1 Lógica de primeira ordem 1.1 Sintaxe Para definir uma linguagem de primeira ordem é necessário dispor de um alfabeto. Este alfabeto introduz os símbolos à custa dos quais são construídos os termos e

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 5 Estruturas de Repetição Profa. Marina Gomes marinagomes@unipampa.edu.br 26/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura de repetição Comando for

Leia mais

Linguagem C estruturas de repetição

Linguagem C estruturas de repetição Linguagem C estruturas de repetição IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C Estrutura de um programa Escrita e

Leia mais

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1 Programação de Computadores IV Introdução a Linguagens de Programação Simone Martins simone@ic.uff.br SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento

Leia mais

Aula 01 Algoritmos e lógica de programação e introdução ao C++

Aula 01 Algoritmos e lógica de programação e introdução ao C++ Aula 01 Algoritmos e lógica de programação e introdução ao C++ Autor: José Martins de Castro Neto Carga Horária: 2h 21 de julho de 2015 1 Algoritmo e lógica de programação Ementa do curso 1. Definições

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um

Leia mais

Golog. Uma abordagem para Robótica Cognitiva. Baseado

Golog. Uma abordagem para Robótica Cognitiva. Baseado Golog Uma abordagem para Robótica Cognitiva Baseado Robótica Cognitiva Estudo da representação de conhecimento e raciocínio de um agente autônomo em um ambiente dinâmico num mundo não completamente conhecido

Leia mais

Análise Semântica e Representação Intermédia

Análise Semântica e Representação Intermédia Análise Semântica e Representação Intermédia Compiladores, Aula Nº 22 João M. P. Cardoso 1 Representação do fluxo de controlo Nós de enunciados Nó if Árvore de expressão para a condição Nó para o corpo

Leia mais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

Métodos formais. Especificação Formal. Aceitação de métodos formais. O uso de métodos formais. Especificação e projeto

Métodos formais. Especificação Formal. Aceitação de métodos formais. O uso de métodos formais. Especificação e projeto Métodos formais Especificação Formal A especificação formal é parte de um coleção mais geral de técnicas que são conhecidas como métodos formais. São todas baseadas na representação matemática e na análise

Leia mais

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

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências

Leia mais

C Comandos de Controle

C Comandos de Controle C Comandos de Controle Adriano Cruz adriano@nce.ufrj.br 19 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Revisão da Seção Introdução Comandos de Teste Comandos de

Leia mais

TÉCNICO DE INFORMÁTICA - SISTEMAS

TÉCNICO DE INFORMÁTICA - SISTEMAS 782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar

Leia mais

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Linguagem de Programação I Prof. Tiago Eugenio de Melo. Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a

Leia mais