Conceitos de Linguagens de  
Programação  
Apresentação da Disciplina  
Edirlei Soares de Lima  
<edirlei@iprj.uerj.br>  
Introdução  
O que é uma linguagem de programação?  
É suficiente conhecer apenas uma linguagem de  
programação?  
Como uma linguagem de programação funciona?  
Como uma linguagem de programação é  
implementada?  
Objetivo da Disciplina  
Introduzir conceitos e princípios fundamentais de  
linguagens de programação com forte ênfase nos  
elementos sintáticos e semânticos de diferentes  
paradigmas de programação.  
Ao final do curso, os alunos devem ser capazes de:  
Conhecer o funcionamento e entender como linguagens  
de programação são definidas e implementadas;  
Escolher uma linguagem de programação de acordo com  
as suas necessidades;  
Programa da Disciplina  
Parte 1 Introdução a Linguagens de Programação  
Conceitos de Linguagens de Programação;  
Domínios de Programação;  
Critérios de Avaliação de Linguagens de Programação;  
Histórico da Evolução das Linguagens de Programação;  
Categorias e Classificação de Linguagens de Programação;  
Parte 2 Paradigmas de Linguagens de Programação  
Paradigma Imperativo (Linguagens Procedurais e Orientadas a Objeto);  
Paradigma Funcional;  
Paradigma Lógico;  
Vantagens e Desvantagens;  
Programa da Disciplina  
Parte 3 Sintaxe e Semântica  
Processo de Compilação;  
Descrição Léxica;  
Descrição Sintática;  
Métodos Formais;  
Descrição Semântica;  
Parte 4 Tipos de Dados  
Definição de dados;  
Representação Interna;  
Escopo de Definições;  
Bindings;  
Programa da Disciplina  
Parte 5 Expressões e Instruções  
Expressões e instruções de atribuição;  
Operadores sobrecarregados;  
Conversões de tipo;  
Parte 6 Linguagens de Programação Lógicas  
Apresentação de uma linguagem lógica;  
Definição de predicados;  
Resolução de problemas e aplicações usando programação lógica;  
Análise de independência e reusabilidade de programas lógicos;  
Programa da Disciplina  
Parte 7 Linguagens de Programação Funcionais  
Apresentação de uma linguagem funcional;  
Funções como valores de primeira ordem;  
Recursão simples e recursão de cauda usando programação funcional;  
Resolução de problemas e aplicações usando programação funcional;  
Análise da independência e reusabilidade de programas funcionais.  
Critério de Avaliação  
Avaliação Teórica:  
Provas teóricas envolvendo o conteúdo teórico e prático  
apresentado durante as aulas;  
Avaliação Prática:  
Trabalhos e exercícios desenvolvidos em grupo ou  
individualmente;  
Apresentação em aula;  
Critério de Avaliação  
G1:  
Prova: 7.5  
Trabalhos e Exercícios: 2.5  
G2:  
Prova: 7.5  
Trabalhos e Exercícios: 2.5  
MP = (G1 + G2)/2  
Critério de Avaliação  
Se a frequência nas aulas for < 75% o aluno será REPROVADO  
POR FALTA;  
Se a frequência nas aulas for ≥ 75%, então:  
Se MP ≥ 7.0, o aluno será aprovado e MF = MP;  
Se MP < 4.0, o aluno será reprovado e MF = MP;  
Se MP < 7.0 e MP ≥ 4.0, o aluno irá para o exame final e então:  
MF = (MP + PF)/2;  
Se MF < 5.0 o aluno será reprovado;  
Se MF ≥ 5.0 o aluno será aprovado;  
Controle de Turma  
Presença obrigatória!!!  
Chamada em qualquer momento da aula;  
Alunos com menos de 75% de presença serão reprovados  
automaticamente e não poderão fazer prova final  
(independente da nota);  
Não será aberta nenhuma exceção!  
Pré-Requisitos  
Introdução à Programação  
Algoritmos e Estrutura de Dados  
Material das Aulas  
Página do Curso:  
www.inf.puc-rio.br/~elima/clp/  
Contato:  
Bibliografia Principal  
Sebesta, Robert W. Conceitos de Linguagens de Programação.  
Editora Bookman, 2011.  
Bibliografia Complementar  
Watt, D. Programming Language Design  
Concepts. John Wiley and Sons, 2004.  
Mitchell, J. Foundations for Programming  
Languages. MIT Press, 1996.