Arquivo da tag: UNIX V7

Já ouviram falar de Cowgol?

Antes de tudo, a zuera é essa mesmo. Cowgol é uma linguagem de programação, fortemente baseada em Ada, com foco em sistemas pequenos, como o 6502, o Z80, entre outros. A meta da linguagem é que o compilador da linguagem funcione normalmente em um micro com um desses processadores, o que em tempos atuais, é um grande desafio. Descobrimos esse item peculiar quando resolvemos nos aventurar no Hackaday.

Logo, tem algumas características, como:

  • Ser uma linguagem moderna e segura em termos de tipagem, inspirada na linguagem Ada.
    Um backend orientado por tabelas, para tornar a linguagem fácil de portar.
  • Tem remoção de código morto e alocação estática de variáveis, conduzindo a binários pequenos e eficientes.
  • Ser rápido: Segundo o autor, ele compila o compilador no PC dele em 80 milissegundos.
  • Ser pequeno: O executável para 8080 tem 58 Kb (dividido em duas partes), e a versão para 80386 tem 70 Kb.

Os ports para processadores incluem:

  1. Z80 e 8080 (CP/M).
  2. 6502 e 65c02, ou seja: Roda num BBC Micro com o segundo processador, o Tube.
  3. 6303, e na versão específica para o Fuzix.
  4. Bytecode interpretado para o 6502. Fica menor, mas mais lento – pois a linguagem é interpretada.
  5. 80386, ARM Thumb2 e PowerPC (Linux).
  6. 68000 (Atari ST TOS e Linux m68k – se você achar uma máquina que rode esse sistema).
  7. 8086 (DOS).
  8. PDP11 (Unix V7).

É possível gerar binários grandes e horrorosos em C, justamente para facilitar o port do compilador para aquela nova plataforma: Pega o código transformado em C, e aí… “É só compilar!“. Ah, também é possível gerar código em Basic, mas o autor disse que foi só uma piada – mas funciona.

Ficou curioso? A linguagem é simples, lembra vagamente o Basic estruturado, tem documentação (não o bastante, mas tem!), é código aberto (licença BSD de 2 cláusulas) e pode ser algo interessante para mexer num final de semana chuvoso, de tarde. Vai lá e dá uma força pro David Given, e deixemos as vacas voarem.