<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d9665506\x26blogName\x3dMi+blog!\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://zirrus.blogspot.com/search\x26blogLocale\x3des_ES\x26v\x3d2\x26homepageUrl\x3dhttp://zirrus.blogspot.com/\x26vt\x3d-7334819199369966265', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

miércoles, diciembre 22, 2004

Dichosas practicas

Vengo cabreado por las puñeteras practicas de Procesadores de Lenguaje.

Las practicas consisten en crean un compilador, con todo lo que ello conlleva, desde el analisis del codigo y su corrección, hasta la generación de codigo intermedio y codigo ensamblador. Incluyendo optimizaciones. Para ello hacemos uso de Flex y Bison.

Hemos (digo hemos porque las practicas se realizan en parejas de 2 alumnos) implementado suficiente codigo como para reconocer ficheros escritos en nuestro lenguaje. Pero ahora nos hemos metido con la tabla de símbolos y la estabamos implementando cuando ocurrió el desastre.

¿Como es posible que uno sepa programar lo suficiente como para defenderse aceptablemente al realizar cualquier programa en C (maravilloso C), y luego se quede parado por culpa de un programa de "terceros"? Ese es el problema. En las practicas usamos flex y bison para crear los analizadores léxicos y sintácticos (y además dar una semántica al lenguaje), y cuando llega el momento de unir implementaciones, la cosa no va.

¿De quién es la culpa? El gcc escupe errores absurdos que uno no sabe solucionar porque precisamente los crean esas herramientas de terceros. Vas al manual y no hay ningun ejemplo que te solucione el problema, buscas en internet el error que devuelve gcc y nada.

¿Y ahora qué? ¿Eso significa que no sepamos poner en práctica los conocimientos teóricos de la asignatura a la que pertenece la práctica? Por supuesto, no. Como siempre, ahora tocará reventarse los sesos para solucionar el problema, de eso van las practicas. Pero mientras perdemos el tiempo de prácticas en ello, cuando realmente deberíamos estar adelantando y centrándonos en lo que realmente nos interesa: Realizar el compilador.

Solucion: Como se dice por ahi AJO Y AGUA (A JOderse y a AGUAntarse), tocará buscar el error y corregirlo, vamos, sacar las castañas del fuego personalmente.

Nos vemos!