La Naturaleza del Software

Simplejizando…

20 Diciembre 2011

Una de las ventajas de publicar Ogu en esta etapa es que me permite confrontar mi diseño con los lectores y potenciales usuarios. He recibido comentarios en el blog y en privado que me han permitido enriquecer y determinar algunos problemas en la sintáxis. El principal problema reside en la ambigüedad de las declaraciones, la gramática hasta ahora permitía el uso opcional de las palabras reservadas ‘def’, ‘var’ y ‘val’. De este modo la siguiente declaración x := 1 era equivalente a esta otra: val x := 1 y obligaba al uso de var para las variables mutables: var...

Read more »

El sistema de tipos de Ogu (1)

17 Diciembre 2011
El sistema de tipos de Ogu (1)

Es momento de analizar más detalles del lenguaje de programación Ogu, vamos a partir por su sistema de tipos, este artículo es una introducción al tema.   Ogu es un lenguaje con declaración de tipos estáticos, aunque implementa inferencia de tipos. Veamos algunos ejemplos: i : Int = 0 j := i // j es de tipo Int s : String = “un string” t := s   Ogu tiene “sacarina sintáctica” para soportar tuplas naipe : (Int,String) = (10, “espadas”)  // naipe es una tupla as := (1,”espadas”) Naipe = (Int,String) // Introduce el tipo Naipe como alias...

Read more »

Compiladores

15 Diciembre 2011
Compiladores

Compiladores ahora es un ramo electivo para ingeniería en computación, en la facultad en que estudié. Al menos cuando yo estudié me parece que era obligatorio, y creo que debería ser un ramo obligatorio. Ignoro por que la Universidad de Chile decidió hacer este ramo optativo, ignoro también cuanta gente toma esta materia cada semestre,también he escuchado que la matrícula en computación ha bajado, espero que algún académico me confirme esa información. Como sea, creo que la la no obligatoriedad del curso de compiladores es un error, porque es uno de los ramos que mejor sintetiza todo lo aprendido...

Read more »

Java debe morir

8 Diciembre 2011
Java debe morir

“De todas las formas de adquirir libros se considera la más gloriosa el escribirlos uno mismo” – Walter Benjamin “’Ta muy malo el corralero, y allá en el potrero como viejo está. Hay que ayudarlo a que muera para que no sufra más.” – Sergio Sauvalle Esa pareces ser la consigna desde hace unos dos o tres años, java, como lenguaje de programación, debe dar el paso a lenguajes más modernos. Cuando uno ocupa durante mucho tiempo una herramienta empieza a descubrir sus limitaciones, y trata de hacer cambios para mejorarla, adaptaciones, o derechamente vas a adquirir otra. Es...

Read more »

Gödel

24 Noviembre 2011

por Igor Kramer:

Gödel from Igor Kramer on Vimeo.

La respuesta

17 Noviembre 2011
La respuesta

Dicen que al final de sus días Kurt Gödel trataba de demostrar la existencia de Dios mediante un razonamiento ontológico. En 1960 escribió en sus apuntes sus puntos de vista filosóficos, para él el mundo debía ser racional. Supongo que no habría aceptado los resultados actuales de las ciencias cognitivas. También se dice que era un hombre tímido que vivía un tanto angustiado… Me pregunto ¿Cuál habría sido la respuesta de Gödel al problema que planteamos el domingo? Acá está de nuevo: ¿En qué estaría pensando el profesor que escribió esto en la pizarra? Este es un verdadero ataque...

Read more »

Comprensión de lectura

12 Noviembre 2011
Comprensión de lectura

Resulta que el modelo de cascada es quizás uno de los mayores errores de comprensión de lectura en toda la historia de la ingeniería de software. En 1970 Winston Royce escribe un paper donde, desafortunadamente, usa las palabras “grandiosa aproximación” para referirse a la siguiente figura: En realidad Winston Royce escribió este paper para criticar este modelo, pero terminó siendo citado una y otra vez por la comunidad “científica” como un modelo clásico y establecido. Es típico encontrar referencias del tipo: “el modelo de cascada es un modelo probado (Royce, 1970)”. Pero en realidad Royce inventa este diagrama en...

Read more »

Desde siempre…

18 Octubre 2011
Desde siempre…

“On two occasions I have been asked , ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.” (En dos ocasiones he sido consultado , ‘Diganos por favor, Mr. Babbage, si coloca en la máquina las cifras incorrectas, ¿obtendremos la respuesta correcta? ‘ No soy capaz de comprender el tipo de confusión de ideas que pueda provocar semejante pregunta). – Charles Babbage, 1792-1871  

Read more »

Ensaladas y algoritmos

16 Octubre 2011
Ensaladas y algoritmos

Hace unos de años, probablemente inspirado por Ratatouille, me dió por cocinar. Mi mujer dice que no cocino mal, pero resulto un tanto caro como “chef”, aparte de desordenado (algo para mejorar). Pero he aprendido a preparar algunos platos, y he experimentado con otros, es una actividad que resulta bastante grata y relajante, quizás porque hay una relación con programar un algoritmo eficiente. Una de los platos mas sencillos y entretenidos para aprender a cocinar son las ensaladas, mejor si van acompañadas de alguna salsa. Ayer sábado en la tarde improvisamos con mi hija  mayor y mi esposa una...

Read more »

DMR

13 Octubre 2011
DMR

“C is quirky, flawed, and an enormous success.” – Dennis Ritche C es el lenguaje madre de todos los lenguajes de programación que importan hoy en día.Si fueramos linguistas C sería como el protoindoeuropeo, la teorica lengua que dio origen al sanscrito, el griego antiguo, el germánico, el latín, y de ahí las lenguas romances… Conozco muchos lenguajes de programación, y he escrito miles de lineas de código desde assembler hasta Groovy, pero mi lenguaje matriz es C, a pesar de que aprendí Ratfor, y Pascal antes. Hace poco escribí en mi trabajo un programita en C que convirtió...

Read more »