• Nenhum resultado encontrado

aula01

N/A
N/A
Protected

Academic year: 2021

Share "aula01"

Copied!
45
0
0

Texto

(1)

PARADIGMAS DE LINGUAGENS

Prof. Paulo Malcher

prcmalcher@gmail.com

https://sites.google.com/site/professorpaulomalcher/

(2)

Sumário

Apresentação do Professor

(3)

Apresentação do Professor

Prof. Paulo Malcher

• Bacharel em Ciência da Computação – UFPA

• Mestre em Ciência da Computação – PPGCC-UFPA • Pesquisador Laboratório Spider-UFPA

(4)

Apresentação da Disciplina

OBJETIVO GERAL

• Estudo dos principais paradigmas de programação e sua influência na solução de problemas.

(5)

Apresentação da Disciplina

OBJETIVOS ESPECÍFICOS

• Estudo dos principais paradigmas de programação e sua influência na solução de problemas.

(6)

Apresentação da Disciplina

EMENTA

• Evolução das linguagens de programação. Paradigmas de programação. Noções sobre linguagens: estruturada, orientada a eventos e orientada a objetos. Estudo comparativo de linguagens: variáveis, expressões, escopo, comandos, tipagem, procedimentos, tipos de dados, abstração e controle. Estudo de casos.

(7)

Apresentação da Disciplina

CONTEÚDO PROGRAMÁTICO

Unidade 1: Introdução 1. 1. Motivação

1. 2. Conceito de linguagem de programação (LP) 1. 3. Escolha de uma LP

1. 4. Classes e gerações

1. 5. Elementos sintáticos e semânticos 1. 5. 1. Sintaxe x semântica

1. 5. 2. Abstração e amarração 1. 5. 2. 2. Tipos de dados

(8)

Apresentação da Disciplina

CONTEÚDO PROGRAMÁTICO

Unidade 2: Paradigma Imperativo 2.1. Introdução

2.2. Programação imperativa

2.1.1. Variáveis, atribuição e repetição 2.1.2. Comandos

(9)

Apresentação da Disciplina

CONTEÚDO PROGRAMÁTICO

Unidade 3: Paradigma Orientado a Objeto 3.1. Introdução

3.2. Classe e objeto

3.3. Hierarquia de classes: herança e reusabilidade 3.4. Programação orientada a objetos

3.4.1. Método e mensagem 3.4.2. Polimorfismo

(10)

Apresentação da Disciplina

CONTEÚDO PROGRAMÁTICO

Unidade 4: Paradigma Funcional 4.1. Introdução

4.2. Funções matemáticas e funções em LPs 4.3. Programação funcional

4.3.1. "Pattern-matching" 4.3.2. Avaliação postergada

4.3.3. Funções de mais alta ordem 4.4. Estudo de caso

(11)

Apresentação da Disciplina

CONTEÚDO PROGRAMÁTICO

Unidade 5: Paradigma Lógico 5.1. Introdução

5.2. Programação Lógica 5.3. Estudo de caso

(12)

Apresentação da Disciplina

METODOLOGIA

• Aulas teóricas expositivas.

• Aulas de exercícios com a participação dos alunos e com a orientação do professor.

• Recursos audiovisuais. • Aulas em laboratório.

(13)

Apresentação da Disciplina

MEIOS DE COMUNICAÇÃO

• Contato direto:

prcmalcher@gmail.com

• Disponibilização de Materiais e Fóruns:

(14)

Apresentação da Disciplina

AVALIAÇÃO

• Duas Avaliações (N1 e N2).

• NP1 = Prova + Listas de Exercícios (+ Ponto Extra)

• NP2 = Seminário + Prova + Exercícios (+ Ponto Extra)

Média = (N1 + N2)/2

Se média >= 7,0 e frequência >= 75%  Aprovado. Se média < 7,0 e frequência < 75%  Reprovado.

Se média < 7,0 e frequência > 75%  Exame.

O aluno submetido ao Exame será considerado aprovado se obtiver Nota Final >= 5,0.

(15)

Apresentação da Disciplina

BIBLIOGRAFIA BÁSICA

• SEBESTA, R. W. Conceitos de Linguagens de

Programação. 5a. Edição. São Paulo: Bookman, 2003.

• MELO, Ana Cristina Vieira de. SILVA, Flavio Soares

Correa da. Princípios de Linguagens de Programação. Edgard Blucher, 2003.

• VAREJÃO, Flavio. Linguagens de Programação.

(16)

Apresentação da Disciplina

(17)

Apresentação da Disciplina

BIBLIOGRAFIA COMPLEMENTAR

