domingo, 13 de marzo de 2005

Ortogonalidad y Lenguajes de Programación

Después de estar toda la tarde cuidando a Sergio (estamos de Rodríguez los 2), ahora que se ha quedado dormido he vuelto a la carga buscando el ejemplo de la ortogonalidad.

De momento, el más sencillo que he encontrado es la expresión Java

// Inicializar a y b al valor 1

a = b;

// modificar b para que valga 0

Si a y b son tipos primitivos, entonces a valdría 1, mientras que si se modelizan como objetos, entonces valdría 0 (el cambio le afecta porque a es una referencia que apunta b).

Una situación similar aparece en el paso de parámetros de Java, para los tipos primitivos es por copia, mientras que para los objetos es por referencia. Se puede simular el paso por copia mediante clonación...

Después de encontrar el ejemplo, seguí buscando páginas interesantes sobre lenguajes de programación. En especial, busqué una que tenía marcada como bookmark pero había perdido (un fallo de firefox me dejó sin los bookmarks de mi casa). La página es:

An interactive historical roster of computer languages y es increíblemente detallada.

Como efecto lateral encontré otra página interesante que indica los tipos de nombres de los lenguajes de programación: Programming Language Naming patterns


4 comentarios:

NachoR dijo...

hola como va?

che.. vos sabes q estoy viendo esto de ortogonalidad para la facu.

Pero no entendi bien el ejemplo que das...

Bueno, saludos!

labra dijo...

El ejemplo se refiere a que hay 2 características del lenguaje que deberían ser ortogonales (o sea, independientes), pero que no lo son.

Las características son, la asignación (a = b) y los tipos de datos (primitivos/objetos).

Un usuario del lenguaje Java se ve obligado a tener en cuenta que la asignación funciona diferente con tipos de datos primitivos que con objetos, lo cual complica un poco más el aprendizaje y el uso del lenguaje.

Espero que así lo entiendas...

NachoR dijo...

perfectamente.. gracias!! y buen blog!!

carlos dijo...

diskupla amigo porfavor podrias darme ejemplos de ortogonalidad porfavor¡¡¡¡¡