História (1978): Podemos nos Libertar do Estilo de von Neumann?

Anos 70, quando os mainframes e as linguagens procedurais FORTRAN e COBOL reinavam. A complexidade nos negócios aumentava e o mundo da computação parecia estar em um beco sem saída, quando o artigo abaixo foi publicado. Era preciso um novo paradigma e os questionamentos emergiam de todos os lados. Uma nova concepção de software surgiria em 1979, com a linguagem C e o paradigma de Orientação a Objetos. Mas nunca nos libertamos da Máquina de von Neumann. Isso virá um dia com a computação quântica, que ainda dá seus primeiros passos.

Uma máquina de von Neumann, projetada pelo físico e matemático John von Neumann (1903–1957) é um projeto teórico para um computador de uso geral. Uma máquina de von Neumann consiste em um processador central (dir.) com uma unidade lógica/aritmética (ULA), uma unidade de controle e uma memória (esq.).

* * *

A programação pode se libertar do estilo de von Neumann? Um estilo funcional e sua álgebra de programas

Resumo

As linguagens de programação convencionais estão ficando cada vez maiores, mas não mais fortes. Defeitos inerentes ao seu nível mais básico as tornam inchadas e fracas: seu estilo primitivo de programação ‘palavra-por-vez’ herdado de seu ancestral comum – o computador de von Neumann; seu acoplamento íntimo da semântica a transições de estado; sua divisão da programação em um mundo de expressões e um mundo de declarações; sua incapacidade de usar eficazmente formas combinantes poderosas para construir novos programas a partir dos existentes; e sua falta de propriedades matemáticas úteis para raciocinar sobre programas.

Um estilo funcional alternativo de programação baseia-se no uso de formas combinantes para a criação de programas. Os programas funcionais lidam com dados estruturados, são frequentemente não repetitivos e não recursivos, são construídos hierarquicamente, não nomeiam seus argumentos e não exigem que o mecanismo complexo de declarações de procedimento se torne aplicável de forma geral. Formas combinantes podem usar programas de alto nível para construir outros programas de nível ainda mais alto, em um estilo não possível em linguagens convencionais.

Uma álgebra de programas cujas variáveis ​​abarcam todo um programa e cujas operações são formas combinantes é relacionadas ao estilo funcional de programação. Essa álgebra pode ser usada para transformar programas e resolver equações cujas “incógnitas” são também programas como as transformações de equações na álgebra do ensino médio. Essas transformações são dadas por leis algébricas e são executadas na mesma linguagem em que os programas são escritos. As formas combinantes são escolhidas não apenas por seu poder de programação, mas também pelo poder das leis algébricas associadas a elas. Teoremas gerais dessa álgebra fornecem o comportamento detalhado e as condições de término [halting conditions] para grandes classes de programas.

Uma nova classe de sistemas de computação usa o estilo de programação funcional tanto em sua linguagem de programação quanto em suas regras de transição de estado. Ao contrário das linguagens de von Neumann, esses sistemas têm semântica fracamente acoplada a estados – apenas uma transição de estado ocorre por computação principal.

Ver transcrição do artigo original em Association for Computing Machinery.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s