Paradigmas de Programação



Documentos relacionados
Paradigmas de Linguagens de Programação

INF1621 Linguagens de Programação I

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Linguagens de. Aula 01. Profa Cristiane Koehler

AULA 1: PARADIGMAS DE PROGRAMAÇÃO

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Introdução à Programação Aula 2 Introdução à linguagem Python

Linguagens de Programação. Introdução. Carlos Bazilio

Curso Técnico em Redes

Indústria de Software - Histórico

Fonte (livro-texto): Conceitos de Linguagens de Programação, 4ed. Robert W. Sebesta

Nesta aula... Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver:

Introdução à Engenharia de Computação

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Apostila da disciplina Introdução à Engenharia de Software Professor: Sandro Melo Faculdades São José Curso de Tecnologia de Sistemas de Informação

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

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

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Introdução. Paradigmas de Linguagens de Programação. Heloisa de Arruda Camargo. Motivos para estudar os conceitos de linguagens de programação

TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I

Organização de Computadores Software

Linguagens de Programação Aula 10

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Análise e Projeto Orientados por Objetos

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Algoritmos DCC 119. Introdução e Conceitos Básicos

Arquitetura de Computadores Moderna

Paradigmas de Linguagens de Programação. Aspectos Preliminares

IB I M B - PC ( C ( P C U U

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Curso Técnico em Informática Organização Curricular. A carga horária total dos módulos é oferecida conforme quadro síntese abaixo:

UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA COLEGIADO DO CURSO DE GRADUAÇÃO EM ENGENHARIA ELÉTRICA/ENG.

Introdução a Programação Funcional

Linguagens de Programação

Desenvolvimento estruturado versus orientado a objetos.

UNIP UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA (ICET) CURSO DE CIÊNCIAS DA COMPUTAÇÃO. O Paradigma da Orientação a Objeto

Paradigmas e Linguagens de Programação. Prof. Josino Rodrigues Neto josinon@gmail.com

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version LibreOffice Productivity Suite

Programação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

O COMPUTADOR. Introdução à Computação

Computador Digital Circuitos de um computador (Hardware)

PROGRAMA DE DISCIPLINA

Algoritmos e Programação Aula 01 Introdução a Computação

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

Breve Histórico & Conceitos Básicos

Histórico de Linguagens de Programação

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

Algoritmos e Programação Parte Teórica

Linguagens de programação

Introdução a Linguagens de Programação

Revisão: linguagens de programação

Sistemas de Representação e Raciocínio

Modelagem de Processos. Prof.: Fernando Ascani

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

2. Conceitos e Arquitetura de Bancos de Dados

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Banco de Dados Orientado a Objetos

PLANIFICAÇÃO ANUAL GESTÃO DE TEMPOS. CURSO: Curso Profissional de Secretariado 10º ano. DISCIPLINA: Tecnologias da Informação e Comunicação

Programação de Computadores

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Ficha da Unidade Curricular (UC)

Algoritmo e Técnica de Programação - Linguagem C

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Programação Orientada a Objeto

MODELAGEM E SIMULAÇÃO

Programação de Computadores III

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

A INSTRUMENTAÇÃO VIRTUAL COMO FORMA DE INTEGRAÇÃO ENTRE A TEORIA E PRÁTICA NO ENSINO DE MEDIDAS ELÉTRICAS

"BUSSINES PLAN"- PLANO DE NEGÓCIOS

PROGRAMA DE DISCIPLINA

Programação Orientada a Objetos

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

Introdução às Linguagens de Programação

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Professora Isabel Harb Manssour Paradigmas de Linguagens I 1 1. INTRODUÇÃO

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Computação II Orientação a Objetos

COMPETÊNCIAS. Reconhecer a importância das artes visuais como valor cultural indispensável ao desenvolvimento do ser humano.

A ESTRUTURA DA GESTÃO DE

O Hardware e o Software do Computador

TIC Tecnologias da Informação e Comunicação 10º Ano

Planificação de. Aplicações Informáticas B

Programa de Unidade Curricular

Transcrição:

Paradigmas de Programação Aula I Apresentação Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br

Professor EDILBERTO M. SILVA edilms@yahoo.com Bacharel em Ciência da Computação Mestre em Gestão do Conhecimento e da Tecnologia da Informação KDT, KDD, DSS, Gestão da Informação PRESI/RADIOBRÁS Gerência Técnica em Desenvolvimento Analista de Sistemas e DBA SQL Server PP - Prof. Edilberto Silva - http://edilms.eti,br 2

Ementa Linguagens de programação: evolução, características; Estruturas sintáticas: notações e gramáticas; Linguagens: imperativas, funcionais, orientadas a objetos, programação lógica; programação concorrente. Objetivos Estudar os princípios de projeto e as características dos principais modelos de linguagens de programação e sua adequação à solução de problemas. PP - Prof. Edilberto Silva - http://edilms.eti,br 3

para que estudá-los? Capacidade crescente de expressar idéias. A profundidade que se consegue pensar é influenciada pelo poder da linguagem com a qual se está comunicando os pensamentos. Aumenta-se a habilidade de aprender novas linguagens. Melhora-se a compreensão do significado da implementação. Habilidade maior de projetar novas linguagens. Avanço da computação. PP - Prof. Edilberto Silva - http://edilms.eti,br 4

Conteúdo Paradigmas de Programação 1) Programação Imperativa. 2) Programação Orientada a Objetos. 3) Programação Funcional. 4) Programação em Lógica. Imperativa: Fortran, Pascal, C Orientada a Objetos: Smalltalk, C++, Java Funcional: LISP Lógica: PROLOG PP - Prof. Edilberto Silva - http://edilms.eti,br 5

