ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

LENGUAJES DE PROGRAMACION


Enviado por   •  11 de Mayo de 2014  •  1.353 Palabras (6 Páginas)  •  214 Visitas

Página 1 de 6

Prolog es un lenguaje de programación seminterpretado. Su funcionamiento es muy similar a Java. El código fuente se compila a un código de byte el cuál se interpreta en una máquina virtual denominada Warren Abstract Machine (comúnmente denominada WAM).

Por eso, un entorno de desarrollo Prolog se compone de:

 Un compilador: Transforma el código fuente en código de byte. A diferencia de Java, no existe un Standard al respecto. Por eso, el código de byte generado por un entorno de desarrollo no tiene por que funcionar en el intérprete de otro entorno.

 Un intérprete: Ejecuta el código de byte. Un shell o top-level. Se trata de una utilidad que permite probar los programas, depurarlos, etc. Su funcionamiento es similar a los interfaces de línea de comando de los sistemas operativos.

 Una biblioteca de utilidades: Estas bibliotecas son, en general, muy amplias. Muchos entornos incluyen (afortunadamente) unas bibliotecas standard-ISO que permiten funcionalidades básicas como manipular cadenas, entrada/salida, etc.

Generalmente, los entornos de desarrollo ofrecen extensiones al lenguaje como pueden ser la programación con restricciones, concurrente, orientada a objetos, etc. Sería injusto no mencionar aquí el entorno de desarrollo más popular: SICStus Prolog, si bien, se trata de un entorno de desarrollo comercial (no gratuito).

SICStus, CIAO Prolog, y posiblemente otros más, ofrecen entornos integrados generalmente basados en Emacs que resultan muy fáciles de usar. CIAO Prolog además ofrece un auto documentador similar al existente para Java además de un preprocesador de programas. Prácticamente todos ellos son multiplataforma.

Elementos en Prolog

Como hemos especificado antes, para construir programas en Prolog necesitamos una serie de elementos. Vamos a especificarlos:

 Átomos: Es una definición genérica de un objeto del mundo que queremos representar.

 Predicados: Nos permite especificar características de los objetos de nuestro mundo o las relaciones entre ellos.

Hechos

Es algo que está ocurriendo en el mundo, característica o relación entre objetos. En el lenguaje natural un hecho podría ser por ejemplo que Lógica y Compatibilidad es una asignatura de Ingeniería Informática. Expresan relaciones entre objetos. Suponiendo que se quiera expresar el hecho de que "un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de una relación llamada "tiene". La forma de representarlo en PROLOG es: tiene(coche,ruedas).

 Los nombres de objetos y relaciones deben comenzar con una letra minúscula.

 Primero se escribe la relación, y luego los objetos separados por comas y encerrados entre paréntesis.

 Al final de un hecho debe ir un punto (".").

El orden de los objetos dentro de la relación es arbitrario, pero debemos ser coherentes a lo largo de la base de hechos.

Variables

No es variable con el concepto que se tiene de ella en la programación habitual. En Prolog, una variable representa el valor de un Átomo. Representan objetos que el mismo PROLOG determina. Una variable puede estar instanciada ó no instanciada. Estar instanciada cuando existe un objeto determinado representado por la variable. Los nombres de variables comienzan siempre por una letra mayúscula.

Un caso particular es la variable anónima, representada por el carácter subrayado ("_"). Es una especie de comodín que utilizaremos en aquellos lugares que debería aparecer una variable, pero no nos interesa darle un nombre concreto ya que no vamos a utilizarla posteriormente.

Reglas

Las reglas se utilizan en PROLOG para significar que un hecho depende de uno ó mas hechos. Son la representación de las implicaciones lógicas del tipo p ---> q (p implica q).

 Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-".

 La cabeza está formada por un único hecho.

 El cuerpo puede ser uno ó mas hechos (conjunción de hechos), separados por una coma (","), que actúa como el "y" lógico.

 Las reglas finalizan con un punto (".").

La cabeza en una regla PROLOG corresponde al consecuente de una implicación lógica, y el cuerpo al antecedente. Este hecho puede conducir a errores de representación. Supongamos el siguiente razonamiento lógico: tiempo(lluvioso) ----> suelo(mojado) suelo(mojado)

Que el suelo está, mojado, es una condición suficiente de que el tiempo sea lluvioso, pero no necesaria. Por lo tanto, a partir de ese hecho, no podemos deducir mediante la implicación, que está, lloviendo (pueden haber regado las calles). La representación correcta en PROLOG, sería:

suelo(mojado):- tiempo(lluvioso). suelo(mojado).

Adviértase que la regla está "al revés". Esto es así por el mecanismo de deducción hacia atrás que emplea PROLOG. Si cometiéramos

...

Descargar como (para miembros actualizados)  txt (9.3 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com