Plankalkül
Plankalkül é uma linguagem de programação criada pelo cientista alemão Konrad Zuse, entre 1942 e 1946, no desenvolvimento dos primeiros computadores. A linguagem é considerada de alto nível, mas só foi publicada amplamente em 1972; e o compilador em 1998. Uma implementação independente foi lançada em 2000 pela Universidade Livre de Berlim.
Plankalkül | |
---|---|
Paradigma | Procedural |
Surgido em | 1948 |
Criado por | Konrad Zuse |
Influenciada por | Begriffsschrift |
Influenciou | Superplan por Heinz Rutishauser, ALGOL 58[1] |
Desenvolvimento
editarKonrad Zuse construiu vários computadores de relés eletromagnéticos complexos, mas em 1945, a guerra destruiu tudo, exceto um modelo, o Z4. Após a destruição de seus equipamentos, Konrad mudou-se para uma cidade chamada Hintersteiner, onde começou a trabalhar sozinho em seu projeto para desenvolver a sua linguagem de programação, um projeto que começou em 1943 como uma proposta para sua tese de doutorado, que desenvolveu sua linguagem de programação Plankalkül.
Zuse, em 1948, publicou um artigo no Archiv der Mathematik - um jornal que publica trabalhos de alta qualidade em todas as áreas da matemática - mas sua publicação não produziu interesse académico. Heinz Rutishauser (co-fundador do ALGOL) disse: "A primeira tentativa de desenvolver uma linguagem algorítmica foi realizado em 1948 por K. Zuse. Sua notação foi geral, mas a proposta nunca alcançou a consideração que merece".
A linguagem era muito complementar a sua época de reprodução e teve alguns de seus recursos mais avançados na área de estruturas de dados. O tipo mais simples é o de um único bit, mas também construiu os tipos de números inteiros e reais. A linguagem tem três variáveis específicas para o desenvolvimento de um programa. Entre elas, podem-se destacar as letras V (passagem de parâmetros), Z (o armazenamento de valores intermediários) e R (ver resultados).
Implementação
editarUm dos maiores obstáculos para a implementação da linguagem Plankalkül ocorria devido ao fato da mesma utilizar uma sintaxe de difícil compreensão, ou seja, um determinado desenvolvedor demoraria muito tempo para compreender as sequências lógicas utilizadas no programa. Geralmente, as variáveis nessa determinada linguagem utilizavam aproximadamente quatro linhas. Na primeira linha, eram declaradas algumas das letras V, Z, ou R; na segunda linha, era declarado o índice da variável; na terceira, era declarado o componente da variável; e na quarta linha, declarava-se o tipo da variável, por exemplo, 5.0 (cinco bits). Todavia, podemos também encontrar exemplos de programas escritos de forma linearizada.[2]
Linguagem completa
editarAlém desses tipos mais comuns, o Planklakül incluiu também matrizes e registros. Pode-se resumir dizendo que a ideia incorporou muitas ideias importantes ao Plankalkül. Ao concluir seus algoritmos de trabalho, Konrad desenvolveu para classificação, testar a conectividade de gráficos para aritmética de inteiros (inclusive raiz quadrada); e até mesmo um jogo de xadrez, onde o artigo foi encontrado em uma seção de 60 páginas sobre como desenvolver a aplicação e outras. Infelizmente, a maioria destas coisas não foram conhecidas até 1972; o primeiro compilador foi desenvolvido em 1998; e uma posterior aplicação em 2000 na Universidade Livre de Berlim. Portanto, pode-se identificar a visão de longo prazo dele em uma declaração em que ele enfatizou a sua linguagem: "Depois de algum tempo, como a bela adormecida, ainda está para vir para a vida".
A linguagem era notavelmente completa para sua época de criação e tinha alguns de seus recursos mais avançados na área das estruturas de dados. O tipo mais simples era o bit único; e a partir dele eram construídos tipos para números inteiros e reais. O tipo real usava uma notação de dois e o esquema de "bit oculto", que é atualmente usado para evitar armazenar o bit mais significativo da parte fracionária normalizada de um valor. A linguagem Plankalkül possui três variáveis específicas para o desenvolvimento de um programa; entre elas, podemos destacar as letras V (passagem de parâmetros), Z (armazenamento de valores intermediários), e R (exibição de resultado).
- Ambiente da linguagem: Nunca implementada. Estruturas de dados avançadas: reais, arrays, records.
- Principais características:
- Esta linguagem de programação possui, entre outras coisas, indicações de atribuição e chamadas da função (sub-rotinas);
- Instruções condicionais;
- Aritmética de ponto flutuante;
- Matrizes (arrays);
- Operações matemáticas ou lógicas só podem ser aplicadas a variáveis do mesmo tipo;
- Tipos de dados compostos;
- Tratamento de exceção, dentre outras características.
- Vantagens de uso:
- Execução objetiva dirigida;
- Estruturas record hierárquicas;
- Aritmética de ponto flutuante;
- Estrutura de repetição (iteração);
- Tratamento de exceção;
- Programas são funções reutilizáveis;
- Variáveis não precisam ser especificadas em um lugar especial do ambiente de desenvolvimento;
- Funções não podem se repetir.
- Desvantagem de uso:
- Não é possível definir um nome qualquer para uma variável;
- Linguagem exclusiva para tratamento com números;
- Falta de uma sintaxe de fácil interpretação;
- Utilização de um layout bidimensional e unidimensional.
Atributos
editarEsta linguagem de programação possui, entre outras coisas, indicações de atribuição, chamadas da função (sub-rotinas), instruções condicionais, estrutura de repetição (iteração), aritmética de ponto flutuante, matrizes (arrays), tipos de dados compostos, tratamento de exceção, dentre outras características.
Seu criador não pretendia usar a linguagem nos sucessores de seu Z3, mas os eventos da Segunda Guerra Mundial forçaram o seu uso por muito tempo. Durante anos, esse trabalho permaneceu esquecido. Somente em 1972 foi publicado completamente. No contexto de uma tese, Plankalkül foi descrito e implementado em 1975 por J. Hohmann. No final dos anos 90, foram feitas implementações alternativas independentes (em 1998; e dois anos mais tarde, na universidade livre de Berlim), incluindo um editor de sintático.
Exemplo
editarAbaixo, temos um exemplo de um programa que calcula o valor máximo de três variáveis pela chamada a função max:
P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) => R0[:8.0] max(V0[:8.0],V1[:8.0]) => Z1[:8.0] max(Z1[:8.0],V2[:8.0]) => R0[:8.0] END P2 max (V0[:8.0],V1[:8.0]) => R0[:8.0] V0[:8.0] => Z1[:8.0] (Z1[:8.0] <V1[:8.0]) → V1[:8.0] => Z1[:8.0] Z1[:8.0] => R0[:8.0] END
Ver também
editar- ↑ Rojas, Raúl; Hashagen, Ulf (2002). The First Computers: History and Architectures. [S.l.]: MIT Press. p. 292. ISBN 978-0262681377. Consultado em 25 de outubro de 2013
- ↑ «A História Cronologica das Linguagens de Programação». 12 de maio de 2005. p. pag.38. Consultado em 4 de setembro de 2010. Arquivado do original em 10 de dezembro de 2007
Bibliografia
editar- Zuse, Konrad: Der Plankalkül. Gesellschaft für Mathematik und Datenverarbeitung. Nr. 63, BMBW – GMD – 63, 1972
- Genese.pdf
- Konrad Zuse e seu Plancalculus
- Konrad Zuse
- Knuth, D. E. & Pardo, L. T. [1980]. The early development of programming languages, apud A history of computing in the twentieth century (a collection of essays). London: Academic Press, 1980.
- Zuseacedido em 12 de março de 2005
- L1 seminário.pdf[ligação inativa]
- Conceitos de linguagem de programação, por Robert W. Sebesta (Capítulo 2)5ª edição pág 47 a 50.
Ligações externas
editar- Giloi, Wolfgang, K.: Konrad Zuse's Plankalkül: The First High-Level "non von Neumann" Programming Language. IEEE Annals of the History of Computing, Vol. 19, No. 2, 1997
- Implementierung und Plankalkül-Programme der FU Berlin
- Dokumentation der ersten Plankalkül-Implementierung Documentos sobre Plankalfũl