Linguagens de Programação O que caracteriza uma linguagem de programação? Sintaxe e semântica bem definidas; Implementável (executável) com eficiência aceitável. Universal: deve ser possível expressar todo problema computável. Natural para expressar soluções de problemas (em um certo domínio de aplicação). PP - Prof. Edilberto Silva - http://edilms.eti,br 6

Por que tantas? C, C++, Java, Basic, COBOL, Lisp, Haskell, Modula- 2, Oberon, Prolog, Java, C#, Pascal, PL/1, Ada, Smalltalk, Símula, Algol, Eiffel, Fortran (1957), ASM, Scheme, CLOS, Maude, Python, Glass, etc. Propósitos Diferentes; Avanços Tecnológicos. Interesses comerciais. Cultura e background científico. PP - Prof. Edilberto Silva - http://edilms.eti,br 7

Paradigma O que significa um paradigma? Como se traduz este significado para o contexto da programação? Como se pode caracterizar um paradigma? Paradigma de Programação Modelo, padrão ou estilo de programação suportado por linguagens que agrupam certas características comuns. A classificação de linguagens em paradigmas é uma conseqüência de decisões de projeto que têm impacto na forma segundo a qual uma aplicação real é modelada do ponto de vista computacional. PP - Prof. Edilberto Silva - http://edilms.eti,br 8

Características Comuns Abstração for i:=1 to n do begin x:=x*i; If(x mod 2)=0 then writeln(x, é par ) else writeln(x, é ímpar ); end; Teoria Prática Concretização Um problema do mundo real é descrito em termos de variáveis (nome, tipo, endereço), ciclos, condicionais, atribuições, expressões (valor, tipo), entrada e saída, comandos. PP - Prof. Edilberto Silva - http://edilms.eti,br 9

O que caracteriza uma Linguagem de Programação? Gramática e significado bem definidos Implementável (executável) com eficiência aceitável Universal: deve ser possível expressar todo problema computável Natural para expressar problemas (em um certo domínio de aplicação) PP - Prof. Edilberto Silva - http://edilms.eti,br 10

Aspectos do estudo de linguagens Sintaxe: gramática (forma) Semântica: significado Pragmática (ex.: metodologias) Processadores: compiladores, interpretadores, editores, ambientes visuais... PP - Prof. Edilberto Silva - http://edilms.eti,br 11

O Paradigma Imperativo Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que manipulam o estado Paradigma também denominado de procedural, por incluir subrotinas ou procedimentos como mecanismo de estruturação Primeiro paradigma a surgir e ainda é o dominante PP - Prof. Edilberto Silva - http://edilms.eti,br 12

Modelo Computacional do Paradigma Imperativo Entrada Programa Saída Estado PP - Prof. Edilberto Silva - http://edilms.eti,br 13

Visão Crítica do Paradigma Imperativo Vantagens Eficiência (embute modelo de Von Neumann) Modelagem natural de aplicações do mundo real Paradigma dominante e bem estabelecido Problemas Relacionamento indireto entre E/S resulta em: - difícil legibilidade - erros introduzidos durante manutenção - descrições demasiadamente operacionais focalizam o como e não o que PP - Prof. Edilberto Silva - http://edilms.eti,br 14

O Paradigma Orientado a Objetos Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo A diferença é mais de metodologia quanto à concepção e modelagem do sistema A grosso modo, uma aplicação é estruturada em módulos (classes) que agrupam um estado e operações (métodos) sobre este Classes podem ser estendidas e/ou usadas como tipos (cujos elementos são objetos) PP - Prof. Edilberto Silva - http://edilms.eti,br 15

