Linguagens e Ambientes de Programação (2017/2018) - Departamento de Informática

Informação adicional: http://ctp.di.fct.unl.pt/miei/lap/

Descrição

Esta disciplina estuda as alternativas no desenho das linguagens de programação; compara e exercita algumas linguagens e paradigmas de programação relevantes; explica as técnicas gerais usadas no suporte à execução de programas.

Objectivos

Saber:
1 - Perceber as características e os cenários de utilização de um conjunto de linguagens de programação modernas: Caml, C, JavaScript, Java.
2 - Compreender a funcionalidade e a arquitectura dos ambientes de suporte à programação e execução de programas.
3 - Possuir uma visão global dos aspectos envolvidos desde a especificação até à execução de programas.

Fazer:
4 - Resolver problemas pequenos, mas característicos, usando bem as linguagens de programação abordadas, dentro dum ambiente de desenvolvimento moderno.
5 - Identificar as abstracções comuns e as diferenças de fundo entre diferentes linguagens de programação.
6 - Exprimir ou aproximar os mecanismos disponíveis numa dada linguagem de programação numa outra que não os possua como primitivos.

Programa

A – Ambientes de programação e execução
Interpretação. Máquinas Virtuais. Níveis de interpretação. Compilação. Ligação. Carregamento. Modelo de execução. Portabilidade. Segurança. Interoperabilidade. Ferramentas.

B - Linguagens procedimentais e funcionais
OCaml e C. Tipos: seu papel; verificação e inferência; polimorfismo; sobrecarga; tipificação estática e dinâmica. Estruturação em blocos: ligações; ambientes; resolução de nomes. Procedimentos e Funções: nomes locais e globais; parametrização; closures.

C - Linguagens baseadas em objectos
JavaScript e Java. Classes e protótipos. Ocultação. Subtipificação. Herança.

D - Linguagens de scripting e domínios específicos
JavaScript e Bash.

E - Técnicas de programação
Paradigmas de programação. Método indutivo em OCaml. Manipulação de apontadores em C. Modelação em JavaScript. Introdução à programação Web do lado do cliente.

F – Escolha duma linguagem
Fatores a considerar. Cenários.

Bibliografia Principal
Requisitos Prévios

Os alunos deverão ter realizado as unidades curriculares de Introdução à Programação e de Programação Orientada pelos Objectos.

Esforço do Aluno
  Horas por crédito 28
  Horas p/ semana Semanas Horas
Aulas práticas e laboratoriais   28.0
Aulas teóricas   42.0
Avaliação   4.0
Estudo   45.0
Orientação tutorial   3.0
Projectos e trabalhos   46.0
Total de Horas 168
ECTS 6.0