Donald Knuth, alegadamente o GOAT dos programador de computadores, escreveu, em vários volumes, aquilo a que chamou "A arte da programação de computadores".
Pretendeu criar um repositório de algoritmos e técnicas de programação que pudesse servir de referência para profissionais e estudantes. É uma obra monumental, ainda em curso. Começou o trabalho na década de 1960 e já editou 4 dos 5 previstos volumes.Como se trata de uma obra sobre algoritmos e técnicas de programação, haveria que incluir, obviamente, trechos de código para exemplificar este ou aquele conceito ou procedimento.
(parêntesis) no final do terceiro volume, descontente com os processos e resultados da edição tipográfica da época, resolveu criar um novo sistema digital para edição e impressão de textos, e criou então o Tex e o
Metafont. (fecha parêntesis)
Colocava-se então a questão da escolha da linguagem a utilizar nos tais exemplos. À época, a escolha teria quase obrigatoriamente de recair sobre ALGOL ou Fortran e, não contente com a ideia por razões que explica mas que não vêm ao caso, resolveu então criar um novo computador (hipotético claro está) e uma linguagem-máquina para a sua programação.
Nasceu então o computador mítico MIX e a linguagem MIXAL que quem se aventurar na leitura da obra terá de, forçosamente, aprender.
Trinta anos passados, estamos em finais do século XX, e a evolução no meio quer em processadores quer em linguagens, remeteu MIX e MIXAL para o depósito dos fósseis, pelo que, para manter a total relevância da obra, havia que criar um novo computador e uma nova linguagem que acompanhasse essa a evolução. Nasce então o novo MMIX e a MMIXAL e novos suplementos e fascículos de atualização das centenas de rotinas MIX originais para o novo MMIX. Só de pensar dá suores.
A MMIXAL uma linguagem-máquina constituída por 256 operações diferentes; coisas como: ADD para somar, MUL para multiplicar, AND para conjugar, JMP para saltar, etc.
Acontece que foram necessárias apenas 255 pelo que faltava uma operação para perfazer o número redondo de 256.
Termina assim o manual da linguagem MMIXAL com a operação SWYM, nas palavras do próprio Knuth:
"SWYM X,Y,Z (Sympathize With Your Machinery) - The last of MMIX's 256 opcodes is, fortunately, the simplest off all. In fact, it is often called a no-op, because ir performs no operation. It does, however, keep the machine running smoothly, just as a real-world swimming helps to keep programmers healthy. Bytes X, Y, and Z are ignored."

Sem comentários:
Enviar um comentário