RTL/2 era un limbaj de programare în timp real, de mici dimensiuni, conceput de J. G. P. Barnes la Imperial Chemical Industries, în 1972. Limbajul era bazat pe ALGOL 68 și permitea compilarea separată a componentelor de program numite bricks („cărămizi”). Proiectarea RTL/2 a fost ghidată de principii esențiale pentru sistemele în timp real, unde performanța și predictibilitatea sunt primordiale: simplitatea, fiabilitatea și eficiența. În consecință, limbajul introducea câteva concepte-cheie:
Câteva particularități ale limbajului RTL/2 au fost preluate și în limbajul LPTR:
CODE,
care permitea includerea limbajului de asamblare în codul-sursă RTL/2.
RTL/2 avea aplicații în diverse domenii care necesitau capacități de calcul în timp real, printre care automatizarea industrială, industria aerospațială și de apărare, telecomunicațiile etc. Colegii din colectivul de la ICI care se ocupau de sistemele informatice în timp real sperau ca RTL/2 să devină un standard recunoscut în industrie la nivel mondial, pe baza căruia să poată fi inițiate colaborări cu alte țări, în principal cu Marea Britanie.
Contractul nostru cu ICI dura doi ani și prevedea realizarea unui compilator pentru un limbaj compatibil cu RTL/2, care urma să fie inclus în Biblioteca Națională de Programe (BNP), accesibilă tuturor agenților interesați din industrie. La sfârșitul perioadei contractuale, colectivul de la Politehnică, condus de mine, a implementat LPTR, iar compilatorul a fost validat și depus în BNP. De atunci, nu am mai avut informații despre soarta lui. Probabil nu a fost adoptat în industrie — așa cum s-a întâmplat, de altfel, și cu RTL/2, care, deși standardizat, a murit de moarte naturală, ca multe produse software neutilizate.
Pentru mine, contractul LPTR a însemnat formarea și conducerea unei echipe de colegi și studenți pentru proiectarea și implementarea compilatorului. După mici modificări ale sintaxei RTL/2, am adus sintaxa LPTR la o gramatică LL(1), ceea ce a permis o analiză sintactică descendentă. Gramatica a fost atributată, ceea ce a permis o analiză semantică elegantă. În fine, generarea de cod s-a făcut în MACRO, limbajul de asamblare al minicalculatorului-țintă INDEPENDENT. Întregul compilator a fost scris în limbajul C.
Această experiență mi-a adus o maturizare tehnică importantă și o perspectivă nouă asupra managementului proiectelor complexe.