Á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
- Makró (informatika) - Az informatikában a minta tömör ábrázolása