TRAC (ohjelmointikieli) - TRAC (programming language)

TRAC
Paradigma yleiskäyttöinen makroprosessori
Suunnitellut Calvin Mooers
Ilmestyi ensimmäisen kerran 1964
Vaikuttanut
Makro SAP
Vaikuttava
SAM76 , ML / I

TRAC (ja T- ext R eckoning nd C ompiling) kieli on ohjelmointikieli kehittämä välillä 1959-1964 mukaan Calvin Mooers ja ensimmäinen toteutettu PDP-1 1964 L. Peter Deutsch . Se oli yksi kolmesta "äidinkieli" suosittelema Ted Nelson in Computer Lib . TRAC T64: ää käytettiin ainakin vuoteen 1984 asti, jolloin Mooers päivitti sen TRAC T84: ksi.

Kielen kuvaus

TRAC on puhtaasti tekstipohjainen kieli - eräänlainen makrokieli . Toisin kuin perinteiset tilapäiset makrokielet, kuten kokoonpanoissa, TRAC on hyvin suunniteltu, johdonmukainen ja monessa mielessä täydellinen. Siinä on nimenomaiset syöttö- ja lähtöoperaattorit, toisin kuin tyypillisissä implisiittisissä I / O: ssa syrjäisimmillä makrotasoilla, mikä tekee siitä samanaikaisesti yksinkertaisemman ja monipuolisemman kuin vanhemmat makrokielet.

Se eroaa perinteisistä makrokielistä myös siinä, että TRAC-numerot ovat numeroiden merkkijonoja, jolloin kokonaislukuaritmeettinen (ilman erityisiä enimmäisarvojen rajoituksia) tarjotaan sisäänrakennettujen ("primitiivisten") toimintojen kautta. Väitetysti yksi sen täydellisyyden näkökulma on, että virhekäsite rajoittuu tapahtumiin, kuten tiedostotilan puute ja merkkijonon laajentamista vaativa tulkin työvarasto; mitä monilla kielillä kuvailtaisiin laittomiksi operaatioiksi, käsitellään TRAC-ohjelmassa määrittelemällä tulos (usein tyhjä merkkijono) funktion argumenttijonojen jokaiselle mahdolliselle yhdistelmälle.

TRAC on tekstinkäsittelykieli, jota kutsutaan myös merkkijonokäsittelykieleksi.

Merkkijonot merkkijonoina ovat niin voimakkaita, että TRAC tarjoaa mekanismeja kielen omien syntaktisten merkkien käsittelyyn joko niiden syntaktisissa rooleissa tai kuten mikä tahansa muu merkki, ja itse modifioivalla koodilla on enemmän tunnetta tyypillisten TRAC-ohjelmointitekniikoiden luonnollisista seurauksista kuin olla erityispiirre.

TRAC on APL: n tai LISP: n tapaan ilmaisukeskeinen kieli (toisin kuin tyypillisemmille menettelytapakielille ), mutta toisin kuin APL: ssä, sillä ei ole täysin operaattoreita. Useimmissa tapauksissa kyseessä on puhdas toiminnallinen ohjelmointi .

TRAC on homoiconic .

TRAC: lla on yhteistä LISP: n kanssa syntaksia, johon yleensä liittyy monien sisäkkäisten sulkujen tasoja.

TRAC: n tärkein inspiraatio tuli Douglas McIlroy'n kolmesta artikkelista .

Henkinen omaisuus

Mooers tuotenimellä TRAC pyrkiessään ylläpitämään hallintaansa kielen määritelmää, mikä oli epätavallinen ja tienraivaaja. Yhdessä vaiheessa hän nosti DEC: tä vastaan ​​immateriaalioikeuksien loukkaamista koskevan kanteen väittäen, että sopimus minitietokoneen toimittamisesta TRAC-tulkin kanssa loukasi hänen oikeuksiaan. " Dr. Dobb's Journalin ensimmäisessä numerossa, joka on yksi varhaisimmista julkaisuista henkilökohtaisten tietokoneiden alalla, on vitriolinen pääkirjoitus Mooersia vastaan ja hänen rohkeutensa yrittäessään veloittaa ihmisiä tietokonekielestään." Tavaramerkki ( # 72301892 ) kuitenkin päättyi vuonna 1992. Nimeä on sittemmin käytetty useita kertoja etuyhteydettömiin tietotekniikkaprojekteihin , mukaan lukien nykyinen avoimen lähdekoodin projektinhallintajärjestelmä Trac .

Vaikutus ja käyttö

TRAC toteutettiin myöhemmin PDP-8: lla , PDP-10 : llä ja PDP-11: llä .

TRAC: n innoittamia kieliä on ollut useita. Välttääkseen ongelmat Mooersin kanssa, he nimesivät uudelleen primitiivit ja / tai käyttivät erilaisia ​​metahahmoja. SAM76: n tapauksessa primitiivit lisättiin Claude Kaganin mukaan "koska TRAC on vauvapuhetta". MINTin tapauksessa primitiivejä lisättiin, jotta pääsy hienostuneeseen tekstieditorikoneistoon.

  • yksi havaittu TRAC-puute oli täydellisen laajennuksen puute: jotkut TRAC-primitiiviset toiminnot ovat herkkiä nollan (nollamerkin) ja olemattoman (ei-erotetun) argumentin erottamiselle, mutta sen viimeisen ei-nolla-argumentin lisäksi käyttäjä määritelty funktio ei voi tehdä eroa. SAM76 oli TRAC: n kaltainen kieli, joka eliminoi tuon rajoituksen.
  • Russ Nelson otti käyttöön emacs- laajennuskielen nimeltä MINT ( M INT I s N ot T RAC). Tätä kieltä käyttää FreeDOS- editori FreeMACS .

TRTP: tä käytti FTP-ohjelmisto PC / TCP-tuotteessaan modeemivalitsimen komentosarjakielenä.

TRAC: ta käytettiin myös käyttöliittymänä Digital Productions Cray-renderöijässä elokuville, mukaan lukien The Last Starfighter .

Esimerkkiohjelmasta

TRAC T84 -skripti Fibonacci-numeroiden laskemiseksi:

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

Katso myös

Viitteet

Ulkoiset linkit