Conceitos de Linguagem de Programação

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Robert W. Sebesta
Edition: 9
Year: 2011

Language: Portuguese
Pages: 775
City: Porto Alegre
Tags: programming

Conceitos de Linguagens de Programação
Prefácio
Sumário
Capítulo 1. Aspectos Preliminares
1.1 Razões para estudar conceitos de linguagens de programação
1.2 Domínios de programação
1.3 Critérios de avaliação de linguagens
1.4 Influências no projeto de linguagens
1.5 Categorias de linguagens
1.6 Trade-offs no projeto de linguagens
1.7 Métodos de implementação
1.8 Ambientes de programação
Capítulo 2. Evolução das Principais Linguagens de Programação
2.1 Plankalkül de Zuse
2.2 Programação de hardware mínima: pseudocódigos
2.3 O IBM 704 e Fortran
2.4 Programação funcional: LISP
2.5 O primeiro passo em direção à sofisticação: ALGOL 60
2.6 Informatizando os registros comerciais: COBOL
2.7 O início do compartilhamento de tempo: BASIC
2.8 Tudo para todos: PL/I
2.9 Duas das primeiras linguagens dinâmicas: APL e SNOBOL
2.10 O início da abstração de dados: SIMULA 67
2.11 Projeto ortogonal: ALGOL 68
2.12 Alguns dos primeiros descendentes dos ALGOLs
2.13 Programação baseada em lógica: Prolog
2.14 O maior esforço de projeto da história: Ada
2.15 Programação orientada a objetos: Smalltalk
2.16 Combinando recursos imperativos e orientados a objetos: C++
2.17 Uma linguagem orientada a objetos baseada no paradigma imperativo: Java
2.18 Linguagens de scripting
2.19 Uma linguagem baseada em C para o novo milênio: C#
2.20 Linguagens híbridas de marcação/programação
Capítulo 3. Descrevendo
3.1 Introdução
3.2 O problema geral de descrever sintaxe
3.3 Métodos formais para descrever sintaxe
3.4 Gramáticas de atributos
3.5 Descrevendo o significado de programas: semântica dinâmica
Capítulo 4. Análise Léxica e Sintática
4.1 Introdução
4.2 Análise léxica
4.3 O problema da análise sintática
4.4 Análise sintática descendente recursiva
4.5 Análise sintática ascendente
Capítulo 5. Nomes, Vinculações e Escopos
5.1 Introdução
5.2 Nomes
5.3 Variáveis
5.4 O conceito de vinculação
5.5 Escopo
5.6 Escopo e tempo de vida
5.7 Ambientes de referenciamento
5.8 Constantes nomeadas
Capítulo 6. Tipos de Dados
6.1 Introdução
6.2 Tipos de dados primitivos
6.3 Cadeias de caracteres
6.4 Tipos ordinais definidos pelo usuário
6.5 Tipos de matrizes
6.6 Matrizes associativas
6.7 Registros
6.8 Uniões
6.9 Ponteiros e referências
6.10 Verificação de tipos
6.11 Tipagem forte
6.12 Equivalência de tipos
6.13 Teoria e tipos de dados
Capítulo 7. Expressões e Sentenças de Atribuição
7.1 Introdução
7.2 Expressões aritméticas
7.3 Operadores sobrecarregados
7.4 Conversões de tipos
7.5 Expressões relacionais e booleanas
7.6 Avaliação em curto-circuito
7.7 Sentenças de atribuição
7.8 Atribuição de modo misto
Capítulo 8. Estruturas de Controle no Nível de Sentença
8.1 Introdução
8.2 Sentenças de seleção
8.3 Sentenças de iteração
8.4 Desvio incondicional
8.5 Comandos protegidos
8.6 Conclusões
Capítulo 9. Subprogramas
9.1 Introdução
9.2 Fundamentos de subprogramas
9.3 Questões de projeto para subprogramas
9.4 Ambientes de referenciamento local
9.5 Métodos de passagem de parâmetros
9.6 Parâmetros que são subprogramas
9.7 Subprogramas sobrecarregados
9.8 Subprogramas genéricos
9.9 Questões de projeto para funções
9.10 Operadores sobrecarregados definidos pelo usuário
9.11 Corrotinas
Capítulo 10. Implementando Subprogramas
10.1 A semântica geral de chamadas e retornos
10.2 Implementando subprogramas “simples”
10.3 Implementando subprogramas com variáveis locais dinâmicas da pilha
10.4 Subprogramas aninhados
10.5 Blocos
10.6 Implementando escopo dinâmico
Capítulo 11. Tipos de Dados Abstratos e Construções de Encapsulamento
11.1 O conceito de abstração
11.2 Introdução à abstração de dados
11.3 Questões de projeto para tipos de dados abstratos
11.4 Exemplos de linguagem
11.5 Tipos de dados abstratos parametrizados
11.6 Construções de encapsulamento
11.7 Nomeando encapsulamentos
Capítulo 12. Suporte para a Programação Orientada a Objetos
12.1 Introdução
12.2 Programação orientada a objetos
12.3 Questões de projeto para programação orientada a objetos
12.4 Suporte para programação orientada a objetos em Smalltalk
12.5 Suporte para programação orientada a objetos em C++
12.6 Suporte para programação orientada a objetos em Java
12.7 Suporte para programação orientada a objetos em C#
12.8 Suporte para programação orientada a objetos em Ada 95
12.9 Suporte para programação orientada a objetos em Ruby
12.10 Implementação de construções orientadas a objetos
Capítulo 13. Concorrência
13.1 Introdução
13.2 Introdução à concorrência no nível de subprograma
13.3 Semáforos
13.4 Monitores
13.5 Passagem de mensagens
13.6 Suporte de Ada para concorrência
13.7 Linhas de execução em Java
13.8 Linhas de execução em C#
13.9 Concorrência no nível de sentença
Capítulo 14. Tratamento de Exceções e Tratamento de Eventos
14.1 Introdução ao tratamento de exceções
14.2 Tratamento de exceções em Ada
14.3 Tratamento de exceções em C++
14.4 Tratamento de exceções em Java
14.5 Introdução ao tratamento de eventos
14.6 Tratamento de eventos com Java
Capítulo 15. Linguagens de Programação Funcional
15.1 Introdução
15.2 Funções matemáticas
15.3 Fundamentos das linguagens de programação funcional
15.4 A primeira linguagem de programação funcional: LISP
15.5 Uma introdução a Scheme
15.6 COMMON LISP
15.7 ML
15.8 Haskell
15.9 Aplicações de linguagens fun
15.10 Uma comparação entre linguagens funcionais e imperativas
Capítulo 16. Linguagens de Programação Lógica
16.1 Introdução
16.2 Uma breve introdução ao cálculo de predicados
16.3 Cálculo de predicados e prova de teoremas
16.4 Uma visão geral da programação lógica
16.5 As origens do Prolog
16.6 Os elementos básicos do Prolog
16.7 Deficiências do Prolog
16.8 Aplicações de programação lógica
Referências
Índice