TRAC (linguagem de programação) - TRAC (programming language)

TRAC
Paradigma processador de macro de uso geral
Projetado por Calvin Mooers
Apareceu pela primeira vez 1964
Influenciado por
Macro SAP
Influenciado
SAM76 , ML / I

TRAC (para T ext R eckoning A nd C ompiling) Idioma é uma linguagem de programação desenvolvida entre 1959-1964 por Calvin Mooers e implementado pela primeira vez sobre o PDP-1 em 1964 por L. Peter Deutsch . Foi uma das três "primeiras línguas" recomendadas por Ted Nelson em Computer Lib . O TRAC T64 foi usado pelo menos até 1984, quando Mooers o atualizou para o TRAC T84.

Descrição da linguagem

TRAC é uma linguagem puramente baseada em texto - um tipo de linguagem macro . Ao contrário das linguagens macro ad hoc tradicionais da época, como as encontradas em montadores, o TRAC é bem planejado, consistente e, em muitos sentidos, completo. Ele tem operadores explícitos de entrada e saída, ao contrário do I / O implícito típico no nível de macro externo, o que o torna simultaneamente mais simples e mais versátil do que as linguagens de macro mais antigas.

Também difere das macro linguagens tradicionais porque os números TRAC são cadeias de dígitos, com aritmética de inteiros (sem limites específicos de valores máximos) sendo fornecida por meio de funções internas ("primitivas"). Indiscutivelmente, um aspecto de sua integridade é que o conceito de erro é limitado a eventos como falta de espaço no arquivo e solicitação de expansão de uma string por mais tempo do que o armazenamento de trabalho do interpretador; o que em muitas linguagens seria descrito como operações ilegais são tratadas no TRAC pela definição de um resultado (geralmente uma string nula) para cada combinação possível das strings de argumento de uma função.

TRAC é uma linguagem de processamento de texto, também chamada de linguagem de processamento de string.

A ênfase em strings como strings é tão forte que TRAC fornece mecanismos para lidar com os próprios caracteres sintáticos da linguagem em suas funções sintáticas ou como qualquer outro caractere, e o código de automodificação tem mais a sensação de uma consequência natural das técnicas de programação TRAC típicas do que de ser uma característica especial.

TRAC é, como APL ou LISP , uma linguagem orientada a expressão (em contraste com as linguagens orientadas a procedimento mais típicas ), mas ao contrário de APL, carece completamente de operadores. Em muitos aspectos, é um caso de programação funcional pura .

TRAC é homoicônico .

TRAC tem em comum com LISP uma sintaxe que geralmente envolve a presença de muitos níveis de parênteses aninhados.

A principal inspiração para o TRAC veio de três artigos de Douglas McIlroy .

Propriedade intelectual

Mooers registrou o nome TRAC em um esforço para manter o controle sobre a definição do idioma, uma ação inusitada e pioneira na época. A certa altura, ele abriu um processo de violação de propriedade intelectual contra o DEC , alegando que um contrato para entregar um minicomputador com um intérprete do TRAC violava seus direitos. "A primeira edição do Dr. Dobb's Journal , uma das primeiras publicações no campo do computador pessoal, traz um editorial mordaz contra Mooers e sua rapacidade em tentar cobrar das pessoas por sua linguagem de computação." No entanto, a marca registrada ( # 72301892 ) expirou em 1992. O nome desde então foi usado várias vezes para projetos de tecnologia da informação não relacionados , incluindo um sistema de gerenciamento de projeto de código aberto atual chamado Trac .

Influência e uso

O TRAC foi posteriormente implementado no PDP-8 , PDP-10 e PDP-11 .

Existem várias linguagens inspiradas no TRAC. Para evitar qualquer problema com os Mooers, eles renomearam os primitivos e / ou usaram diferentes metacaracteres. No caso do SAM76, primitivas foram adicionadas, de acordo com Claude Kagan, "porque TRAC é conversa de bebê". No caso do MINT, primitivas foram adicionadas para dar acesso a um sofisticado mecanismo de edição de texto.

  • uma deficiência percebida do TRAC era a falta de extensibilidade total: algumas funções primitivas do TRAC são sensíveis à distinção entre um argumento nulo (caractere zero) e um argumento inexistente (não delimitado), mas além de seu último argumento não nulo, um usuário A função definida não pode fazer a distinção. SAM76 era uma linguagem semelhante ao TRAC que eliminava essa limitação.
  • Russ Nelson implementou uma linguagem de extensão emacs chamada MINT ( M INT I s N ot T RAC). Esta linguagem é usada pelo editor FreeDOS FreeMACS .

TRAC foi usado pelo software FTP em seu produto PC / TCP como a linguagem de script do discador do modem.

TRAC também foi usado como front-end no renderizador Digital Productions Cray para filmes, incluindo The Last Starfighter .

Programa de exemplo

Script TRAC T84 para calcular números de Fibonacci:

:(s,fibo,(
:(ei,<1>, 1, 0,(
:(ei,<1>, 2, 1,(
:(aa, :(ri,fibo,:(as, <1>,1)),:(ri,fibo,:(as, <1>,2)))
))
))
))`
:(mw,fibo)'

Veja também

Referências

links externos