sábado, 14 de noviembre de 2020

Compiladores. Principios, técnicas y herramientas. Una aplicación al arte audiovisual.


 El amor tiene muchas aristas, una de ellas se refiere a lo abstracto, ¿qué más críptico que el mecanismo que permite el circuito de la comunicación? Cuando hablamos de la pasión por las palabras surge de inmediato el reconocimiento intuitivo y recurrente de dos aproximaciones metodológicas, basadas en la filosofía: la teoría y la praxis del lenguaje.

Como científico y artista una posibilidad de creación se refiere a la mezcla de disciplinas que muchos consideran dispares y alejadas, ya sea a través de la interseccionalidad, la combinatoria o permutación. En el nuevo campo de la computación, las ciencias de la información y su reflejo en los denominados lenguajes de programación suele comentarse dos niveles de abstracción, uno es la estructura y dinámica de las "palabras" dadas a los elementos físicos, mecánicos y digitales que ejecutan acciones basadas en los algoritmos, ahí las palabras utilizadas son simples instrucciones basadas en la lógica, que nos permiten recrear y reproducir "recetas" que nos brindan al final el platillo de la tarea deseada, la cual puede ir desde componer una sonata a mandar un satélite al espacio.

Un detalle hermoso en este campo es el fenómeno de la recursividad, que es una función o instrucción que se invoca a sí misma en uno de estos procesos basados en "software", los ejemplos típicos de esta aplicación son el cálculo del valor de la función factorial y en análisis numérico, los métodos de localización de raíces de funciones polinómicas basadas en el cálculo infinitesimal, por ejemplo el método de Newton-Raphson.

Y en la Babel de los lenguajes de programación, encontramos un número amplio de variantes dialectales de comunicación con las computadoras: Basic, Fortran, C, Python. Pero a estos medios, nombrados como lenguajes de alto nivel, les sustentan de modo casi oculto los giros idiomáticos que permiten comprender su sintaxis y gramática, son pocos los familiarizados con esos lenguajes de bajo nivel: Ensamblador, Latex o Mono, son idiomas que le hablan a las tripas, los circuitos electrónicos, a través de lógica Booleana e instrucciones que requieren de una hermenéutica profunda.

Y he aquí que la frontera entre el mundo de la superficie y los fondos oscuros de esas instrucciones ininteligibles para los legos, requiere el auxilio de otro tipo de recursividad: Los programas que se programan para generar programas. A esa definición, sólo equiparable a la visualización de los denominados fractales, se les ha dado un nombre: Compiladores.

Y como ñoños que hemos sido de toda la vida, comenzamos el estudio de los compiladores, la biblia de esos conocimientos, el Necromicrón de la compilación, es el libro cuyo título hemos reproducido en esta publicación.

La narrativa detrás de este campo de conocimiento no puede ser más épica: Para el profesional a cargo de esta tarea la labor se equipara a una lucha que sólo había sido imaginada en la literatura de fantasía. La complejidad del diseño del compilador se representa con un dragón, el programador es el caballero que se protege con la armadura del análisis del flujo de datos, el escudo de la traducción dirigida por la sintaxis y la espada del generador de análisis sintáctico de la gramática del lenguaje. La meta es vencer al escupe fuego y lograr rescatar a la princesa de la torre que la mantiene cautiva, por supuesto las mujeres dedicadas a la programación de compiladores tienen una narrativa similar, con la diferencia de que ellas van montadas en un corcel y al final terminan tomando te y conversando con sus amigas en un largo día de campo, con el mítico dragón ya sometido, domeñado y amaestrado, como un fiel can, a su lado.

No se asusten con la terminología, todo lo anterior se limita a lo que se conoce como un intérprete lexiográfico, si queremos ser más concisos: Se trata de crear un programa que sepa leer (y ya después que genere sus propios cuentos, novelas o ensayos).

Ya hemos comentado que algunos fuimos pioneros en esta tarea de utilizar lo digital en el audiovisual, en la década de los 80 sólo había dos caminos posibles: manipular químicamente la imagen, a través de la película por revelado o aventurarse a compilar por medio de computadoras y con el manejo de señales digitales.

Un reto que enfrentamos en VideoChelas fue convivir con el formato de celuloide y los formatos "nuevos" de cintas de una pulgada y tres cuartos, además de intentar reproducir los procesos de preproducción, producción y post producción con el uso de recursos informáticos.

En el siglo pasado la tradición dictaba que la edición y montaje se realizaba con cuchillas y unos armatostes que ocupaban un cuarto completo, la escritura del guion seguía un formato estricto que sólo era posible con la mecanografía y las técnicas de efectos especiales se basaban en la manipulación del negativo, en resumen una labor prácticamente artesanal.

En este entorno se nos requirió la labor de subtitular películas clásicas que se transmitían por los canales del estado, en concreto Canal 11 y sus funciones de cine por la noche. Para ello debían satisfacerse los requisitos de hacerlo bien, rápido y prácticamente regalado. La única solución fue obviar el proceso tradicional y recurrir al libro ya citado, de Aho & Ullman,

Al producto lo nombramos de manera prosaica: Programa de Video Subtitulaje Profesional, el núcleo del mismo fue un intérprete lexicográfico, un compilador, que funcionaba en tres etapas, una era la reducción, en donde colocamos a un humano con audífonos a ver la película y escribir en un programa para formato de guion (Final Script) los subtítulos apropiados, con la longitud adecuada y que incluían diálogos y algunos datos necesarios para la comprensión de lo visualizado (letreros en la cinta, ruidos del ambiente o indicaciones de música y en ocasiones la letra de la misma).

El segundo paso era el pulsado, que señalaba en un cronómetro (enlazado al ciclo de reloj del Rom Kernel del equipo) la entrada y salida de los subtítulos en sincronía con el audio de la producción, por medio de disolvencias de entrada y salida y super imposición (con GenLock y TBC).

El tercer paso, denominado vaciado, era generar la copia de la cinta ya con los subtítulos incluidos y listos para reproducirse de manera automática y en sincronía durante la transmisión o proyección.

Ahora ya nadie usa película de celuloide y quema subtítulos por sobre exposición, la sola mención de que eso se hiciese causa admiración, aunque tampoco se requiere ya el programar un compilador, el tiempo de los caballeros y su lucha contra dragones dejó de existir en el mundo audiovisual, es pura nostalgia, para fortuna de los creadores de este nuevo siglo, que pueden concentrarse únicamente en su propuesta de arte.