2006/11/17

Imágenes cambiadas de servidor

Bueno, tras diversos "conflictos" con iespana, nos hemos visto obligados a alojar las imágenes en otro servidor y hemos elegido Photobucket para ello. En consecuencia, desde el miércoles no habréis podido disfrutar de los inigualables apoyos gráficos a las entradas referentes a los paradigmas de programación declarativa, imperativa y orientada a objetos. Con objeto de solucionar ese problema, ya que esas entradas no son editables por cuestiones de la asignatura a la que estaban destinados, hemos escrito esta entrada. A continuación figuran las imágenes correspondientes:


Os pedimos a todos disculpas y dinero (siempre, dinero, siempre) por las molestias ocasionadas. Si tenéis hermanas guapas, o deseáis invitarnos a copas (no envenenadas) podéis poneros en contacto con nosotros a través de los comentarios.

Un concurrente saludo de parte del equipo de Degeneración Funcional.

2006/11/14

Programación Orientada a Objetos

La Orientación a Objetos es un paradigma de programación consistente en el empleo de una colección de unidades individuales u objetos que interactúan entre sí. Esto se da en contraposición a la visión tradicional en la que un programa es un compendio de funciones o simplemente intrucciones computables. Podemos remarcar estas cuatro características como propias de la Orientación a Objetos:

- Abstracción: se emplean clases de objetos, que definen características abstractas de los mismos. Estas clases presentan atributos (propiedades de los objetos) y métodos (formas de interactuar con los objetos de la clase). Se crea abstracción modelando clases apropiadas a los problemas presentados de tal forma que alguien que no programe pero esté familiarizado con el problema, sea capaz de reconocer el concepto.

- Herencia: en algunos casos se generan subclases, que no son más que versiones más especializadas de la misma clase, creando una jerarquía. Éstas, heredan atributos y métodos de sus clases padre y, de la misma forma, incorporan los suyos propios. Algunos lenguajes permiten que sus clases hereden de varias clases padre.

- Encapsulamiento: detalla cómo una clase funciona consigo misma y el interfaz que muestra al exterior. Esto permite que ciertas características no puedan ser modificadas externamente, sino que sólo los propios métodos de la clase pueden hacerlo para evitar efectos secundarios inesperados.

- Polimorfismo: implica que el comportamiento de un método varía en función de las clases desde las que se invoca. Dos o más clases pueden reaccionar de diferente forma al mismo mensaje, ya que se pueden definir distintos métodos con el mismo nombre afectando a objetos de diferentes clases.


Fuentes:

Programación Imperativa

- El paradigma imperativo tiene como fundamento que un ordenador almacene una representación codifica en cálculo y ejecute una secuencia de comandos que modifiquen el contenido de dicho almacenamiento, es decir, existe un programa almacenado en memoria que se va ejecutando secuencialmente y que toma unos datos de la memoria, efectúa unos cálculos en base a ella y la actualiza. Por lo tanto, se basa en secuencias de comandos que debe realizar la computador, sentencias que cambian el estado del programa (el contenido de la memoria) indicando a la computadora cómo realizar una tarea. La programación imperativa, en consecuencia, consiste en determinar qué datos son requeridos para el cálculo, asociarlos a direcciones de memoria y efectuar paso a paso una secuencia de transformaciones en dichos datos almacenados, de forma que el estado final represente el resultado correcto.

- Concepto de celda de memoria para almacenar valores: el componente principal de la arquitectura es la memoria, compuesta por un gran número de celdas donde se almacenan los datos. Las celdas tienen nombres por los que son referenciadas y sobre los que se producen efectos de lado y definiciones de alias.

- Operaciones de asignación: cada valor calculado debe ser asignado a una celda. Generalmente, las sentencias realizan una operación sobre información en memoria y la almacenan en memoria para su uso.

- Repetición: un programa imperativo realiza su tarea ejecutando repetidamente una secuencia de pasos elementales. Existen sentencias de bucle que permiten la ejecución de sentencias múltiples veces. Estos bucles pueden ejecutarse un número predeterminado de veces o ejecutarse mientras se cumpla una condición. Asimismo, existen sentencias que permiten que la secuencia de ejecución sea transferida a otra parte del programa, permitiendo el uso de funciones o procedimientos.


Fuentes:

Programación Declarativa

El paradigma declarativo es un paradigma de la programación basado en el desarrollo de programas "declarando" un conjunto de proposiciones, afirmaciones, restricciones o ecuaciones que describen el problema y detallan su solución.

1. Funciones de orden mayor : todos los programas están constituidos mediante definición de funciones puramente matemáticas. Así se dice que una función es de orden mayor si recibe como argumento una función o regresa una función como resultado.

2. Evaluación perezosa: que consiste en que si el resultado de evaluar el primer operando permite deducir el resultado de la operación, entonces no se evalúa el segundo y se devuelve dicho resultado directamente.

3. Lógica de predicados: Utiliza una única regla de inferencia llamada principio de resolución, mediante la cual la prueba de un teorema se puede hacer automáticamente. Esta regla se aplica sobre las formulas surgidas de la lógica de primer orden (lpo) y la demostración de teoremas mediante esta regla de inferencia se lleva a cabo por la reducción al absurdo.

4. Cláusulas de Horn: son reglas del tipo "modus ponendo ponens", es decir, "Si es verdad el antecedente, entonces es verdad el consecuente". Así las cláusulas de Horn son una forma restringida de lógica de predicados con una única conclusión por cláusula. Por ejemplo la regla:

abuelo(X,Y)
padre(X,Z) ^ padre(Z,Y)

Establece que si X es el padre de un Z y éste Z es a su vez padre
de Y, entonces X es abuelo de Y


Fuentes:

2006/11/13

Bienvenidos a Degeneración Funcional

Bienvenidos a Degeneración Funcional, el blog que nace con la vocación de subir periódicamente contenidos informáticos centrados en el "hermoso" mundo de la programación. El blog está dedicado a todos aquéllos que nos sentimos mentalmente perjudicados por el ejercicio de esta noble actividad pero que, atraídos por su irresistible perversión, continuamos apasionadamente con ella.

En esta primera entrada introductoria, nos presentamos como los miembros del Grupo 29 de la asignatura Lenguajes de Programación de la Escuela Superior de Ingeniería Informática de la Universidad de Vigo: GIG_I, Taín y Dargor, que ejercerán como administradores y editores de este blog.


Esperamos que los futuros contenidos sean de vuestro agrado y que acojáis con gozo y satisfacción nuestro agradable y jocoso sentido del humor. Y si no, pues nos da igual que no nos pagan por esto. Y no os vamos a dar las gracias. Gracias.


Sin nada más que contar, saludos del Gran Degenerado Funcional (foto adjunta).