Makró
A Programozás Wiki wikiből
Makrónak nevezünk egy olyan rövidítést, amely valamilyen programnyelvi rész, utasítássorozat, vagy felhasználói műveletsorozat helyettesítéseként szerepel.
Tartalomjegyzék |
[szerkesztés] Assembly
A makrók először az assembly nyelveknél jelentek meg. Arra szolgálnak, hogy az egyes összetett műveleteket ne kelljen minden esetben teljesen kiírni. Egyes assemblereknél a makrókhoz argumentumok is rendelhetők, így ez a módszer a strukturált nyelvek eljárásaira emlékeztet, azok előfutárának tekinthető.
[szerkesztés] C
A C és C++ nyelvben a mai napig használhatók makrók. Gyakran forrásszöveg-rövidítésre használják őket, de paraméterezhetőségükből és rugalmasságukból adódóan egyéb célokat is szolgálnak. Számtalan más programnyelvekből ismert elem (sablon, kivétel, objektumok) modellezhető C-ben makrók segítségével. Mivel a makrók helyettesítését az előfordító a tényleges fordítási folyamat előtt végzi, ezért azok kiszámítása egyáltalán nem rontja a kész program teljesítményét. Ma is gyakori, hogy a gyakran hívott programrészeket makrókkal írják meg, így a hívás-visszatérés ismétlődő költsége megspórolható. A működés az inline függvényekéhez válik hasonlóvá. Jól definiált makrókkal egyes platformok közötti különbségek (pl. endianness) kiköszöbölhetők, így platformfüggetlen programok írását is segíthetik.
[szerkesztés] Más nyelvek
A magas szintű programozási nyelveknél a makrók használata lényegesen ritkább. Forrásszöveg-megváltoztatási lehetőségük nehezíti a fordítás közbeni ellenőrzéseket, bizonyos helyzetekben érthetetlen hibaüzeneteket produkálva. A Java és a Pascal nyelvek alapesetben nem tartalmaznak makrókat. Az értelmezett nyelvek helyzete egy kissé más, Perlben, vagy PHPben például maga az értelmező működhet makró-feldolgozóként.
[szerkesztés] Makrónyelvek
A makrók nem csak más programnyelvek elemeiként, hanem önálló nyelvként is szerepelhetnek. Az m4, vagy cpp nyelvvel akár programozástól független szövegek is feldolgozhatók.
[szerkesztés] Utasítássorozatok
Bizonyos alkalmazások és operációs rendszerek lehetőséget adnak arra, hogy egy-egy elvégzett munkafolyamatot rögzítsünk, aztán később újra elvégezzünk. Példa erre a vi, az OSX AppleScript, vagy a Microsoft Office makró-rögzítési lehetősége. A felvett makrók később programnyelvi formában megtekinthetők és módosíthatók. Ennek sokféle hasznán kívül veszélye is lehet, például az ún. makróvírusok.