8.09.2006

EL viejo dilema del GOTO, reparando radios y 'hello world'








To use or not to use the GOTO statement: Programming styles viewed from Hoare Logic
Desde siempre ciertos estilos de programación han sido criticados, menos preciados e incluso se han mal interpretado. Sin embargo las metricas para medir que tan bueno es un estilo ha sido mas bien poco estudiado y la mayoria de apreciaciones frente a ciertos estilos no pasan de juicios o apreciaciones subjetivas de unos cuantos gurus. Desde la famosa carta de Dijkstra al editor de CACM en 1968 el debate sobre el uso de GOTO ha sido activo y finalmente se ha convertido en un tema aburrido. La principal objecion siendo el llamado "efecto espagueti", programas secuenciales en los que se pierde el rastro de lo que se esta haciendo. En este paper se trata este viejo problema, entendiendo por GOTO cualquier tipo de salto incluyendo exit y break. El paper es "ladrilludo" y requiere conocimiento de la logica de Hoare. Se aplican las pruebas de Hoare para verificar el uso de GOTO en dos situacines: 1. para salir de ciclos anidados y 2. para expresar transiciones de estado en programación a traves del modelo de maquina de estados finitos. En ambos casos los resultados justifican el uso del GOTO. Teniendo en cuenta la rigurosidad de las pruebas de Hoare sin lugar a dudas un paper para tener presente a la hora de escribir unas cuantas lineas de código, en especial si algún guru cerca a usted sigue pensando que: Programación estructurada = Programación sin GOTO.




Can a biologist fix a radio?—Or, what I learned while studying apoptosis El temor a que todo fuera publicado antes de tener la oportunidad de montar su propio laboratorio llevo al Dr. Yuri Lazebnik a escribir este interesante paper. De alguna manera todos los que trabajamos en ciencias, en particular en campos activos donde trabaja un buen numero de personas alguna vez sentimos esa sensacion de: todos publican, menos yo. La apoptosis o muerte celular es un campo de activa investigación en la mayoría de centros alrededor del planeta, esto es porque la apoptosis se cree esta ligada directamente con el cancer y de entenderla completamente algunos piensan en la aparicióon de una cura que generaria billones en ganancias. Con 10,000 papers publicados al año es fácil entender porque cualquiera que este empezando en este campo se sentiria un poco afanado y porque no, desmotivado. Haciendo una analogía de la célula con un radio común (un transductor de señales), el Dr. Lazebnik busca entender como los biologos han estado estudiando durante los ultimos años y trata de mostrar como multiples errores se han venido cometiendo. En particular el escaso uso de modelos fisicos/matematicos para explicar ciertos procesos celulares. Por ejemplo, el analisis de señales tan comun en ingenieria apenas se empieza a aplicar en las areas biologicas. Tambien con esta analogia muestra como un gran número de publicaciones en un campo en particular no significa que halla progreso.


"Hello World"

Es practica común en programación escribir un pequeño programa para iniciarse en un lenguaje. Usualmente se refiere a este programa como 'Hello World'. En el link anterior se encuentra una lista muy divertida con programas de este tipo. De la lista en particular me gustan los siguientes(en especial 'Chief Manager', siento como si lo estuviera viendo tipear):


High School/Jr.High
10 PRINT "HELLO WORLD"
20 END
First year in College
program Hello(input, output)
begin
writeln('Hello World')
end.
Senior year in College
(defun hello
(print
(cons 'Hello (list 'World))))
New Manager
10 PRINT "HELLO WORLD"
20 END
Middle Manager

mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
Senior Manager
% zmail jim
I need a "Hello, world." program by this afternoon.

Chief Executive

% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

|