Festival Latinoamericano de Instalación de Software Libre 2009…

Se informa que  el sábado 25 se estará realizando el festival latinoamericano de instalación de Software Libre FLISOL 2009 en la USAC, por lo que todos aquellos que quieran desinfectar sus máquinas de software privativo y sus virus(Entiendase windows) estan cordialmente invitados.

Lugar: Área de Columnas en Facultad de Ingeniería (Edificio T4), Universidad de San Carlos de Guatemala, Campus Central.

Fecha:  25 de Abril de 2009

Horario: De 9 AM a 5 PM

Entrada: Libre

Afiche Flisol

Afiche Flisol

Mis proyectos de sistemas en la USAC parte VI: Compiladores 1…

Que ironía, se me olvidó colocar el curso que auxilio en la universidad,  Introducción a los lenguajes y Compiladores 1.  Y si lenguajes era introductorio a éste, éste a su vez, es introductorio a la yuca de Compiladores 2 como lo describí anteriormente.  Lamentablemente, como tanto el auxiliar de ese curso, como el ingeniero, no sabian ni rosca, me tocó a mi estudiar por mi cuenta, mas por mi gusto que por ganarlo. y así fue. a continuación publico los únicos 2 proyectos que se realizaron.

1. Strim.

Un proyecto que la verdad, estaba bastante fácil, se trataba de un simple “concatenador” y “repetidor” de cadenas. el cual la mayor complicación era ponerse de acuerdo con el auxiliar para saber qué era lo que querían.  Desarrollado en C usando Flex y Bison, recuerdo cómo los demás compañeros aún no usaban la característica de atributos sintetizados, haciendoles más dificil la elaboración del mismo. El codigo esta en:

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/COMPI1-proy1-strim/ strim

2. Godzilla.

Bueno, aquí las cosas se empezaron a complicar, me rifaba entre hacer bien éste proyecto y dejar mediocre el de estructuras que estaba haciendo paralelamente… y así fue, me enfoqué más en este proyecto, el que consistía en un mini motor de un subconjunto de PHP, además que debía renderizar el HTML generado.  Desarrollado también en C++ usando QT 3 como framework, y Flex y Bison para el analizador léxico y sintáctico respectivamente, y enfocado desde su concepción a ser compilable y ejecutable tanto en Windows como en Unix.  Recuerdo aún que la mayor complicación de éste era el desarrollo de los ciclos, el cual, con un poco de autoaprendizaje de representaciones intermedias y árboles de sintaxis abstractas,  se simplificó y optimizó bastante la implementación de dicho lenguaje.  El código esta en:

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/COMPI1-proy2-godzilla/ godzilla

Bueno, eso fue compiladores 1, con un primer proyecto trivial, y el segundo no trivial… bastante parecido al semestre actual (enero-junio 2009) en este sentido. Un curso en el cual conocí la Biblia de los compiladores, el magnífico Libro del Dragón, y una introducción a lo que para muchos se convertiría en su peor pesadilla.

PD. Para poder bajarlos, deben instalar el cliente subversion de consola en gnu/linux y ya instalado ejecutar el comando dado en el directorio donde se vaya a bajar. Tambien recomiendo usar el TortoiseSVN si van a bajarlos en Windows

Mis proyectos de sistemas en la USAC parte V: Compiladores 2…

Y luego de la trabada que fue Compiladores 1, Estructuras de Datos, y Organización Computacional.  se deja venir el 6to semestre con muchas más trabadas, solo que ésta vez exponenciales… y no tanto por los cursos de sistemas, sino tambien por Investigación de Operaciones… un curso en donde el que sepa llevar la subjetividad de Vinicio Monzón, el ingeniero que dá el curso, hasta en su auxiliar se puede convertir (sino vean a Patricio AKA César Rojas), pero bueno, ya mucho hablar de basura, y vamos a lo que me incumbe, publicar los proyectos del que, para muchos, es el curso más difícil de la carrera (aunque a mi me haya costado mas la investigacion de operaciones), no tanto por su contenido teórico, sino por la extensión y dificultad de sus proyectos de programación. Me refiero a Organización de Lenguajes y Compiladores 2.   Se realizaron 2 proyectos en este curso cuando lo lleve ya hace algunos años, los cuales son:

1. VMW:

Un proyecto de supuesta máquina virtual, el nombre haciendo alución al VMWare y a los autos BMW., que consiste en un generador de analizadores léxicos, junto con un generador de analizadores LALR que además debe evaluar código embebido, en un lenguaje parecido a php, el cual a la vez teníamos que interpretar con un parser hecho por nosotros mismos también, todo esto obviamente en el lenguaje JAVA con el cual la escuela de sistemas se matrimonió desde el 2006… la verdad considero que fue el proyecto más trabajoso de la carrera (dado que el que más me costó fue el 2do de estructuras, el de los grafos), y eso que fue trabajado en parejas (con mr. chucho, el cual se dedico solamente al módulo de generación de analizadores léxicos, y la GUI, de los cuales el codigo no esta disponible por sus licencias restrictivas).  Bueno, el proyecto fue publicado previamente en este blog, y está mejor descrito en el siguiente URL, desde donde se puede bajar tambien:

