UNIVERSIDADE FEDERAL DO PARÁ Centro de Ciências Exatas e

Propaganda
UNIVERSIDADE FEDERAL DO PARÁ
Centro de Ciências Exatas e Naturais
Pós-Graduação em Ciência da Computação - PPGCC
Nome: Programação de Computadores
Ementa:
A disciplina objetiva apresentar e exercitar as características fundamentais
de cada paradigma de programação relevante hoje em dia, objetivando
oferecer elementos ao aluno para realizar a escolha adequada da linguagem
para uma dada situação.
Bibliografia
Básica:
WATT, David (with contributions by Willian Findlay), Programming Language Design
Concepts, Chichester,England: John Wiley & Sons Ltda, 2004, 473p.
Complementar:
GHEZZI, Carlo. Programming Languages Concepts (3rd Edition). New
York: John Wiley & Sons Ltda, 1998, 427p.
MELO, Ana Cristina Vieira de; SILVA, Flávio Soares Corrêa da. Princípios de
Linguagens de Programação. São Paulo: Editora Edgard Blücher, 2003, 211p.
PROGRAMA:
PARTE I – CONCEITOS FUNDAMENTAIS DE LINGUAGENS DE
PROGRAMAÇÃO
1 - Valores e tipos: tipos primitivos, compostos, recursivos, sistemas de tipos, questões
de implementação.
2 - Variáveis e armazenamento: variáveis simples e compostas, cópia e referência
semântica, tempo de vida, ponteiros, expressões com efeitos colaterais, questões de
implementação.
3 – Vinculação e escopo: vinculação e ambientes, escopo, declarações, blocos.
4 – Abstração de procedimento: funções e procedimentos, parâmetros e argumentos,
questões de implementação
PARTE II - CONCEITOS AVANÇADOS DE LINGUAGENS DE PROGRAMAÇÃO
1 - Abstração de dados: unidades de programas, blocos e encapsulamento, tipos
abstratos, objetos e classes, questões de implementação.
2 - Abstração genérica: unidades genéricas e instanciação, parâmetros tipo e classe,
questões de implementação.
3 - Sistemas de tipos: polimorfismo de inclusão, polimorfismo de parâmetro,
sobrecarga, conversão de tipos,
4 – Fluxos de controle: seqüenciadores, desvios, escapes, exceções, questões de
implementação.
5 – Concorrência: programas e processos, problemas com concorrência, interação entre
processos, primitivas de concorrência, abstrações de controle concorrentes.
PARTE III – PARADIGMAS
1 Programação imperativa: conceitos-chave, estudos de caso: C e ADA.
2 Programação Orientada a objetos: conceitos-chave, estudos de caso: C++, Java,
Ada95.
3 – Programação concorrente: conceitos-chave, estudos de caso: Ada95, Java.
4 – Programação Funcional: conceitos-chave, estudos de caso: Haskell, Lisp.
5 – Programação em lógica: conceitos-chave, estudos de caso: Prolog.
6 – Linguagens de Scripting: conceitos-chave, estudo de caso: Python.
PARTE IV – Conclusões
1 - Seleção de uma linguagem de programação: critérios, avaliação.
2 – Projeto de uma linguagem de programação: seleção de conceitos, regularidade,
simplicidade, eficiência, sintaxe, ciclos de vida de linguagens, tendências futuras.
Download