Linguagens de Programação Princípios e Paradigmas

Documentos relacionados
Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Fundamentos de Programação 1

Linguagens de Programação

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

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Linguagens de Programação e Programação Funcional

ao paradigma imperativo

Programação de Computadores

Histórico de Linguagens de Programação

Paradigmas de Linguagem de Programação. Aspectos Básicos

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares

Programação de Computadores

Revisão: linguagens de programação

PROGRAMAÇÃO EM JOGOS DIGITAIS

Programação I Apresentação

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

3. Linguagem de Programação C

1 Introdução à Programação O que é? Para que serve?... 1

Introdução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

Programação Funcional Apontamentos (Versão 1.16)

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

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

Introdução à Orientação a Objetos

Linguagens de Programação Aula 3

Linguagem de Programação e Compiladores

Autômatos e Linguagens

LÓGICA DE PROGRAMAÇÃO 1

Programação para GI. Subprogramas

Métodos para a construção de algoritmo

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

Introdução à Computação: Máquinas Multiníveis

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

Linguagens de Programação

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5

Introdução à Computação

Introdução a Programação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Inteligência Artificial. Prolog. Aula 2 Introdução (cont.)

Aula 1 Java Prof. Dr. Sylvio Barbon Junior

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Aula 3: Algoritmos: Formalização e Construção

Elementos da Linguagem C#

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO

Fundamentos da Programação

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Fundamentos de Programação 1

Linguagens de Programação Funcional

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

Programação de Computadores:

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Linguagens de Programação

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Elementos da Linguagem C#

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

Técnicas de Programação

PROGRAMAÇÃO I. Introdução

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Introdução a Lógica de Programação

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

Introdução a Algoritmos Aula 1

Algoritmos Computacionais

Transcrição:

Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Linguagens e Ambientes de Programação 2002-2003 Linguagens de Programação Princípios e Paradigmas Gladys Castillo Universidade de Aveiro Níveis de um Linguagem de Computação Figure 1.1 1

Máquinas Virtuais e Interpretes Figure 1.2 Principais etapas no processo de compilação Figure 2.4 Token stream: Sequência simbólica 2

Um fragmento de um programa visto como uma Sequência Simbólica Figure 2.2 Sintaxe lexical para uma linguagem simples Figure 2.3 3

A C/C++ Max Function Figure 3.1 Java Implementation of the State Class Figure 3.5 4

Paradigmas de Programação Programação Imperativa Programação Funcional Programação Declarativa Programação Orientada a Objecto (OOP) Programação orientada a eventos Cronograma Histórico de alguns Linguagens de Programação Figure 1.3 5

Programação Imperativa Consiste em definir procedimentos para executar sequências de acções, i.e., sequências de atribuições ou avaliações (ex: C, Pascal, Fortran, etc). Linguagem informal //--- Que escreve? //--- variáveis usadas: p,n,i (inteiras) leia n; coloque 1 em p; para i=1,2,...,n coloque p*i em p; escreva(p); Fonte: Programação Imperativa, Armando Matos, UP A Matemática e as linguagens imperativas Em Matemática e em C, por exemplo, o significado do sinal = e muito diferente: x = y +z: em Matemática e em C x = x+2: em Matemática (e sempre falso) e em C (uma atribuição) Fonte: Programação Imperativa, Armando Matos, UP 6

A C/C++ Factorial Function Figure 3.2 Técnicas em Programação Imperativa: Modularidade dos Algoritmos (Programação Estruturada) Modularidade das Estruturas de Dados (Tipos Abstractos de Dados) Recorrência 7

Programação Declarativa O programador preocupa-se apenas com o significado declarativo do seu programa, sendo os aspectos procedimentais da execução do programa tratados automaticamente. O programador descreve o problema a ser resolvido e esta descrição é usada para encontrar uma ou mais soluções ao problema. Ex: Prolog usado para resolver problemas que envolvem objectos, as suas propriedades e relações Linguagem Prolog %--predicado fact(n,f): f e o factorial de n fact(0,1). fact(n,f) :- N>0, N1 is N-1, fact(n1,f1), F is N*F1. Utilizando:?- fact(3,a). A = 6? ; no 8

Programação Funcional Estilo de programação, sem atribuição, nem alteração dos argumentos de funções. As funções se limitam a produzir novos valores. Neste paradigma de programação, qualquer função da linguagem é considerada uma função matemática pura que, para os mesmos argumentos produz sempre os mesmos valores. Nunca nada é destruído. Exs: 1. Uma função que junta duas listas produz uma nova lista sem alterar as listas originais. 2. Uma função que muda o número de portas de um automóvel produz um novo automóvel. Linguagens: Lisp (http://www.gia.ist.utl.pt/lisp9596/node58.html) Programação Funcional Vantagens sobre outros estilos de programação: produz programas muito rapidamente e minimizando os erros. Limitações: a sua incapacidade em modificar seja o que for é a maior. A partir do momento em que introduzimos a modificação de objectos, estamos a introduzir o conceito de destruição. A forma anterior do objecto que foi modificado deixou de existir, passando a existir apenas a nova forma. A modificação implica a introdução do conceito de tempo. Os objectos passam a ter uma história, e isto conduz a um novo estilo de programação. 9

Programação Orientada a Eventos A programação orientada a eventos baseia-se na inexistência de um algoritmo principal que, em uma programação tradicional (imperativa), corresponde a um programa com início e fim. Em um programa orientado a eventos, tudo o que temos é uma forma que contém vários controles e a cada acção do utilizador (a que denominamos evento), o programa responde com a execução de um procedimento. Linguagens: Visual Basic, Visual C++, Macromédia Director, Java Imperative and Event-Driven Paradigms Contrasted Figure 10.1 10