Zusammenfassung der Ressource
Modularização
Anmerkungen:
- Os primeiros programas
consistiam de um único bloco monolítico de código pois a divisão de
programas em vários blocos exige um sistema de gerenciamento de memória
e consome mais recursos. O programador devia utilizar um pequeno
número de variáveis, as quais cumpriam diferentes papéis ao longo do
programa, com o intuito de economizar memória
- Abstrações
Anmerkungen:
- Abstração é um processo importante em todas as áreas do conhecimento.
Abstração é fundamental para o raciocínio e resolução de problemas em
geral porque é impossível representar qualquer fenômeno da realidade em
toda a sua riqueza de detalhes. Em outras palavras, devemos sempre nos
concentrar nos aspectos essenciais do problema e ignorar os aspectos irrelevantes
para a resolução do problema em questão. Caso contrário, a tarefa
de representar a realidade se torna impraticável e intratável.
- Tipos de Abstrações
Anmerkungen:
- Programas são conjuntos de instruções descrevendo como realizar processos
para manipular, alterar e produzir dados. Para se poder criar programas,
o conjunto de instruções da LP deve ser capaz de descrever dados
e descrever como realizar processos.
- Abstrações de Processos
Anmerkungen:
- são abstrações sobre o fluxo de controle
do programa.
- Abstrações de Dados
Anmerkungen:
- são abstrações sobre as estruturas de dados
do programa
- Técnicas de Modularização
Anmerkungen:
- Técnicas de modularização foram desenvolvidas com o propósito principal
de dar apoio à programação de sistemas de grande porte, embora também
sejam úteis à programação de sistemas de pequeno porte.
- Subprogramas
Anmerkungen:
- O primeiro avanço em direção à modularização de programas foi a cria-
ção do conceito de subprogramas. Eles permitem segmentar um programa
em vários blocos logicamente relacionados. Subprogramas também servem
para evitar que trechos de código muito semelhantes tenham de ser
completamente reescritos simplesmente por que operam sobre dados diferenciados.
Isso pode ser feito através dos mecanismos de parametrização
dos subprogramas.
- Perspectivas do Usuário e do Implementador de Subprogramas
Anmerkungen:
- É interessante analisar funções e procedimentos segundo as perspectivas
do usuário da abstração e do implementador da abstração [WATT, 1990].
Uma função abstrai uma expressão a ser avaliada. Ela produz um valor
como resultado. O usuário da função se importa apenas com o resultado,
não se interessando com o modo como ele foi obtido. A
- Parâmetros
Anmerkungen:
- Parâmetros facilitam o processo de aplicação de dados diferenciados a
chamadas distintas de um subprograma. Sem o uso de parâmetros, a utilidade
de subprogramas se concentraria na segmentação de código em trechos
menores. O reuso de subprogramas seria muito mais difícil pois haveria
redução de redigibilidade, legibilidade e confiabilidade.
- Correspondência entre Parâmetros Formais e Parâmetros Reais
Anmerkungen:
- Existem duas formas de correspondência entre a lista de parâmetros formais
na declaração do subprograma e a lista de parâmetros reais na chamada
do subprograma. A
- Passagem de Parâmetros
Anmerkungen:
- Passagem de parâmetros é o processo no qual os parâmetros formais assumem
seus respectivos valores durante a execução de um subprograma.
Também faz parte do processo de passagem de parâmetros a eventual atualização
de valores dos parâmetros reais durante a execução do subprograma.
- Direção da Passagem dos Parâmetros
Anmerkungen:
- A direção da passagem de parâmetros pode ser unidirecional de entrada,
unidirecional de saída e bidirecional de entrada e saída. Na unidirecional
168
de entrada o valor do parâmetro formal assume o valor passado pelo parâmetro
real, mas os valores eventualmente atribuídos ao parâmetro formal
no subprograma não são repassados ao parâmetro real.
- Mecanismos de Implementação da Passagem de Parâmetros
Anmerkungen:
- Existem dois mecanismos para a implementação da passagem de parâmetros.
O mecanismo de passagem por cópia envolve a criação de uma cópia
do parâmetro real no ambiente local do subprograma. O parâmetro formal
designa essa cópia durante a execução do subprograma. O mecanismo de
passagem por referência envolve a criação de uma referência ao parâmetro
real no ambiente local do subprograma
- Momento da Passagem de Parâmetros
Anmerkungen:
- LPs podem definir diferentes momentos nos quais se deve avaliar o parâmetro
real para uso no subprograma. No modo normal (eager) a avaliação
ocorre no momento da chamada do subprograma. No modo por
nome (by name) a avaliação ocorre em todos os momentos em que o
parâmetro formal é usado. No modo preguiçoso (lazy) a avaliação ocorre
no primeiro momento em que o parâmetro formal é usado.
- Verificação de Tipos dos Parâmetros
Anmerkungen:
- Algumas LPs não verificam se o número e tipo dos parâmetros na chamada
do subprograma são compatíveis com o número e tipo dos parâme-
178
tros declarados no cabeçalho do subprograma e utilizados no seu corpo.
Nessas LPs só se pode verificar se uma determinada operação do subprograma
pode ser executada no momento em que ela for realizada. Tal postura
retarda a descoberta de erros e tende a produzir programas menos
robustos.
- Tipos de Dados
Anmerkungen:
- A criação de novos tipos de dados é uma forma de modularização usada
para implementar abstrações de dados. Tipos de dados permitem agrupar
dados correlacionados em uma mesma entidade computacional.
- Tipos de Dados Anônimos
Anmerkungen:
- Tipos anônimos são definidos exclusivamente durante a criação de variá-
veis e definição de parâmetros. O
- Tipos de Dados Simples
Anmerkungen:
- A idéia fundamental relacionada a essa técnica de modularização é combinar
um grupo de dados relacionados em uma única entidade nomeada, a
qual permite manipulá-los como um todo.
- Tipos Abstratos de Dados
Anmerkungen:
- Conceitualmente, tipos abstratos de dados (TADs) são conjuntos de valores
que apresentam um comportamento uniforme definido por um grupo
de operações (geralmente, um grupo de constantes iniciais e um conjunto
de funções e procedimentos). O conjunto de valores é definido indiretamente
através da aplicação sucessiva das operações, começando pelas
constantes.
- Pacotes
Anmerkungen:
- A modularização através de subprogramas e tipos ainda não é totalmente
suficiente para atender as demandas existentes na construção de grandes
sistemas. Sistemas construídos com uso exclusivo dessas técnicas acabam
apresentando baixa granularidade, deixando as entidades do programa
espalhadas pelo código, o que dificulta sua identificação.
- Pacotes em C++
- Pacotes em JAVA