• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
 
D
EPARTAMENTO DE
E
NGENHARIA DE
C
OMPUTAÇÃO E
A
UTOMAÇÃO
I
NDUSTRIAL
F
ACULDADE DE
E
NGENHARIA
E
LÉTRICA E DE
C
OMPUTAÇÃO
U
NIVERSIDADE
E
STADUAL DE
C
AMPINAS
Programação de Sistemas:Uma Introdução
 Ivan Luiz Marques Ricarte
http://www.dca.fee.unicamp.br/~ricarte/
2003
Impressão em 14 de fevereiro de 2003
 
Sumário
1 Introdução 1
1.1 Programas e processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Desenvolvimento de
software
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1 Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.2 Programação estruturada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.3 Codicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3
Software
de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Estruturas de dados 10
2.1 Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.1 Escalares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.2 Ponteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.1.3 Tipos agregados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.1 Organização interna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.2 Aspectos de implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3 Busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.1 Busca linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.2 Busca binária . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.3 Usando rotinas de busca em C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4 Ordenação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.1 Ordenação por comparação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.2 Ordenação por contagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4.3 Usando rotinas de ordenação em C . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5 Tabelas
hash
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.6 Listas ligadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.6.1 Manipulação de nó . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.6.2 Manipulação de lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.6.3 Filas e pilhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.6.4 Manipulação de listas em C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.7 Árvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.8 Manipulação de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.8.1 Arquivos em C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.8.2 Acesso seqüencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.9 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35i
 
Programação de SistemasIvan L. M. Ricarte Sumário Sumário 
3 Compiladores 38
3.1 Gramáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.1.1 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.1.2 Denição formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.1.3 Classicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.1.4 Expressões regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.1.5 Gramáticas livres de contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.2 Análise léxica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.2.1 Autômatos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.2.2 Constrão do aumato finito o-determinístico . . . . . . . . . . . . . . . . . . . . 493.2.3 Conversão para aumato finito determinístico . . . . . . . . . . . . . . . . . . . . . . 523.2.4 Minimização de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3 Analisadores léxicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.3.1 Geradores de analisadores léxicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.2 Especificação das sentenças regulares . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.3 Integração com código C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.3.4 Geração da aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.4 Análise sintática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.4.1 Reconhecimento de senteas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.4.2 Derivações canônicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.4.3 Árvores gramaticais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.5 Analisadores sintáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.5.1 Analisador sintático preditivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.5.2 Analisador de deslocamento e redão . . . . . . . . . . . . . . . . . . . . . . . . . . 703.5.3 Geradores de analisadores sintáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.6 Geração de código e otimização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.6.1 Análise semântica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.6.2 Geração de código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.6.3 Otimização de código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4 Carregadores e ligadores 92
4.1 Montadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.1.1 Programas
assembly
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.1.2 Montagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.1.3 Formato do dulo objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.2 Montagem e carregamentocombinados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2.1 Montadores em dois passos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2.2 Montagem e carregamento
assemble and go
. . . . . . . . . . . . . . . . . . . . . . . 1054.3 Carregamento absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.4 Relocação e Ligação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.4.1 Estruturas de dados adicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.5 Carregamento e ligação combinados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104.5.1 Algoritmos do carregador de ligação direta . . . . . . . . . . . . . . . . . . . . . . . 1114.5.2 Exemplo de aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144.6 Ligadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.6.1 Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.7 Carregamento e Ligação Dimicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121c
 
19992003 DCA/FEEC/UNICAMP ii
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...