lunes, 4 de junio de 2007

Herramientas para construir modelos computables

Hasta ahora comenté que un programa es un modelo computable de un dominio de problema y que un buen modelo es aquel que "reproduce" cada observación del dominio correctamente.
Ahora quería hablar sobre las herramientas que contamos para crear estos modelos.
La primera y principal es el "Lenguaje de Programación". Esta herramienta es la que permitirá "escribir", "expresar" los modelos que estamos realizando.
Pero además de esta herramienta existen "principios conceptuales" o maneras de pensar sobre los problemas, que vienen dados por el Paradigma al cual adhiere el lenguaje de programación.
Por ejemplo, si usamos Pascal para desarrollar, conceptualmente nuestro modelo estará formado por procedimientos y estructuras de datos, puesto que son las herramientas conceptuales del Paradigma Estructurado.
Si usamos Lisp, nuestro modelo estará compuesto de funciones Lambda que proveerán el sistema de reescritura necesario que simule el dominio de problema en cuestión, puesto que las funciones Lambda son la herramienta conceptual principal del Paradigma Funcional.
Si se usa Smalltalk, solo se utilizarán dos herramientas conceptuales para crear los modelos computables, los Objetos y los Mensajes. Estos son los componentes básicos del Paradigma de Objetos Minimal y Puro. (la idea de Minimal y Puro es una idea que creó Máximo Prieto, por lo menos que yo sepa).
La característica Minimal tiene por objetivo definir el Paradigma con la "mínima" cantidad de elementos básicos e inducir/deducir el resto a partir de estos. Las ventajas de tener una definición Minimal es que dicha definición debería ser simple, puesto que es la más "chica" posible. Por lo tanto, debería ser fácil de recordar, inmune a contradicciones, etc. Tiene todas la características positivas de algo simple.
La característica de Puro evita tomar definiciones de otro Paradigma y tiene por objetivo evitar el "ruido" que se generaría debido a comparaciones y analogías incorrectas con elemetnos de otros Paradigmas.

Por lo tanto, crear un Modelo Computable usando el Paradigma de Objetos, consiste en "combinar" únicamente Objetos y Mensajes. Estos son los "building blocks" de todo aquello que se pueda crear, son los ladrillos y el cemento que nos permitirán construir software. Todos los problemas que se presenten y se quieran resolver con este Paradigma, deberán ser pensados y solucionados solamente con Objetos y Mensajes.
Veremos entonces, a partir de esta premisa, qué es modelar con objetos, en definitiva, qué es un programa desarrollado con el Paradigma de Objetos.

Nota Histórica: El primero en hablar de Paradigmas de Programación fue Robert Floyd en su ACM Turing Award Lecture, "The Paradigms of Programming" en 1979. Aunque él se refería como paradigmas también a lo que actualmente conocemos como Idioms o Técnicas de Programación, el término quedó dentro del vocabulario de nuestra profesión cómo una manera de clasificar los lenguajes de programación, o las distintas maneras de pensar sobre cómo construir modelos de software.

No hay comentarios.: