quinta-feira, 4 de janeiro de 2024

Niklaus Wirth (1934-2024)

O ano de 2024 começou com o falecimento do pai do Pascal, Niklaus Wirth.

Pascal foi a minha segunda linguagem de programação, depois do BASIC. Primeiro, tive que sofrer um pouco por não ter linhas numeradas; uma vez superada essa barreira, sofri um com ponteiros.

A linguagem, entretanto, ensinou-me bons hábitos e o esforço valeu a pena.

O ambiente em que eu aprendi a usar o Pascal merece uma nota: ISO Pascal da Acornsoft.

Para entender esse ambiente, é preciso entender um pouco sobre a máquina no qual ele rodava: o BBC Micro da Acorn.

Esse micro usava um 6502 e, portanto, só podia endereçar 64KB. Para contornar essa limitação, ele alternava um bloco de 16KB dentre os ROMs disponíveis. Esses ROMs podiam conter linguagens ou simplemente comandos para o Sistema Operacional; quando um comando era digitado na linha de comando, o SO procurava o código nos ROMs instalados. Havia também ROMs para Lisp, Forth, BCPL, Prolog, Logo, e COMAL.

Dentre os ROMs podia haver também chips de RAM! No caso do meu micro, havia 4x16KB. Essa memória podia se comportar como ROMs comuns (era possível carregar uma imagem de ROM a partir de um disquete, por exemplo), ou o programador podia usar como bem entendesse, uma vez que bastava colocar um valor num certo endereço de memória para trocar o ROM ou RAM visível para a CPU.

Havia mais algumas complicações, como 20KB de Shadow Memory que ficavam "atrás" da memória de vídeo e que podiam ser usadas para gráficos, desde que o programador usasse apenas as rotinas do SO. Havia também mais 12KB que o SO usava para não roubar mais RAM do usuário.

O Pascal vinha em 2 ROMs: um para o compilador e outro para o editor, as bibliotecas, e o interpretador de BL-code (um tipo de p-code). Esse BL-code foi inventado para contornar as limitações da máquina: simplesmente compilar para código de máquina era inviável, porque os binários ficariam muito grandes.

Como o compilador também estava em BL-code, para poder compilar um programa, o interpretador se copiava para a memória principal. Para rodar um programa já compilado, o interpretador podia ficar na área de ROM.

O editor ocupava apenas 4KB, mas tinha pesquisa com expressões regulares. É difícil acreditar nisso hoje em dia. Ele rodava no modo texto (40x25) e, portanto, gastava apenas 1KB de memória de vídeo. Os programas, entretanto, podiam ser rodados em qualquer modo.

Este foi o primeiro Pascal fiel à norma que rodou numa máquina sem disco. Ele recebeu elogios até da Primeira Ministra Margaret Thatcher; não que ela entendesse exatamente o que estava elogiando, mas elogiou.

A caixa incluía, além do software em ROM, um disquete (dava para rodar com disquete também), um manual, um cartão de referência, e um excelente livro entitulado: Pascal from BASIC. Afinal, os autores conheciam bem seu público.

E com essas boas lembranças, nos despedimos do grande Niklaus Wirth.

Nenhum comentário:

Postar um comentário