O BASIC precisa ser levado em conta com suas linguagens contemporâneas: fortran, cobol e assembly.
De volta, quando eu estava mexendo na montagem do 6502 sem etiquetas, isso significava que quando você descobriu que precisava adicionar uma instrução em algum lugar no meio do código compactado (mais tarde eu adicionei NOP s) você precisava percorrer e refazer todos os endereços de salto. Isso foi demorado.
Fortran era um sistema baseado em numeração de linha que precedia o BASIC. Em Fortran, as colunas 1-5 eram um número de linha a ser usado para alvos para ramificação. A principal coisa com Fortran era que os compiladores tendiam a ser um pouco mais inteligentes do que o interpretador BASIC e adicionar algumas instruções era apenas uma questão de perfurar algumas cartas e colocá-las no baralho no lugar certo.
O BASIC, por outro lado, teve que manter todas as suas instruções ordenadas. Não havia muito de um conceito de 'continuação da linha anterior'. Em vez disso, no Applesoft BASIC (um dos dialetos amplamente usados com os quais estou familiarizado e posso encontrar informações), cada linha na memória era representada como:
NN NN TT TT AA BB CC DD .. .. 00
Ele tinha dois bytes para o endereço da próxima linha ( NN NN
). Dois bytes para o número de linha dessa linha ( TT TT
) e, em seguida, uma lista de tokens ( AA BB CC DD .. ..
) seguida pelo marcador de fim de linha ( 00
). (Isto é de página 84-88 de Inside the Apple // e )
Um ponto importante a ser observado quando se olha para essa representação de memória é que as linhas podem ser armazenadas na memória fora de ordem. A estrutura da memória era a de uma lista encadeada com um ponteiro de 'próxima linha' na estrutura. Isso facilitou a adição de novas linhas entre duas linhas, mas você precisou numerar cada linha para que ela funcionasse corretamente.
Muitas vezes, ao trabalhar com o BASIC, você estava realmente trabalhando em em BASIC. Em particular, uma determinada string era um número de linha e instruções BASIC, ou um comando para o interpretador básico para RUN
ou LIST
. Isso facilitou a distinção entre o código e os comandos - todo código começa com números.
Essas duas informações identificam porque os números foram usados - você pode obter muita informação em 16 bits. Os rótulos baseados em seqüências de caracteres precisariam de muito mais espaço e seriam mais difíceis de serem pedidos. Os números são fáceis de trabalhar, compreensíveis e fáceis de representar.
Mais tarde, os dialetos do BASIC onde você não estava em o intérprete o tempo todo foram capazes de eliminar todas as linhas numeradas e, em vez disso, só precisaram numerar as linhas que eram os destinos das ramificações. Com efeito, rótulos.