Monday, April 24, 2006

Compiladores Vs Objetos

Esta mañana, Johan Robles nos decia en clases temas que atañen eñ estudio de UML y lenguajes para el diseño.

La discucion que tuve con él fue acerca el polimorfismo:

Este es el ejemplo:
int suma(int a){
...
}

float suma(float a){
...
}
sin embargo yo propuse
int suma(int a){
...
}
int suma(float a){
...
}
int suma(void){
...
}
Y el profesor (Johan) Planteo
#define Object void
Object* suma(float a){
...
}

Pero eso es una forma indirecta de polimorfismo en la salida de datos que se resuelven con la generalizacion (Cast , Up Cast , Down Cast)
Todo esto reactivo mis ganas de seguir trabajando en lenguajes no determinitas, semanticas no determnistas y esas cosas divertidas.
Por otra parte cuando el profesor propuso el modelamiento de problemas a partir de Objetos y su definicion de objetos es una instancia de mi concepcion de reglas y predicados para definir y modelar situaciones con semantica definida.
Hummm, Estas cosas me hacen pensar que no es descabellado implementar una generacion basada en semanticas y predicados, yo que sé Smart Prolog or Native Meta Compiler Compiler.
No he vuelto a tener pesadillas.
Apartir de reglas y semanticas es facil definir el mundo:
Miren esto:
class humano {
estatura : int
color : int
}
begin humano(X) ruler :-
Definicion.
end ruler
begin estatura(X , Humano ) ruler :-
...
end ruler
begin estatura(X , Humano ) ruler :- ...
...
end ruler
Me despido.

No comments: