Niklaus Wirth não procurou criar uma linguagem capaz de fazer tudo. De Pascal a Oberon, colocou a pergunta inversa: qual é o menor conjunto de conceitos que permite programar claramente, verificar as estruturas essenciais e construir um sistema completo?
Esta procura produziu linguagens, compiladores, sistemas operativos e computadores experimentais. Wirth queria testar as ideias como um todo. O valor de uma linguagem aparece nos programas que permite organizar, na qualidade das ferramentas e na facilidade com que um leitor compreende o resultado.
Porque a estrutura dos programas se torna um problema
Niklaus Emil Wirth nasceu em 1934 em Winterthur, na Suíça. Estudou eletrónica na ETH Zurich, obteve um mestrado na Université Laval, no Canadá, e doutorou-se em Berkeley em 1963.
Depois ensinou em Stanford, num ambiente marcado pelos debates sobre ALGOL. O sucessor ALGOL 68 tornou-se muito ambicioso. Wirth preferiu uma evolução mais limitada e participou em ALGOL W. Dessa experiência retirou um princípio: cada funcionalidade deve reforçar um modelo coerente; caso contrário, a dificuldade passa do criador da linguagem para todos os utilizadores.
Pascal liga algoritmos e estruturas de dados
De regresso à Suíça, Wirth entrou na ETH em 1968 e desenvolveu Pascal, cuja primeira definição surgiu em 1970. Blocos, procedimentos e funções tornam visível a organização do cálculo; o sistema de tipos distingue valores e permite arrays, registos, conjuntos e ponteiros.
A linguagem era suficientemente pequena para os estudantes compreenderem os princípios e para um compilador poder ser implementado num contexto universitário. Uma P-machine abstrata facilitava a adaptação a vários computadores.
O título Algorithms + Data Structures = Programs exprime a ligação central: um algoritmo não existe independentemente dos dados. Escolher lista, array ou árvore altera operações, custos e clareza.
A história de Pascal acompanha a difusão no ensino e nos microcomputadores. A contribuição própria de Wirth foi o projeto pedagógico: aprender a construir programas tornando explícitas as suas estruturas.
As qualidades de Pascal revelam também limites
O sucesso ultrapassou rapidamente o ensino. Surgiram compiladores e dialetos, expondo necessidades como compilação separada, bibliotecas, acesso ao sistema e organização de programas desenvolvidos por várias pessoas.
UCSD Pascal popularizou P-code; Turbo Pascal, desenvolvido mais tarde sob a direção de Anders Hejlsberg, combinou compilador rápido e ambiente integrado. Estes sistemas reforçaram o nome Pascal, mas não foram criações de Wirth.
Wirth preferiu tratar a modularidade em novas linguagens em vez de acrescentar indefinidamente extensões a Pascal.
Modula torna verificáveis as fronteiras entre componentes
Wirth desenvolveu Modula em meados dos anos 1970 e Modula-2 a partir de 1977. Um grande programa deve ser dividido em módulos com interfaces explícitas. Um módulo publica certos tipos e operações e esconde a implementação; o compilador verifica as trocas através dessa fronteira.
Modula-2 acrescentou mecanismos adequados a sistemas e concorrência. A linguagem acompanhou o projeto Lilith, computador pessoal desenvolvido na ETH. Conceber em conjunto máquina, compilador, sistema e aplicações permitia observar os compromissos de toda a pilha.
Oberon leva a redução mais longe
Depois de uma estadia no Xerox PARC, Wirth lançou com Jürg Gutknecht o projeto Oberon, simultaneamente linguagem e sistema operativo. Derivava de Modula-2, mas removia deliberadamente vários mecanismos.
O objetivo era um núcleo suficientemente pequeno para ser explicado, compilado e usado na construção de todo o sistema. Compilador, ecrã, texto, ficheiros e ferramentas formavam um ambiente coerente.
Oberon não teve a difusão comercial de Pascal, mas tornou-se um estudo completo de conceção de sistemas e mostrou que um ambiente interativo podia ser construído com uma quantidade relativamente reduzida de código.
O que significa realmente simplicidade para Wirth
A frase frequentemente associada a Wirth, segundo a qual o software abranda mais depressa do que o hardware acelera, resume a preocupação com o crescimento da complexidade.
A resposta não era rejeitar abstrações. Pascal, Modula e Oberon introduzem abstrações poderosas: tipos definidos pelo programador, módulos, interfaces e dados estruturados. Wirth procurava obter essa força com poucas regras e consequências previsíveis.
Há compromissos. Uma linguagem reduzida pode exigir mais código especializado ou oferecer menos bibliotecas; a compatibilidade com programas existentes limita a remoção de mecanismos. Simplicidade, compatibilidade, desempenho e expressividade nem sempre podem ser maximizados em simultâneo.
Uma herança no ensino e na engenharia
Wirth recebeu o Prémio Turing em 1984 pelas suas linguagens e influência no ensino e prática da programação. Reformou-se da ETH em 1999, mas continuou experiências com Oberon e conceção de hardware. Morreu em 2024.
Pascal formou várias gerações de programadores. Modula-2 tornou familiar a separação entre interface e implementação. Oberon mostrou como linguagem, sistema e ferramentas podem ser concebidos como um todo.
Wirth deixou sobretudo uma disciplina: construir, medir, retirar o que não é necessário e verificar se o conjunto continua compreensível.
Cronologia
1934: nascimento em Winterthur.
1959: diploma de engenharia eletrónica na ETH Zurich.
1960: mestrado na Université Laval.
1963: doutoramento em Berkeley e ensino em Stanford.
1966: desenvolvimento de ALGOL W.
1968: professor na ETH Zurich.
1970: primeira definição de Pascal.
1975: primeira versão de Modula.
1977–1978: Modula-2 e projeto Lilith.
1984: Prémio Turing.
1986–1988: Oberon com Jürg Gutknecht.
1999: reforma da ETH.
2013: edição modernizada de Project Oberon.
2024: morte aos 89 anos.
Perguntas frequentes
Niklaus Wirth criou Pascal sozinho?
Foi o principal criador e definiu os objetivos. Compiladores e difusão envolveram, porém, colaboradores da ETH e muitas equipas externas.
Porque foi Pascal criado para o ensino?
Wirth queria uma linguagem pequena e compreensível, mas suficientemente rica para ensinar procedimentos, tipos e estruturas de dados. O objetivo era aprender a organizar programas.
Wirth criou Turbo Pascal?
Não. Turbo Pascal foi desenvolvido pela Borland sob a direção de Anders Hejlsberg a partir de um compilador anterior.
Qual é a diferença entre Pascal e Modula-2?
Pascal privilegia programação estruturada; Modula-2 acrescenta mecanismos para software de grande dimensão e sistemas, especialmente módulos com interfaces explícitas e compilação separada.
Oberon é apenas uma linguagem?
Não. Oberon designa também um sistema operativo concebido com Jürg Gutknecht para testar se poucos conceitos podiam sustentar um ambiente completo.
Porque continuam atuais as ideias de Wirth?
O software continua a sofrer de complexidade acumulada. Tipos explícitos, módulos, interfaces estreitas e remoção de mecanismos desnecessários continuam essenciais para manter sistemas compreensíveis.