Macroprocesadores
Mar´ Paula Ortu˜o S´nchez ıa n a November 30, 2005
Contents
1 Macroprocesadores 1.1 Funciones b´sicas de un Macro Procesador . . . . . . . . . . . . . . . . . . . . . . . a 2 2 6
2 Algoritmo Macro Procesador y Estructura de Datos
List of Algorithms
1 2 3 4 5 Algorithm for a one-pass PROCESSLINE . . . . DEFINE . . . .. . . . . EXPAND . . . . . . . . GETLINE . . . . . . . . macro . . . . . . . . . . . . . . . . processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 9 10 10List of Figures
1 Contents of macro processor tables for the program in table 1:(a) entries in NAMTAB and DEFTAB defining macro RDBUFF, (b) entries in ARGTAB for invocation of RDBUFF on line 190 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
List of Tables
1 2 3 4 Use of macros in a SIC/XE program . . . . . . . . . . . . . . . . . Program with macros expanded . . . .. . . . . . . . . . . . . . . Example of the definition of macros within a macro body a) . . . Example of the definition of macros within a macro body b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 7 7
1
1
Macroprocesadores
Una macro instrucci´n (a veces abreviada macro) es simplemente una notaci´n convencional para o o el programador. Una macrorepresenta un grupo de instrucciones en el lenguaje de programaci´n o fuente. Los macro procesadores reemplazan cada macro instrucci´n con el correspondiente grupo de ino strucciones en el programa fuente. Esto es com´nmente llamado expandir la macro. Estas macro u instrucciones permiten escribir al programador versiones cortas de un programa, y dejar que los detalles mec´nicos sean manejados porel macro procesador. a Por ejemplo, sup´ngase que se desea salvar los contenidos de todos los registros antes de llamar o a un programa. En SIC/XE esto requerir´ una secuencia de siete instrucciones (STA, STB, etc.). a Usando una macro instrucci´n, el programador simplemente escribe SAVEREGS, por ejemplo. o Esta macro instrucci´n ser´ expandida en siete instrucciones en lenguaje ensambladornecesarias o a para salvar los registros. Las funciones de un macro procesador esencialmente involucran la sustituci´n de un grupo de o caracteres o l´ ıneas por otros. Excepto en algunos casos especializados, el macro procesador no realiza an´lisis del texto que maneja. a El dise˜o y capacidades de un macro procesador pueden ser influenciados por la forma de las n proposiciones del lenguaje deprogramaci´n involucrado. Sin embargo, el significado y traducci´n o o de estas instrucciones en lenguaje de maquina no conciernen durante la macro expansi´n. Esto o significa que el dise˜o de un macro procesador no esta relacionada con la arquitectura de la comn putadora en la cual corre. El uso mas com´n de macro procesadores es en la programaci´n en lenguaje ensamblador. Usamos u o ejemplos en lenguajeensamblador SIC para ilustrar los conceptos involucrados. Sin embargo, los macro procesadores tambi´n pueden ser usados con lenguajes de alto nivel, lenguajes de comandos e del sistema operativo, etc. Adem´s, hay macro procesadores de prop´sito general que no estan a o ligados con alg´n lenguaje en particular. u
1.1
Funciones b´sicas de un Macro Procesador a
La tabla 1 muestra un ejemplo deun programa SIC/XE usando macro instrucciones. Este programa tiene la misma funci´n y l´gica que los programas ejemplos estudiados anteriormente, sin o o embargo, el esquema de numeraci´n del programa fuente ha sido cambiado. o Este programa define y usa dos macro instrucciones, RDBUFF y WRBUFF. Las funciones y l´gica o de la macro RDBUFF son similares a aquellas de la subrutina RDREC, tambi´n...
Regístrate para leer el documento completo.