O criador e l�der do projeto TinyCOBOL � Rildo Pragana.
Veja uma breve nota hist�rica escrita por ele sobre porque este compilador COBOL.
Este compilador foi primeiramente implementado para gerar programas TSR (Terminate and stay resident) sobre o DOS para a minha fam�lia de micro-terminais [1] conectados a um PC.
O c�digo gerado n�o poderia ser C(naquele tempo), por n�o haver um compilador C livremente dispon�vel para fazer a tradu��o da "segunda fase". Eu pretendia gerar linguagem assembler compat�vel com o assembler masm.
Ao compilador foi requerido tamb�m comunicar com um pequeno multi-tarefador, respons�vel para fazer o console do PC dispon�vel para outras tarefas, enquanto fazia todo o processamento em segundo plano. Ent�o o c�digo tinha que ser completamente reentrante (v�rios terminais podiam ser executados ao mesmo tempo) com um stack separado e �reas de segmentos de dados vari�veis, mas com uma �rea literal comum.
Eu tive que desmontar uma pilha de listas de 0,75 cm de altura para entender como fazer este trabalho dentro do DOS, ent�o nenhuma opera��o(ou mesmo a tecla "pause") poderia fazer o sistema inst�vel em segundo plano, ou os micro-terminais n�o funcionariam
O compilador era pequeno, e aceitava somente um subset do padr�o COBOL 74, mas poderia facilmente ser expandido para compila��o completa. N�o havia os par�metros "MOVE CORRESPONDING" ou "ALTER", como a maioria dos programadores COBOL(nossos clientes) n�o as requereram. N�o havia fun��es de gera��o de relat�rios tamb�m, por causa da limita��o de tamanho. N�s suponhamos execut�-lo somente com os primeiros 640KB de mem�ria, (eu n�o poderia colocar nesse tempo interrup��es de servi�o al�m desse espa�o) enquanto deixava espa�o suficiente para rodar as aplica��es em "primeiro plano".
Eu espero que todos entendam agora por que essa coisa "medonha" tinha tantas restri��es. Agora, como n�s estamos migrando para o linux, iremos fazer muito mais, como n�o h� todas essas restri��es mais.
1. MT100 e HandTerm. O primeiro (mais velho) foi implementado com um microprocessador Z80. O segundo foi um terminal de chip simples, com um FPGA Altera. Ele caracterizou uma linha de pontos m�ltiplos, (um par simples de linha-telefone) alcan�ando a velocidade de transfer�ncia de 250Kbps (toda feita pelo hardware). Meu trabalho principal era fazer o design do hardware, embora eu gaste a maioria do meu tempo escrevendo software. Quem disse que o software � assim t�o "f�cil"?