SOY EL COMPILADOR DE MARÍA Sin mí, María viviría más feliz en su integridad física y en su reputación. La mayoría de las injurias que recibe son provocadas por mi trabajo. De hecho, gran parte de los programadores que la emplean han proferido en alguna ocasión una expresión idiomática de frustración en contra de ella después de que he hecho mi trabajo y he notificado que han cometido errores al programar. Supongo que a nadie le gusta que le digan que se equivoca. A pesar de ello, el trabajo que realizo es fundamental para construir muchas aplicaciones que corren en María y que son su gran orgullo (normalmente por ellos ha recibido halagos, le han comprado más memoria, un MousePad y es considerada imprescindible para su dueño).
Orgullosamente pertenezco a la familia de traductores y muchos de mis parientes hacen trabajos similares al mío, pero con otros nombres: editores, intérpretes, formadores de texto, ensambladores, entre otros.
Probablemente soy subestimado y relegado a un segundo término (o a un último término, como diría mi compadre el sistema operativo) pero en mi interior reconozco que dependo tanto de María como ella de mí. La vida así es y lo acepto. Ojala que los programadores también lo aceptaran: habría menos frustración y menos dedos pintados en el monitor de María.
1. Error de léxico, que ocurre cuando el programador escribe una palabra que no conozco.
Mi trabajo consiste en dos partes fundamentales: comunicarme con un programador por medio del programa que él escribe y transformar lo que escribió a una forma que María lo entienda. Actúo como un vínculo entre los programadores y María.
Cuando me comunico con un programador puede ser para dos cosas: para decirle que ha cometido errores (lo cual me ocupa gran parte del tiempo) y para decirle que todo está bien (lo cual ocurre después de mucho insistir, en algunos casos). Generalmente notifico tres tipos de errores:
2. Error gramatical o sintáctico, que ocurre cuando una palabra no se emplea de manera correcta en el programa o cuando se omite. Este es el error más común y se debe al desconocimiento del lenguaje por parte del programador. Siempre digo dónde ocurrió el error y en ocasiones puedo sugerir como corregirlo. Algunos programadores sacan provecho de ello y nunca aprenden a escribir bien a la primera; esperan que yo marque el error y corrigen de acuerdo a lo que sugiero (mal, muchachitos, mal).
3. Error semántico, que ocurre cuando lo que se escribe, a pesar de ser correcto gramaticalmente, no puede o no debe ejecutarlo María. Cuido que lo indicado por el programador sea realizable por María para que ella no ofrezca información imprecisa que pueda hacer que pierda credibilidad. Cuando termina esta etapa de comunicación con el programador y le digo que NO HAY ERRORES, empieza el trabajo que el programador no ve (en ocasiones porque se pone a celebrar después de leer el mensaje anterior). Debo convertir lo escrito en el programa a una forma que María puede entender. Lo primero que hago es obtener una relación de todas las entidades manejadas en el programa y las guardo en una tabla. Después convierto todas las órdenes a una forma de lenguaje, llamado código intermedio, que permitirá que cualquier pariente de María entienda lo que el programador escribió. Digamos que es un lenguaje universal que toda máquina entiende. Cuando termino esto, debo determinar qué operaciones pueden suprimirse (porque se hacen varias veces o porque no son necesarias) y cuáles pueden escribirse de otra manera sin perder sentido el programa. Este proceso se conoce como optimizar código y tiene como propósito que María no trabaje mucho. Cuando tengo el código optimizado, entonces lo convierto a la forma en que María lo entiende y puede ejecutar. Ahí es donde termina mi trabajo. Lo que ocurra
después es responsabilidad de María y también del programador: el fracaso, debido a que ocurran errores de ejecución (que es responsable María de ellos, como la falta de memoria) y de lógica (responsabilidad total del programador: el programa no hace lo que él quiere). O el éxito: el programa corrió y todo mundo feliz. En ambos casos, NO SOY RESPONSABLE. Como ven, a veces me hacen responsable de cosas que yo no hago (claro, como no me puedo defender) y cuando hago bien mi trabajo, nadie lo nota. Aún no escucho a nadie que diga: ¡Este buen programa se lo debo al excelente compilador que tengo!. Esto y mucho más nunca lo escucharan mis oídos ¿Será por ello que me crearon sin ellos?