Abstrakt. Makron förbättrar expressivitet, koncision, abstraktion och språkkompatibilitet utan att själva programmeringsspråket ändras. De är oumbärliga för att bygga allt vanligare flerspråkiga tillämpningar. Tyvärr är befintliga makrosystem väl inkapslade men osäkra (t.ex. C preprocessorn) eller är säkra men tätt integrerade med språkgenomförandet (t.ex. Scheme macros). I detta dokument introduceras Marco, det första makrosystemet som söker både inkapsling och säkerhet. Marco bygger på iakttagelsen att makrosystemet inte behöver känna till alla syntaktiska och semantiska regler i målspråket, utan endast direkt tillämpa vissa regler, såsom variabelt namn bindande. Med hjälp av denna iakttagelse lastar Marco av de flesta regelkontroller till omodifierade målspråkskompilatorer och tolkar och blir därmed språkskalbar. Vi beskriver Marco-språket, dess språkoberoende säkerhetsanalys, och hur det använder två exempel på analysinsticksprogram för målspråk, en för C++ och en för SQL. Detta tillvägagångssätt öppnar dörren till säkra och uttrycksfulla makron för alla språk.
Marco-språket REF ger på liknande sätt makrodefinition på en abstraktionsnivå som till stor del är oberoende av målspråket.
Marco: Safe, Expressive Macros for Any Language ⋆
{'venue': 'ECOOP', 'journal': None, 'mag_field_of_study': ['Computer Science']}