Arquivos da editoria ‘Forth’.

Laptop OLPC: avante ao passado

O mundo dá muitas voltas e volta ao mesmo lugar. Os antigos Macintosh com PowerPC (como os Powerbook) tinham um recurso que remete aos primeiros tempos da microinformática: um interpretador embutido, como era o Basic.

No boot, mantendo-se pressionadas as teclas CMD-ALT-O-F, entra-se no OpenFirmware, um interpretador de linguagem Forth. Detalhes no Feedface. Não sei se os novos MacIntel fazem isto.

Forth é uma linguagem de alto nível, poderosíssima, ideal para hackers. Tipo o Basic de antigamente, só que muuuuitas vezes melhor. Trabalha com qualquer base numérica (de 2 a 72), tem matemática tipo HP-12C. Deu origem ao PostScript, por exemplo.

Agora, o mesmo esquema do Mac está sendo usado no laptop XO do projeto OLPC. Neste, o OpenFirmware substituiu o BIOS e o bootloader Linux. Interrompendo-se o boot, entra-se no interpreetador Forth e pode-se até mesmo desenhar pixels coloridos no frame-buffer da maquininha (memória de vídeo).

Com tempo, disposição e sem namorada, um guri pode fazer um sistema operacional gráfico a partir do nada.

(Mas tô delirando… Quando é que um guri vai poder fazer um sistema operacional from the grassroots? :)

Por que linguagens script são lentas?

Papinho nerd. Por que linguagens script são lentas? Porque são interpretadas. Ou seja, as instruções do texto são lidas e executadas uma por uma. Mas elas não precisam ser interpretadas, podem, mesmo sendo linguagens interativas, ser compiladas, isto é, as instruções são lidas, é montado um código de máquina e em seguida ele é executado.

Presumamos uma interface por linha de caracteres (CLI). O compilador lê a linha de entrada até um ENTER. Procura por comandos na linha (tokens). Acha o ponto de entrada do código de máquina de cada token, numa lista de tokens, e monta uma lista de CALLs para as rotinas de máquina. Quando chega no final da linha de entrada, monta um RETURN e dá um JUMP para o início da lista de CALLS (na verdade, verdadeiro código de máquina): Continue lendo… ‘Por que linguagens script são lentas?’ »