• NOONAN, Robert. TUCKER, Allen. Linguagens de

Programação. Mcgraw Hill Brasil, 2009.

• SCOTT, M.L. Programming Language Pragmatics. Second

Edition. Morgan Kaufmann, 2005.

• VILLAS, Marcos Vianna. VILLASBOAS, Luiz Felipe.

Programação - Conceitos, Técnicas e Linguagens. Ed. Campus.

• PRATT, T. W. ZELKOVIT, M. Programming languages: design

& implementation. Englewood Cliffs, N.J.: Prentice-Hall, 1995.

• PRICE, Ana Maria de Alencar. TOSCANI, Simão Sirineo.

Implementação de Linguagens de Programação. Série Livros didáticos 9. Bookman Companhia Ed., 2008.

(18)

Apresentação da Disciplina

Procurar estar presente na maioria das aulas

• Lembre-se: Alguns exercícios poderão compor a nota de alguma prova!

Se faltou, checar material no site e/ou com os

colegas de sala;

Dúvida em algum assunto ou aula? Pergunte

ao professor durante as aulas ou envie um

e-mail

• Sempre checo e-mails e procuro respondê-los o mais breve possível

(19)

PARADIGMAS DE LINGUAGENS

Prof. Paulo Malcher

prcmalcher@gmail.com

(20)

LP

INTRODUÇÃO

Na programação de computadores, uma

linguagem de programação (LP) serve como

meio de comunicação entre o indivíduo que

deseja resolver um determinado problema e o

computador escolhido para ajudá-lo na solução.

(21)

LP

INTRODUÇÃO

A LP deve fazer a

ligação entre o

pensamento humano

(muitas vezes de

natureza não estruturada) e a

precisão

requerida para o

processamento pela

máquina.

(22)

OBJETIVOS DE UMA LP

Auxiliar o programador no processo de

desenvolvimento de software. Isso inclui auxílio

no:

• Projeto • Implementação • Teste • Verificação e • Manutenção do software

(23)

DEFINIÇÃO

Uma LP é uma linguagem destinada para

ser usada por uma

pessoa

para expressar

um

processo

através do qual um

computador

possa resolver um

problema

.

Os

quatro

modelos

(paradigmas:

Imperativo

,

Orientado a Objeto

,

Funcional

e

Lógico

) de LP correspondem aos pontos

de vista dos quatro componentes citados.

A eficiência na construção e execução de programas depende da combinação dos quatro pontos de vista.

(24)

Para que se tornem operacionais, os

programas escritos em

linguagens de alto

nível

devem

ser

traduzidos

para

(25)

DEFINIÇÃO

Linguagem alto nível para linguagem de

máquina: Essa conversão é realizada

através de sistemas especializados -

compiladores ou interpretadores

-que aceitam (como entrada) uma

representação textual da solução de um

problema, expresso em uma

linguagem

fonte

, e produzem uma representação

do mesmo algoritmo expresso em outra

linguagem, dita

linguagem objeto.

(26)
(27)

RAZÕES PARA ESTUDAR OS CONCEITOS

DE

LINGUAGENS DE PROGRAMAÇÃO

• Aumento da capacidade de expressar ideias.

• Maior conhecimento para escolha de

linguagens apropriadas.

• Entender melhor a importância da

implementação.

• Maior capacidade para aprender novas

linguagens.

• Aumento da capacidade de projetar novas

linguagens

(28)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Aumento da capacidade de expressar

ideias:

• A Capacidade intelectual pode ser influenciada pelo poder expressivo da linguagem.

• Uma maior compreensão de uma LP pode aumentar nossa habilidade em pensar em como atacar os problemas.

(29)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Aumento da capacidade de expressar

ideias:

• Conhecimento amplo dos recursos de linguagem reduz as limitações no desenvolvimento de softwares

• Melhor compreensão das funções e implementação das estruturas de uma LP nos leva a usar a LP de modo a extrair o máximo de sua funcionalidade e eficiência.

(30)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Maior Conhecimento da Escolha da LP

apropriada:

• Escolher a melhor linguagem para um problema específico devido ao conhecimento de novos recursos é difícil para:

• Programadores antigos

(31)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Entender melhor a importância da

implementação:

Leva um entendimento do PORQUÊ das linguagens serem projetadas de determinada maneira.

• Ajuda no desenvolvimento de sistemas complexos.

• Melhora as escolhas que podemos fazer entre as construções de LP e as consequências das opções.

(32)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Maior capacidade para aprender novas

linguagens:

• Aprendizado contínuo é fundamental, a computação é uma ciência nova.

• Compreender os conceitos gerais das linguagens torna mais fácil entender como eles são incorporados na linguagem que está sendo aprendida.

