miércoles, 1 de enero de 2014

Un Libro al Mes: Enero

En el pasado post ( http://bulda-e-blog.blogspot.com/2013/12/graciabale-2013-palante-marik-2014.html ), último del 2013, una de las cosas que me propuse fue leer al menos un buen libro al mes. Así, puedo aprovechar las maravillas que recién he redescubierto en la biblioteca de la USB y que no puedo seguir ignorando así (must learn new things! XD).

El libro que me propongo leer para Enero está íntimamente relacionado con mi trabajo de maestría, como un antecedente de suma importancia. Como para no salir del tema (dado que pronto sería la defensa) y ahondar más en lo que considero un libro bastante interesante y divertido de leer, me propongo leer entonces:

"Predicate Calculus and Program Semantics"
de Edsger Dijkstra y Carl Scholten
(publicado en 1990, por la editorial Springer-Verlag)

Ya he leído dos o tres capítulos del libro y está sumamente bien escrito, fácil de entender e interesante. Además, la clásica arrogancia de Dijkstra hace que algunos párrafos hasta den un poco de risa, jajaja. Después de todo, Alan Kay decía: "Arrogance in Computer Science is measured in nano-Dijkstras". No puede constarme que así sea, pero aún así la cita es épica. XD

Una vez termine de leerlo posiblemente escriba otro post con lo que más me gustó, lo que no y lo que considero lo más importante/divertido/interesante del libro. Por ahora, les cuento que muy a grandes rasgos el libro trata de explicar un cálculo (reglas de manipulación) aplicado a programas y especificaciones para los mismos, introduciendo con este objetivo los transformadores de predicados (concentrándose principalmente en la precondición más débil). Para esto, se propone una manera ecuacional de tratar con la lógica de predicados que ellos mismos describen como lo suficientemente formal como para que no haya confusiones, pero sin llegar al punto de que las manipulaciones sean ilegibles y antintuitivas.

Nota aparte, es gracioso como muchos nombres famosos de las ciencias de la computación son reconocidos por trabajos que quizá no fueron los más relevantes que tuvieron (al menos en mi opinión). Dijkstra es mayormente conocido por su algoritmo para hallar caminos de costo mínimo, en grafos sin arcos de costo negativo, en O(n.log(n)). Sin embargo, su mayor contribución es posiblemente aquella de los transformadores de predicados para razonar sobre programas (y muchas otras cosas más). Igualmente, Tony Hoare es conocido por su algoritmo de ordenamiento de arreglos: Quicksort. En mi opinión, su definición de tripletas de programas y especificaciones en conjunto con las relgas de manipulación de las mismas es mucho más relevante. Aunque bueno, ese pudiera ser el "formal methods geek" en mi hablando simplemente, jajaja. :P

Bueno, con esto los dejo por ahora. ¡Es el primer post de muchos en el 2014! Y todo el que quiera sigue bienvenido de compartir la bulda.e.locura si les parece interesante, jeje. Hasta la próxima. Bytes! :D

No hay comentarios:

Publicar un comentario