Por que linguagens script são lentas? Porque são interpretadas. Mas elas não precisam ser interpretadas, podem ser compiladas e, mesmo assim, interativas. 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+rotinas de máquina, e monta uma lista de CALLs. 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):
INICIO:
CALL comando_1
CALL comando_2
CALL comando_3
RET
A linha de entrada compilada então roda em velocidade de máquina, e quando encontra o RET volta para a linha de entrada para ler mais comandos. Pronto. Assim eram o GraForth e o TransForth do Apple ][, as mais bonitas peças de software que eu já vi, criação da cabeça genial do matemático
Paul Lutus. Mas o modelo lógico é
Forth, criação da cabeça genial de Chuck Moore.
Nenhum comentário:
Postar um comentário