Általános célú makró processzor - General-purpose macro processor

Az általános célú makróprocesszor vagy az általános célú előfeldolgozó olyan makróprocesszor , amely nincs kötve vagy integrálva egy adott nyelvhez vagy szoftverhez.

A makró processzor egy olyan program, amely szövegfolyamot másol egyik helyről a másikra, és rendszeresen elvégzi a cseréket. A makró processzorokat gyakran más programokba, például összeszerelőkbe és fordítókba ágyazzák. Néha önálló programok, amelyek bármilyen szöveg feldolgozására használhatók.

A makró processzorokat nyelvbővítésre használták (a meglévő nyelvi összetevőkben kifejezhető új nyelvi konstrukciók meghatározására), döntéshozatalt igénylő szisztematikus szövegcserékre és szövegformázásra (pl. Feltételes anyagkivonás HTML fájlból).

Példák általános célú makró processzorokra

Név Év Leírás
G PM 1960 -as évek Az egyik legkorábbi makró processzor a GPM ( Általános célú makrogenerátor ). Ezt a brit Cambridge -i Egyetemen fejlesztették ki a hatvanas évek közepén,Christopher Stracheyirányításával.
ML/I 1960 -as évek Az egyik különösen fontos általános célú makró processzor az ML/I ( Macro Language One ) volt (és jelenleg is az ). Ezt a PhD kutatás részeként dolgozta ki egy cambridge -i posztgraduális, Peter J. Brown. Az ML/I karakterfolyamon működik, és nem igényel speciális formátumot a bemenethez, sem különleges zászlókaraktereket a makrók bevezetéséhez.
2. SZAKASZ 1960 -as évek Az ML/I kortársa a STAGE2 volt, William Waite mobil programozási rendszerének része . Ez is egy általános célú makró processzor, de egyidejűleg dolgozza fel a bemeneti sort, és minden sort egyeztet a megadott mintákkal; figyelemre méltó, hogy független a karakterkészlettől, és csak azt követeli meg, hogy a 0-9 számjegyek egymás mellett legyenek, és ebben a sorrendben (a feltételnek nem felel meg a korszak néhány 6 bites és BCD karakterkódja).
M6 1960 -as évek A korai makró processzort Douglas McIlroy , Robert Morris és Andrew Hall fejlesztette ki az AT&T Bell Laboratories -ban . A GPM és a TRAC befolyásolta . A FORTRAN IV -ben implementálva a Unix 2 -es verziójába került .
SNOBOL 1960 -as évek A SNOBOL egy karakterlánc-feldolgozó nyelv, amely képes elvégezni a makró processzor által elvégezhető előfeldolgozás nagy részét.
XPOP Az XPOP egy újabb kísérlet egy általános makrófeldolgozási nyelvre, amelyet Mark Halpern az IBM -nél végzett az 1960 -as években.
TTM 1968 A TTM egy rekurzív, értelmező nyelv, amelyet elsősorban karakterlánc -manipulációra, szövegszerkesztésre, makródefinícióra és -bővítésre, valamint más rendszer -programozásnak minősített alkalmazásokra terveztek. 1968 -ban fejlesztette ki Steven Caine és E. Kent Gordon, a Kaliforniai Technológiai Intézetben . Elsősorban a GAP -ból és a GPM -ből származik.
GMP 1970 -es évek Egy másik kísérlet a GMP (General Macro Processor) volt, amelyet az 1970-es évek közepén M Boule fejlesztett ki a CII Company DLB/GC osztályán az RJ Chevance ötletei alapján. A Bordeaux I Egyetemmel együtt tesztelt első verzió a SIRIS8/IRIS80 rendszert futtatta. Ezt mini6 rendszerekbe portolták, és ez volt a fő összetevője ennek a számítógépcsaládnak a rendszergenerálásában . A GMP processzor C2-Chomsky nyelvtanokkal határozta meg a makrók szintaxisát, és kötelező nyelvet használt a számítások végrehajtásához és a makró bővítéséhez.
M4 1977 m4 tervezték Unix által Brian Kernighan és Dennis Ritchie .
ELÉNA Szoftver: Practice and Experience , Vol. 14., 519–531., 1984. jún
gema 1995 A gema egy mintaegyezésen alapuló, kontextus szerinti makróprocesszor, amelyet David N. Gray írt. Helyettesíti/javítja a reguláris kifejezések fogalmát . Az összefüggések nagyjából megfelelnek a megnevezett mintahalmazoknak. Ennek következtében a gema makrói nagyon hasonlítanak az EBNF leírására.
GPP 1996 A gpp egy másik általános makró processzor, amelyet Denis Auroux írt. C előfeldolgozóra hasonlít, de általánosabb szemantikával rendelkezik, és lehetővé teszi a személyre szabott szintaxist (például a TeX , XHTML és Prolog -szerű szkriptek meghatározhatók).
M5 1999 Az m5 egy általános célú makró processzor, amelyet William A. Ward, Jr. írt, ellentétben sok makroprocesszorral, az m5 nem értelmezi közvetlenül a bemenetét. Ehelyett kétlépéses megközelítést alkalmaz, amelyben az első átvitel a bemenetet awk programmá alakítja, a második pedig az awk programot hajtja végre a végső kimenet előállításához.
pyexpander 2011 A pyexpander egy általános célú makró processzor, amely a Python programozási nyelven alapul. Az egyszerű makrócsere mellett lehetővé teszi tetszőleges Python -kifejezések kiértékelését és a python -kód végrehajtását, így a Pyuringpander Turing teljes .
Text Assembler 2014 A Text Assembler egy általános célú szöveg/makró processzor, amely a JavaScript programozási nyelvén alapul. Az egyszerű makrócsere mellett lehetővé teszi tetszőleges JavaScript kifejezések kiértékelését és JavaScript kód végrehajtását. JSON adatmodelleket is betölthet a bonyolultabb adatvezérelt szövegfeldolgozási feladatokhoz.
PP 2016 A PP a Pandoc (és általában Markdown és reStructuredText) számára tervezett szövegfeldolgozó. PP eszközök: Makrók, írástudó programozás, GraphViz , PlantUML és ditaa diagramok, Bash, Utasítás , PowerShell , Python és Haskell szkripteket.
minimumc A minimac egy minimalista, általános célú makró processzor. Karakterfolyam szűrőként működik, rekurzívan bővíti a makrókat, amint találkoznak velük. A makró processzor számára szokatlan, hogy explicit argumentumköteget használ, és a felhasználói funkciókat az összefűzés határozza meg (hasonlóan a Forth nyelvhez).
aa_macro 2017 Az aa_macro egy nyílt forráskódú, karakterfolyamon alapuló szövegfeldolgozó nyelv, amely Python nyelven íródott. A szöveg feldolgozása balról jobbra, belülről kifelé történik. Az előre definiált beépített funkciók egy része alapvető feldolgozási mechanizmusokat biztosít, amelyek közvetlenül vagy a felhasználó által definiált stílusok elemeiként használhatók. A nyelv a felhasználó által bővíthető, és elérhető a wtfm, egy nyílt forráskódú webalapú dokumentum-előkészítő csomag a nyelvhez.

Lásd még

Hivatkozások