https://objektblog.wordpress.com/2007/07/10/proyecto-generador-de-analizadores-lalr-en-java/

2.  EvilGCC

Supuestamente las siglas significaban Erik’s Visual Intermediate Language Generator and Compiler Collection (todavia me acuerdo), y consistia en un compilador básico de 3 lenguajes de programación (Java, C++, y Pascal) a código de 3 direcciones, aunque en realidad soportaba un subconjunto muy reducido de las construcciones de éstos.  También hecho en Java bajo NetBeans.  De lo que más me acuerdo es lo asustado que estaba respecto a que también debíamos implementar un optimizador del código de 3 direcciones generado, y que al final, era la parte más facil del proyecto, haciendo verdadero el dicho que dice El que se ahueva pierda…  El código esta aquí

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/java/COMPI2-PROY2-evilgcc/

Bueno, este fue el curso por los que muchos compañeros se han ido de la carrera, otros han intentado olvidar en el alcohol los traumas psicológicos que le ocasionó tanta gramática…  La verdad el mayor problema que vi yo fue el maldito JLex y Cup… habiendo tantos generadores de analizadores… por qué teniamos que usar lo peor?

PD. Para poder bajarlos, deben instalar el cliente subversion de consola en gnu/linux y ya instalado ejecutar el comando dado en el directorio donde se vaya a bajar. Tambien recomiendo usar el TortoiseSVN si van a bajarlos en Windows

Mis proyectos de sistemas en la USAC parte IV: Lenguajes Formales…

Se me olvidaba un curso de 4to semestre, paralelo a IPC2, uno de los que enseñan lo que es desvelarse echando punta, Lenguajes formales, impartido por el mismísimo Satán.  Era un curso introductorio a Compiladores, y por lo tanto, a nivel de éstos en cuanto a extensión y dificultad en sus proyectos, aunque con menor magnitud obviamente…  Aquí se realizaban 3 proyectos, los cuales se enfocaban en usar 3 diferentes lenguajes para comprobar 3 diferentes paradigmas supuestamente.

1. StaticS:

Éste realizaba cálculos de estadística descriptiva, leyendo un archivo de texto en donde estaba los datos, y sacándolos en un bonito HTML Éste proyecto fue desarrollado en otro lenguaje que destesto,  Pascal;  Quérian obligarme tal y como lo hicieron en IPC 1 a usar el Turbo Pascal, pero no pudieron, mi subversión me llevó a programarlo en Linux usando Free Pascal, un compilador libre y gratuito de Pascal, que tenía muchas más características que el raquítico compilador de Borland. El proyecto se encuentra aqui:

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/pascal/LFP-proy1-StaticS/ statics

2. O-tell-O

Era el primer proyecto de la U que desarrollaba en Java, y como subversivo en cuanto a compiladores, lo desarollé en Netbeans mientras la mayoría prefería usar el Borland JBuilder (Cual era las gana de usar herramientas de Borland me pregunto yo?) ,  Éste proyecto no era más que el jueguito de otello, reversi, o como le quieran llamar, obviamente sin IA ni nada de eso, dado que no daba tiempo para implementarlo.  A continuación el código:

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/java/LFP-proy2-OTELLO/ otello

3. Conjuntivity:

El primer proyecto en el que tuve contacto con un parser verdadero, que tuve que desarrollar a pata con la poca teoria que tenía de parsers recursivos descendentes.  La verdad fue el que me hizo crecer mi expectación por los compiladores, a pesar de ser desarrollado en otro lenguaje que destesto, el Visual Basic .NET. Obviamente, aqui no pude ser tan subversivo, pues para esa época no me quería arriesgar a desarrollarlo en Mono por cuestion de tiempo. no quedó de otra que echar mano del Visual Studio .NET 2002 (el mas buggy de todos) y desarrollarlo.  La solución se encuentra aquí:

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/vb.net/LFP-proy3-Conjuntivity/ conjuntivity

Esos fueron los proyectos de Lenguajes, en los próximos posts estaré de regreso en el 5to semestre, publicando los de Compiladores 1…

PD. Para poder bajarlos, deben instalar el cliente subversion de consola en gnu/linux y ya instalado ejecutar el comando dado en el directorio donde se vaya a bajar. Tambien recomiendo usar el TortoiseSVN si van a bajarlos en Windows