TRAC (linguagem de programação) - TRAC (programming language)
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
- TTM (linguagem de programação) , uma linguagem de programação inspirada no TRAC
Referências
links externos
- Fundação TRAC (arquivado)
- TRAC, uma linguagem de descrição de procedimento para a máquina de escrever reativa nas Comunicações do ACM, Volume 9, Edição 3, março de 1966.
- Página de informações TRAC de Andrew Walker
- Entrada TRAC na Enciclopédia HOPL de Linguagens de Computação
- Um projeto de implementação TRAC no sourceforge .
- Entrevista de história oral com Calvin N. Mooers e Charlotte D. Mooers no Charles Babbage Institute . Entrevista discute a recuperação de informações e a pesquisa em linguagens de programação desde a Segunda Guerra Mundial até o início dos anos 1990.