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.