(33)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Aumento da capacidade de projetar novas

linguagens:

Indicador de popularidade das LP - Tiobes (www.tiobe.com)

(34)
(35)
(36)

RAZÕES PARA ESTUDAR OS CONCEITOS DE

LINGUAGENS DE PROGRAMAÇÃO

Avanço global da comunicação:

• Nem sempre as linguagens mais populares

são melhores, por quê? • Imposição!!

• Por que existem várias linguagens de

programação?

(37)

ENUNCIADO

(38)

TRABALHO PRÁTICO DE PL

Objetivo:

estudo

mais

aprofundado

de

linguagens

de

programação

e

seus

paradigmas.

Realização em dupla ou trio (Depende do

número de alunos na turma)

(39)

ETAPA 1 – 25/08/2015

Formalização das Equipes

(40)

TEMAS

1.

Haskell

2.

Scheme

3.

APL – Funcional

4.

LISP

5.

Ada95

6.

SmallTalk -

7.

FORTRAN

8.

C#

9.

Visual Basic

10.

PHP

(41)

ETAPA II

Entrega de relatório técnico

• Cada equipe deve preparar um relatório técnico no formato de artigos da SBC contendo as seguintes informações (não necessariamente nesta ordem):

• Descrição da linguagem: histórico, classes de problemas indicados para uso, introdução geral à sintaxe e semântica dos comandos principais.

• Descrição de um pequeno exemplo introdutório (obtido de referência)

• Descrição das ferramentas (compiladores e/ou interpretadores e/ou IDEs – o que haver) para a linguagem.

• Visão Geral do Material Disponível sobre a Linguagem na World Wide Web

(42)

ETAPA II (CONTINUAÇÃO)

Entrega de relatório técnico

• Cada equipe deve preparar um relatório técnico no formato de artigos da SBC contendo as seguintes informações (não necessariamente nesta ordem):

• Exemplo: apresentação de um exemplo original escrito na linguagem e executado em ambiente real – descrição, telas que evidenciem a compilação (se aplicável) e execução, análise crítica sobre o exemplo.

• Análise critica sobre a linguagem.

(43)

ETAPA II (CONTINUAÇÃO)

Critérios para avaliação:

• Entrega fora do prazo: penalidade de 20%.

• Qualidade e correção da descrição da linguagem de programação: 30%

• Qualidade do exemplo original fornecido: complexidade, uso adequado das características da linguagem, qualidade da descrição, qualidade da análise crítica – 50%.

(44)

ETAPA III

Apresentação

• No período de 1, 3, 8 e 10 de ... serão realizadas as apresentações das linguagens de programação estudadas, conforme a ordem da distribuição das linguagens.

• Todas as equipes devem preparar apresentações sobre a linguagem com um exemplo simples da linguagem e descrições das ferramentas existentes. Além disso, deve ser preparada uma apresentação do exemplo original da equipe.

(45)

ETAPA III

Apresentação

• Duração máxima da apresentação básica: 30 minutos com exemplo.

• Critérios para avaliação (a média será obtida por observação do professor considerando todos os membros da equipe):

• Cumprimento do prazo de apresentação.

• Qualidade / legibilidade dos slides e material apresentado.

• Qualidade da demonstração do exemplo.

Referências

Documentos relacionados

Em nossa opinião, as demonstrações financeiras acima referidas apresentam adequadamente, em todos os aspectos relevantes, a posição patrimonial e financeira da Energisa Transmissão

Se eu morresse amanhã, viria ao menos Fechar meus olhos minha triste irmã; Minha mãe de saudades morreria. Se eu

Como a indústria da carne brasileira pode promover o desenvolvimento da pecuária e aumentar seu já importante papel na economia, sem contribuir para o desmatamento tanto no

A atribuição de incentivos financeiros à equipa multiprofissional depende da concretização dos critérios para atribuição das unidades contratualizadas (UC) referentes às

Somente na classe Aberta Jr e Sr, nas modalidades de Apartação, Rédeas e Working Cow Horse, que será na mesma passada dessas categorias e os resultados serão separados. O

Mestrado em: Nutrição Humana ou Nutrição Clínica ou Saúde Coletiva ou Ciências da Saúde ou Ciências ou Saúde ou Alimentos e Nutrição e Desenvolvimento na

AMU Análise Musical MTOB Música de Tradição Oral Brasileira. AMUA Análise Musical Avançada MUSITEC Música

Na faixa de mW, cuidado deverá ser tomado para que o dispositivo de medição não seja afetado por fluxos de ar, vibrações, e mudanças termais (o recipiente deverá ser o menos