Modelo Computacional do Paradigma Orientado a Objetos Entrada Programa Saída Entrada Programa Saída Estado Estado Entrada Programa Saída Entrada Programa Saída... Entrada Programa Saída Estado Estado Estado...... PP - Prof. Edilberto Silva - http://edilms.eti,br 16

Visão Crítica do Paradigma Vantagens Orientado a objetos Todas as do estilo imperativo Classes estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidade Aceitação comercial crescente Problemas Semelhantes às do paradigma imperativo, mas amenizadas pelas facilidades de estruturação PP - Prof. Edilberto Silva - http://edilms.eti,br 17

O Paradigma Funcional Programas são funções que descrevem uma relação explícita e precisa entre E/S Estilo declarativo: não há o conceito de estado nem comandos como atribuição Conceitos sofisticados como polimorfismo, funções de alta ordem e avaliação sob demanda Aplicação: prototipação em geral e IA PP - Prof. Edilberto Silva - http://edilms.eti,br 18

Modelo Computacional do Paradigma Funcional Entrada Programa Saída PP - Prof. Edilberto Silva - http://edilms.eti,br 19

Visão Crítica do Paradigma Funcional Vantagens Manipulação de programas mais simples: - Prova de propriedades - Transformação (exemplo: otimização) Concorrência explorada de forma natural Problemas O mundo não é funcional! Implementações ineficientes Mecanismos primitivos de E/S e formatação PP - Prof. Edilberto Silva - http://edilms.eti,br 20

O Paradigma Lógico Programas são relações entre E/S Estilo declarativo, como no paradigma funcional Na prática, inclui características imperativas, por questão de eficiência Aplicações: sistemas especialistas e banco de dados PP - Prof. Edilberto Silva - http://edilms.eti,br 21

Modelo Computacional do Paradigma Lógico Entrada Programa Saída PP - Prof. Edilberto Silva - http://edilms.eti,br 22

Visão Crítica do Paradigma Lógico Vantagens Em princípio, todas do paradigma funcional Permite concepção da aplicação em um alto nível de abstração (através de associações entre E/S) Problemas Em princípio, todos do paradigma funcional Linguagens usualmente não possuem tipos, nem são de alta ordem PP - Prof. Edilberto Silva - http://edilms.eti,br 23

Tendência: integração de paradigmas A principal vantagem é combinar facilidades de mais de um paradigma, aumentando o domínio de aplicação da linguagem Exemplos: linguagens lógicas ou funcionais com o conceito de estado e comandos A integração deve ser conduzida com muita cautela, para que não se viole os princípios básicos de cada paradigma. PP - Prof. Edilberto Silva - http://edilms.eti,br 24

Outras Classificações Linguagens de 1a., 2a., 3a. 4a. e 5a. gerações Programação seqüencial versus concorrente Programação linear versus programação visual (visual programming) Ex.: Visual BASIC, Delphi, Visual Cafe... PP - Prof. Edilberto Silva - http://edilms.eti,br 25

Um breve histórico 1950... FORTRAN 1960...ALGOL-60...COBOL...LISP... SIMULA ALGOL-68 PL/I BASIC 1970...Pascal... Smalltalk C PROLOG Modula-2 ML 1980...Ada...DBASE-II... Miranda Eifell C++ 1990...Haskell...Godel... Java Delphi Orientado a objetos Imperativo Funcional Lógico PP - Prof. Edilberto Silva - http://edilms.eti,br 26

Referências Bibliográficas BIBLIOGRAFIA BÁSICA SEBESTA, R. W. Conceitos de Linguagens de Programação. Porto Alegre: Bookman, 2000. MELO, A; SILVA, F. Princípios de Linguagem de Programação. São Paulo: Edgard Blücher, 2003. BIBLIOGRAFIA COMPLEMENTAR GHEZZI, Carlos; JAZAYERI, Mehdi. Conceitos de Linguagens de Programação. Rio de Janeiro: Campus, 1985. Varejão, Flávio. Linguagens de Programação: Conceitos e Técnicas: JAVA, C e C++ e outras. Rio de Janeiro: Campus, 2004. VILLAS, Marcos Vianna; VILLASBOAS, Luiz Felipe. Programação, Conceitos Teóricos e Linguagem. Rio de Janeiro: Campus, 1997. Ziviani, Nívio. Projeto de algoritmos com implementações em Pascal e C. 3.ed. São Paulo: Pioneira, 2004 PP - Prof. Edilberto Silva - http://edilms.eti,br 27