UNIVERSIDADE I-EDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMATICA

UNIVERSIDADE I-EDERAL DO RIO GRANDE DO SUL
INSTITUTO DE INFORMATICA
CURSO DE POS-GRADUCAO EM CIENCIA DA COMPUTACAO
Programac5o Funcional Usando Java
por
JORGE JUAN ZAVALETA GAVIDIA
u
T
FR
G
s
SABi
Dissertacao submetida a avaliacao, como requisito parcial para
a obtencdo do grau de Mestre em
Ciéncia da Computacdo
Prof. Dr. Paulo Alberto de Azeredo
Orientador
Porto Alegre, julho de 1997
UFRGS
INSTITUTO DE INFORMATICA
BIBLIOTECA
Zavaleta Gavidia. Jorge Juan
Programacdo funcional usando Java / por Jorge Juan
Zavaleta Gavidia.- Porto Alegre: CPGCC da UFRGS. 1997.
145f.:
Dissertacao (mestrado) - Universidade Federal do Rio
Grande do Sul. Curso de POs-graduacdo em Ciencia da Compu-
tacao. Porto alegre, BR - RS, 1997. Orientador: Azeredo, Paulo
Alberto.
1. Java. 2. Orientacdo a Objetos. 3. Linguagem funcional.
4. Interpretador Lisp. 5. Construtor de funcOes Java. I. Azeredo.
Paulo Alberto. II. Titulo.
(
CC) -
OeuAeeloS
5
n
-
)4A V
( e
I\J
q
AC-F6 05
tq
C_
)
E
g
11
2
‘C* U NCiel
UFtiuS
INSTITUT3 DE INFORMATICA
RIBLIOTECA
N..
CH,5MAJ
(0
1
cba-A
v
(043)
ORIGtiv----,
LIMA:
I
0-- /q+
FUNDO:
NM.:
I \
-LT:
2
CIP - CATALOGACAO NA PUBLICACAO
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
Reitor: Profa. Wrana Panizzi
PrO-Reitor de POs-Graduacao: Prof. Jose Carlos Ferraz Hennemann
Diretor do Instituto de Informatica: Prof. Roberto Tom Price
Coordenador do CPGCC: Prof. Flavio Wagner
Bibliotecaria-Chefe do Instituto de Informatica: Zita Prates de Oliveira
3
Agradecimentos
Ao longo do processo de levantamento de informaciies, pesquisas e compilacao
de id6ias que nortearam este trabalho. muitas amizades foram criadas e muitos contatos
foram feitos, a estas pessoas meu muito obrigado pela colaboracdo.
Aqueles que auxiliaram na minha lapidacdo e desespero, afirmo que o caminho
foi drduo e penoso. mas recompensador.
Aos grandes colegas e amigos do CPGCC/UFRGS pela excelente amizade
consolidada neste perk:do.
Aos funciondrios da biblioteca, dos laboratOrios e da secretaria pela atencdo
dispensada.
Aos colegas da Universidad Nacional de Trujillo. da escola de Maternaticas no
Peru, pelo incentivo dado para fazer Mestrado no II da UFRGS.
Ao corpo docente do Curso de POs-Graduacdo em Ciencia da Computacdo do
Instituto de Informatica da Universidade Federal do Rio Grande do Sul (UFRGS), em
especial a meu orientador, pelo apoio e pelas sugestOes que muito me auxiliaram na
elaboracilo deste trabalho.
Ag,radeco tambem ao CNPq pela bolsa de estudos concedida ao
longo do Curso.
Em especial dedico este trabalho a meus pais
Andres
e
Alejandrina
pelos
ensinamentos, dedicacdo incansavel e incentivo constante durante toda minha vida. Aos
meus irmdos,
Guillermo, Victor, Oswaldo, Rosa, Ivan, Cesar e Andres Jr.,
e a minha
querida sobrinha
Monique Maribelle
pelo constante apoio moral dado desde o Peru.
atrav6s do telefone. A todos eles muito obrigado.
Jorge Juan
4
Sumario
Lista de Abreviaturas
7
Lista de Figuras
8
Lista de Tabelas
9
Resumo
10
Abstract
12
1 Introducao
14
2 Introducao a linguagem Java
17
2.1 Caracteristicas de Java
18
2.1.1 Simples
18
2.1.2 Orientada a objetos
19
2.1.3 Robusta
20
2.1.4 Segura
20
2.1.5 Arquitetura Neutra
21
2.1.6 Portatil
21
2.1.7 Alto desempenho
21
2.1.8 Multiprocessos
22
2.1.9 Diniimica
23
2.2 0 sistema base Java
23
2.3 0 ambiente Java
24
2.4 Java simples e familiar
24
2.4.1 Principais caracteristicas da linguagem Java
24
2.4.1.1 Tipos de dados primitivos
24
2.4.1.1.1 Dados de tipo numeric°
24
2.4.1.1.2 Dados de tipo Caracter
25
2.4.1.1.3 Dados de tipo booleano
25
2.4.1.2 Operadores aritmeticos e relacionais
25
2.4.1.3 Arrays
25
2.4.1.4 Strings
26
2.4.1.5 InterrupcOes multi niveis
27
2.4.1.6 Gerencia de mem6ria e coletor de lixo
27
2.4.1.7 0 coletor de lixo de segundo piano
28
2.4.1.8 Caracteristicas removidas de C e C++
29
2.4.1.8.1 typedef, define, e preprocessadores
29
2.4.1.8.2 Estruturas e uni
-
Oes
29
2.4.1.8.3 FuncOes
30
2.4.1.8.4 Heranca multipla
31
2.4.1.8.5 DeclaracOes goto
31
2.4.1.8.6 Operadores overloading
32
2.4.1.8.7 CoacOes automaticas
32
2.4.1.8.8 Ponteiros
32
2.5 Java a orientada a objetos
33
2.6 A tecnologia de objetos em Java
33
2.7 0 que sao objetos?
34
2.8 Bases de objetos
34
2.8.1 Classes
35
5
2.8.2 Instanciar urn objeto de sua classe
35
2.8.3 Construtores
36
2.8.4 Metodos e mensagens
37
2.8.5 Finalizadores
38
2.8.6
"Subclass*"
39
2.8.7 Controle de acesso
39
2.8.8 Variaveis de classe e metodos de classe
40
2.8.9 Metodos abstratos
41
2.9 Java e de arquitetura neutra, portatil e robusta
42
2.9.1 Arquitetura Neutra
43
2.9.2 Bytecodes
43
2.9.3 Portatil
43
2.9.4 Robusta
44
2.9.4.1 Tempo de compilacao e verificacdo em tempo de execucao
44
2.10 Java e interpretada e dinamica
45
2.10.1 Carga dinarnica e obrigatOria
46
2.10.2 0 problema da superclasse fragil
46
2.10.3 Resolvendo o problema da superclasse fragil
46
2.10.4 Interfaces da linguagem Java
47
2.10.5 RepresentacOes em tempo de execucao
47
2.11 Seguranca em Java
47
2.11.1 Alocacao de memOria e arranjo
48
2.11.2 Processo de Verificacdo dos bytecodes
48
2.11.2.1 0 verificador de bytecodes
49
2.11.3 Verificacao de seguranca no carregador bytecode
49
2.11.4 Seguranca de Java no pacote para redes
50
2.12 Multiprocessos em Java
50
2.12.1 Processos no nivel da linguagem Java
51
2.12.2 Sincronizacdo de processos integrados
51
2.12.3 Suporte de multiprocessor
52
2.13 Desempenho e comparacao
52
2.13.1 Desempenho
52
2.13.2 A linguagem Java comparada
53
2.14 Os maiores beneficios de Java
54
3 Programacäo Funcional
55
3.1 Porque Programacäo Funcional?
56
3.2 0 estilo de programacao imperativa
57
3.3 0 estilo de programacao orientada a objetos
59
3.4 0 estilo de programacao funcional
60
3.5 Vantagem das linguagens de programacao funcional
60
3.6 Desvantagens das linguagens de programacao funcional
62
3.7 FuncOes matematicas
63
3.8 Um programa Funcional
65
3.8.1 Definicao de FuncOes
65
3.8.2 Composicdo funcional
68
3.8.3 A expressao inicial
69
3.9 Avaliacao de urn programa funcional
69
1 / 146 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !