Evolução e Paradigmas da Programação
Classificado em Computação
Escrito em em
português com um tamanho de 6,8 KB
Evolução da Programação
Sequência de programação: um programa sequencial refere-se a quando um programa é executado em uma ordem, uma após a outra, até o final do programa.
Programação Estruturada
A Programação Estruturada é uma maneira de escrever programas de computador de forma clara. Ela utiliza apenas três estruturas: a seleção, sequência e iteração, sendo desnecessário o uso de declarações de transferência incondicional (GOTO, EXIT, FUNCTION, SUB, RETURN ou múltiplos EXITS).
O teorema do programa estruturado, demonstrado por Böhm-Jacopini, mostra que qualquer programa pode ser escrito usando apenas as três instruções de controle a seguir:
- Sequência
- Declaração condicional
- Loop de iteração (instruções) com condição no início
Programação Orientada a Objetos (OOP)
A Programação Orientada a Objetos é um paradigma de programação que usa objetos e suas interações para projetar aplicativos e programas de computador. É baseado em várias técnicas, incluindo herança, abstração, polimorfismo e encapsulamento. Seu uso foi popularizado no início dos anos 1990. Atualmente, há uma grande variedade de linguagens de programação que suportam a orientação a objetos.
A OOP difere da programação estruturada tradicional, na qual os dados e procedimentos são separados e independentes, e tudo o que se busca é o processamento de alguns dados de entrada para a saída de outros. A programação estruturada encoraja o programador a pensar principalmente em termos de procedimentos ou funções, e secundariamente nas estruturas de dados que lidam com esses procedimentos. Na programação estruturada, funções são escritas para processar dados únicos. Programadores que usam OOP, no entanto, definem objetos primeiro e depois enviam-lhes mensagens, pedindo-lhes para executar seus próprios métodos.
Programação Orientada a Eventos
A Programação Orientada a Eventos é um paradigma de programação em que tanto a estrutura quanto a implementação dos programas são determinados por eventos que ocorrem no sistema, definidos pelo usuário ou por outras causas. Para entender a programação orientada a eventos, opomos o que ela não é: na programação sequencial (ou estruturada), é o programador quem define qual será o fluxo do programa; na programação orientada a eventos, será o usuário (ou o que estiver operando o programa) quem dirigirá o fluxo.
Exemplos e Conceitos Fundamentais
Instância: A palavra instância significa solicitação ou insistência. Uma instância de um programa é uma cópia de uma versão executável do programa que foi carregada na memória do computador. Uma instância de um programa é tipicamente criada pelo usuário clicando em um ícone em uma GUI (Interface Gráfica do Usuário) ou inserindo um comando em uma CLI (Interface de Linha de Comando) e pressionando ENTER. Instâncias de programas também podem ser criadas por outros programas.
Construtor: Construtores são métodos ou funções que existem dentro de todos os objetos, ativados apenas no momento da criação do objeto. Os construtores são usados para definir os valores iniciais das propriedades do objeto. Diz-se também que um construtor é uma operação que cria um objeto e/ou inicializa seu estado.
Destruidor (Destructor): Um método que é ativado quando o objeto desaparece. O destruidor é único e serve para que um objeto execute uma ação (ou conjunto de ações) antes de terminar o seu ciclo de vida. Normalmente, os objetos deixarão de existir quando estiverem fora do escopo (ambiente) onde foram criados. Os destruidores são importantes porque são ativados automaticamente, liberando o programador da tarefa de liberar os recursos tomados pelo objeto.
Objeto: Estrutura complexa para armazenamento temporário de dados e sua administração. Combina atributos (espaço de armazenamento) e métodos (rotinas para administração).
Objeto Visual: Atributos de configuração + dados (gráficos visíveis, posição, etc.) + Métodos + Instância.
Classes: Os objetos são organizados em famílias claramente definidas. Uma família é reconhecida porque reúne um grupo de objetos que herdam elementos em comum. O modelo de programação visual, assim como a natureza, organiza os objetos em classes (famílias), e uma classe é o conjunto de objetos pertencentes à mesma família.
Princípios da OOP
- Encapsulamento: Consiste em reunir todos os elementos que podem ser considerados como pertencentes à mesma entidade no mesmo nível de abstração. Isso aumenta a coesão dos componentes do sistema. Alguns autores confundem este conceito com o princípio de ocultação, principalmente porque costumam ser usados juntos.
- Ocultação: Mantém escondidos os responsáveis pela manutenção dos processos internos necessários para realizar uma tarefa, dando ao programador acesso apenas ao que ele precisa. Isso oferece duas vantagens: o que o usuário faz pode ser controlado internamente (evitando erros), prevenindo um colapso por intervenção indesejada.
- Polimorfismo: É a propriedade que indica a possibilidade de uma entidade assumir muitas formas. Em termos práticos, o polimorfismo permite referir-se a objetos de classes diferentes utilizando o mesmo elemento de programa e realizar a mesma operação de formas diferentes, dependendo do objeto referenciado no momento.
- Herança: Um objeto é herdeiro de outro quando possui todas as suas propriedades e métodos e reconhece todos os seus eventos, podendo ainda desfrutar de propriedades, métodos e eventos adicionais. A herança define como os objetos derivam uns dos outros. Existe uma classe base e uma hierarquia de classes derivadas que podem herdar e alterar elementos da classe base conforme a necessidade.
Comunicação entre Objetos
Troca de Mensagens: Uma mensagem é essencialmente uma ordem enviada a um objeto para indicar a execução de alguma ação. A mensagem também é definida como a informação completa que o objeto remetente transmite a um objeto receptor.
Uma mensagem possui três elementos: o objeto receptor, o tipo de evento e os dados necessários para o receptor.