Sie sind auf Seite 1von 14

2016

Introduccin
A lo largo de sta prctica encontraremos una breve historia de prolog, desde su
funcin, origen, creadores y diferentes ambientes de desarrollo que podemos
encontrar hasta la fecha, as como tambin conoceremos el tipo de licencia qu
maneja cada entorno de desarrollo, distinguiremos cules son de uso comercial y
cules no. Por ltimo, se presenta el ambiente de programacin Amzi Prolog, el
cul utilizaremos a lo largo del curso, esto con el objetivo de conocer sus
principales componentes y aprender la relacin que existe entre ellos.

Desarrollo

I. El lenguaje de Programacin Prolog

I.1 Qu es?
El Prolog (o PROLOG), proveniente del francs PROgrammation en
LOGique, es un lenguaje para programar artefactos electrnicos
mediante el paradigma lgico con tcnicas de produccin final
interpretada. Es bastante conocido en el rea de la Ingeniera
Informtica para investigacin en Inteligencia Artificial. (Prolog,
2016)

I.2 Historia
Prolog es un lenguaje de programacin simple pero poderoso
desarrollado en la Universidad de Aix-Marseille (Marsella, Francia)
por los profesores Alain Colmerauer y Philippe Roussel, como una
herramienta prctica para programacin lgica. Naci de un
proyecto que no tena como objetivo la implementacin de un
lenguaje de programacin, sino el procesamiento de lenguajes
naturales. Alain Colmerauer y Robert Pasero trabajaban en la parte
del procesado del lenguaje natural y Jean Trudel y Philippe Roussel
en la parte de deduccin e inferencia del sistema. Interesado por el
mtodo de resolucin SL, Trudel persuadi a Robert Kowalski para
que se uniera al proyecto, dando lugar a una versin preliminar del
lenguaje Prolog a finales de 1971 y apareciendo la versin definitiva
en 1972. Esta primera versin de Prolog fue programada en ALGOL
W.Inicialmente se trataba de un lenguaje totalmente interpretado
hasta que, en 1983, David H.D. Warren desarroll un compilador
capaz de traducir Prolog en un conjunto de instrucciones de una
mquina abstracta denominada Warren Abstract Machine, o
abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-
interpretado.
Si bien en un principio se trataba de un lenguaje de uso reducido, la
aparicin de intrpretes del mismo para microordenadores de 8 bits
(ej: micro-PROLOG) y para ordenadores domsticos de 16 bits (ej:
Turbo PROLOG de Borland, entre otros muchos) a lo largo de la
dcada de 1980 contribuy notablemente a su popularizacin. Otro
importante factor en su difusin fue la adopcin del mismo para el
desarrollo del proyecto de la quinta generacin de computadoras a
principios de la dcada de los 1980, en cuyo contexto se desarroll
la implementacin paralelizada del lenguaje llamada KL1 y del que
deriva parte del desarrollo moderno de Prolog. Las primeras
versiones del lenguaje diferan, en sus diferentes implementaciones,
en muchos aspectos de sus sintaxis, emplendose mayormente
como forma normalizada el dialecto propuesto por la Universidad de
Edimburgo , hasta que en 1995 se estableci un estndar ISO
(ISO/IEC 13211-1), llamado ISO-Prolog. (Prolog, lenguaje de
programacin., n.d.)

II. Ambientes de Programacin Prolog

Prolog es un lenguaje de programacin seminterpretado. Su


funcionamiento es muy similar a Java. El cdigo fuente se compila a un
cdigo de byte el cul se interpreta en una mquina virtual denominada
Warren Abstract Machine (comnmente denominada WAM).

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

Un compilador: Transforma el cdigo fuente en cdigo de byte. A


diferencia de Java, no existe un Standard al respecto. Por eso, el cdigo
de byte generado por un entorno de desarrollo no tiene por que
funcionar en el intrprete de otro entorno.

Un intrprete: Ejecuta el cdigo 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 lnea 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 bsicas como manipular
cadenas, entrada/salida, etc.

Generalmente, los entornos de desarrollo ofrecen extensiones al


lenguaje como pueden ser la programacin con restricciones,
concurrente, orientada a objetos, etc. El entorno de desarrollo ms
popular: SICStus Prolog, si bien, se trata de un entorno de desarrollo
comercial (no gratuito).
SICStus, CIAO Prolog, y posiblemente otros ms, ofrecen entornos
integrados generalmente basados en Emacs que resultan muy fciles de
usar. CIAO Prolog adems ofrece un auto documentador similar al
existente para Java adems de un preprocesador de programas.
Prcticamente todos ellos son multiplataforma. (Prolog, lenguaje de
programacin., n.d.)

II.1 Cules hay?

SICStus Prolog
SICStus Prolog es una, compatible con el estndar ISO, sistema de
desarrollo del estado de la tcnica de Prolog.

SICStus est construido alrededor de un motor de Prolog alto


rendimiento que puede utilizar todo el espacio de memoria virtual.
SICStus Prolog es eficiente y robusto para grandes cantidades de
datos y aplicaciones de gran tamao. (Sicstus prolog - leading
prolog technology, n.d.). (Sicstus Prolog, n.d.)

CIAO Prolog
Es un lenguaje de programacin de propsito general que soporta la
lgica , restriccin , funcional , de orden superior , y la programacin
orientada a objetos estilos. Sus principales objetivos de diseo son
de alta potencia expresiva , la extensibilidad , la seguridad, la
fiabilidad y la ejecucin eficiente.

Ciao ofrece un completo sistema Prolog (soporte ISO -Prolog),


subconjuntos declarativas y extensiones de Prolog, programacin
funcional (incluyendo la evaluacin perezosa ), de orden superior
(con abstracciones predicado), programacin con restricciones y
objetos , as como los trminos de caractersticas (fichas ), la
persistencia, varias normas de control (bsqueda primero en
amplitud, la profundizacin iterativa, ...), de concurrencia (hilos /
motores), ejecucin distribuida (agentes), y la ejecucin en paralelo.
(CIAO, n.d.)

SWI-Prolog
Es una implementacin en cdigo abierto (en ingls, open source) del
lenguaje de programacin Prolog. Su autor principal es Jan Wielemaker.
En desarrollo ininterrumpido desde 1987, SWI-Prolog posee un rico
conjunto de caractersticas, bibliotecas (incluyendo su propia biblioteca
para GUI, XPCE), herramientas (incluyendo un IDE) y una
documentacin extensiva. SWI-Prolog funciona en las plataformas Unix,
Windows y Macintosh. (SWI Prolog, n.d.)

Amzi! Prolog
Es una aplicacin extensible integrable, altamente porttil de la norma
ISO Prolog estndar, que incluye soporte completo para los mdulos
ISO que permiten el desarrollo de aplicaciones a gran escala. (Amzi!
Inc., n.d.)

Visual Prolog
Turbo Prolog es un completo sistema de desarrollo de software que
incluye un compilador y un entorno de desarrollo integrado (IDE) para el
lenguaje de programacin PROLOG, desarrollado por Borland, dentro
de la familia de productos Turbo (Turbo C, Turbo Pascal, Turbo
Assembler, Turbo Basic, etc). (Visual Prolog, 2016)
GNU Prolog

El GNU Prolog (tambin llamado gprolog) es un compilador con un


ambiente interactivo de depuracin para el lenguaje Prolog disponible
para Unix, Windows y Mac OS X. Tambin soporta algunas extensiones
al Prolog incluyendo programacin con restricciones sobre un dominio
finito, parsing usando gramticas clusula definida, y una interface de
sistema operativo.

El compilador convierte el cdigo fuente de Prolog en byte code que se


puede ser interpretado por una mquina abstracta de Warren y convierte
esto en cdigo ejecutable independiente. (GNU Prolog, n.d.)

II.2 Tipos de licencia que manejan

Ambiente de Programacin Tipo de licencia


SWI-Prolog Open source Software libre
Sicstus Prolog Desarrollo comercial
CIAO-Prolog Open source Software libre
Amzi! Inc. Open source Software libre
Visual Prolog Desarrollo comercial
GNU Prolog Open source Software libre
(White paper Programacin lgica, n.d.)

III. El ambiente de programacin PROLOG Amzi! Prolog + Logic Server

Amzi! Prolog es una aplicacin integrable, extensible y porttil de la


norma ISO Prolog estndar, con un entorno interactivo profesional pleno
desarrollo (IDE) implementado como un plug-in de Eclipse.
Amzi! Prolog + Logic server utiliza una arquitectura de mquina virtual
similar a la de Java. El cdigo Prolog puede ser o bien interpretado o
compilado.Tanto el cdigo fuente interpretado y el cdigo binario
compilado son independientes de la mquina y apenas requieren un
Amzi! mquina virtual para ejecutar en cualquier plataforma soportada.
(Amzi! Inc., n.d.)

III.1Dnde se consigue?
Podemos descargar Amzi! Prolog desde la pgina oficial
http://www.amzi.com/ en el apartado Amzi! Prolog + Logic Server.

(Amzi! Inc., n.d.)

III.2Procesos de instalacin
1. Nos dirigimos al enlace de descarga anterior y seleccionamos el
paquete de acuerdo a nuestro S.O. deberemos descargar Amzi!
Prolog Logic server y Amzi! Eclipse IDE Plug-in.
2. Descomprimimos el archivo Amzi! Prolog + Logic server en un
directorio nombrado amzi, en subdirectorio apls

3. El listener se encuentra en el directorio bin, llamado * alis (.exe) *. Se


puede ejecutar desde all. Y veremos una pantalla como la siguiente:

4. Deberemos de crear la variable de entorno AMZI_DIR que apunte a


apls (el directorio creado anteriormente). Nota: En Windows, la
variable de entorno la creamos desde panel de control > sistema >
Configuracin avanzada del sistema > variables de entorno.
5. Por ltimo, agregamos AMZI_DIR/bin directory en el PATH.

IDE
1. Descargamos amzi_eclipse_plugin, en la carpeta amzi, creamos un
subdirectorio llamado ide, en sa carpeta descargamos una copia de
eclipse.
2. Abrimos eclipse y agregamos los plugin desde la pestaa Help >
Installation Details. (Amzi prolog instructions, n.d.)
3. Nos aparecer la siguiente pantalla, desde la cual agregaremos los
plug ins descargados.

4. Por ltimo, para corroborar la versin de Amzi que tenemos, nos


vamos a la pestaa help > Amzi! Versin
III.3Descripcin del ambiente
La pantalla principal, est integrada por los siguientes componentes, los
cuales se describirn a continuacin.
(Prolog Tools, n.d.)

III.4Componentes

Perspectivas, editores y vistas: en Eclipse el concepto de trabajo


est basado en las perspectivas, que no es otra cosa que una pre
configuracin de ventanas y editores, relacionadas entre s, y que
nos permiten trabajar en un determinado entorno de trabajo de
forma ptima.

Gestin de proyectos: el desarrollo sobre Eclipse se basa en los


proyectos, que son el conjunto de recursos relacionados entre s,
como puede ser el cdigo fuente, documentacin, ficheros
configuracin, rbol de directorios, ... El IDE nos proporcionar
asistentes y ayudas para la creacin de proyectos. Por ejemplo,
cuando creamos uno, se abre la perspectiva adecuada al tipo de
proyecto que estemos creando, con la coleccin de vistas, editores y
ventanas pre configurada por defecto.

Depurador de cdigo: se incluye un potente depurador, de uso fcil


e intuitivo, y que visualmente nos ayuda a mejorar nuestro cdigo.
Para ello slo debemos ejecutar el programa en modo depuracin
(con un simple botn). De nuevo, tenemos una perspectiva
especfica para la depuracin de cdigo, la perspectiva depuracin,
donde se muestra de forma ordenada toda la informacin necesaria
para realizar dicha tarea.

Extensa coleccin de plug-ins: estn disponibles en una gran


cantidad, unos publicados por Eclipse, otros por terceros. Al haber
sido un estndar de facto durante tanto tiempo (no el nico estndar,
pero s uno de ellos), la coleccin disponible es muy grande. Los hay
gratuitos, de pago, bajo distintas licencias, pero casi para cualquier
cosa que nos imaginemos tenemos el plug-in adecuado.

III.5Relacin entre sus componentes


Prolog Perspective

Eclipse soporta mltiples entornos de desarrollo del lenguaje. Estos


son los llamados 'Perspectivas'. Puede abrir una perspectiva desde
la pestaa window | open perspective, o pulsando sobre los botones
en la barra vertical en el borde izquierdo. El botn de la pata muestra
la perspectiva de Prolog. El botn del insecto muestra la perspectiva
de depuracin.

Prolog projects
Un proyecto Prolog se compone de todos los archivos de origen en la
carpeta del proyecto. archivos fuente de Prolog deben tener una
extensin .pro. Cuando la construccin de un proyecto de todos los archivos
de origen se compilan son vinculados en un archivo .xpl. Por defecto, los
archivos binarios se almacenan en un subdirectorio llamado 'bin'. (Botn
derecho del ratn y seleccione "Build Project" o utilizar el men proyecto
para construir un proyecto de Prolog. La opcin de generacin automtica
se desactiva cuando se utiliza el punto de vista de Prolog.
Crear proyectos
Para crear un nuevo proyecto, seleccione Archivo | Nuevo proyecto, a
continuacin, Proyecto Prolog. Los proyectos pueden ser creados en el
directorio de espacio de trabajo de Eclipse o en un disco o directorio
diferente. Tambin puede crear un nuevo proyecto de Prolog en un
directorio existente, en cuyo caso se incluirn todos los archivos .pro en ese
directorio en el nuevo proyecto.
Cuando se crea un proyecto, desde su directorio amzi.cfg Amzi / config se
copia en su proyecto.

Abrir, cerrar y eliminar proyectos


Para abrir o reabrir un proyecto existente, seleccione Archivo | importacin |
Proyecto existente en el espacio de trabajo.
Puede cerrar un proyecto en la vista del navegador haciendo clic derecho
sobre ella y seleccionando Cerrar proyecto
Puede eliminar un proyecto desde el punto de vista del navegador (y el
espacio de trabajo de Eclipse) tambin haciendo clic derecho y
seleccionando Eliminar. Esto es un poco desconcertante, pero se pregunta
si desea eliminar o no el contenido real del proyecto. Al elegir no hacer esto,
slo tiene que quitar el proyecto desde el punto de vista del navegador y se
puede volver a abrir ms adelante mediante la importacin.
Staring the Listener
El oyente Prolog es un entorno interactivo que permite a un programador
para consultar cualquier parte de la base lgica Prolog, o programa. Es una
poderosa herramienta de desarrollo de aplicaciones y prueba.
Seleccione Run / Listener,
Con un proyecto o editor seleccionado, haga clic en Run/ Run as/interpreted
Project

Ejecucin de programas compilados


Para ejecutar un archivo XPl compilado / vinculado, seleccione Run| Run As |
Compiled Project.
Inicio del depurador de cdigo fuente
Con un proyecto o editor seleccionado, elija Debug| Debug as | Interpreted Project
o Interpreted Single File para iniciar el depurador de cdigo fuente. (La opcin de
men 'Prolog remoto' es para la depuracin de archivos xPL ejecuta en otros
idiomas / sistemas como Java, C ++, servidores web, etc.)
El depurador se abrir la perspectiva de depuracin con una depuracin de
escucha en la parte inferior de la pantalla. (Eclipse IDE, n.d.)
Conclusin general
1.- Es importante tener conocimiento acerca de los diversos entornos de desarrollo
prolog, para poder elegir el ms apropiado de acuerdo a nuestras necesidades,
as como tambin conocer el entorno en el cul se trabajar, ya que esto permitir
desarrollar proyectos con facilidad.

Referencias:
Amzi prolog instructions [en lnea], (n.d.). Amzi Prolog instructions.
[fecha de consulta: 21 de agosto de 2016]. Disponible
en:<http://www.amzi.com/AmziOpenSource/amzi_install_instructions.php
>

Amzi! inc. [en lnea], (n.d.).Amzi! inc. [fecha de consulta: 20 de agosto


de 2016]. Disponible en:< http://www.amzi.com/>

CIAO. [en lnea], (n.d.). CIAO-lenguaje de Programacin. [fecha de


consulta: 20 de agosto de 2016]. Disponible en:<
https://en.wikipedia.org/wiki/Ciao_(programming_language)>

Eclipse IDE. [en lnea], (n.d.). GNU Prolog. [fecha de consulta: 21 de


agosto de 2016]. Disponible en:<
http://www.amzi.com/manuals/amzi/pro/pug_ide.htm>

GNU Prolog. [en lnea], (n.d.). GNU Prolog. [fecha de consulta: 20 de


agosto de 2016]. Disponible en:< http://www.gprolog.org/>

Prolog. [en lnea], (2016). Prolog. [fecha de consulta: 20 de agosto de


2016]. Disponible en:< https://es.wikipedia.org/wiki/Prolog>

Prolog, lenguaje de Programacin. [en lnea], (2016). Prolog, Lenguaje


de Programacin. [fecha de consulta: 20 de agosto de 2016]. Disponible
en:<http://www.ecured.cu/Prolog_(Lenguaje_de_programaci%C3%B3n)>

Prolog Tools. [en lnea], (2016). Prolog Tools. [fecha de consulta: 21 de


agosto de 2016]. Disponible en:<
http://www.amzi.com/AdventureInProlog/aprolog.php>

Sicstus Prolog. [en lnea], (n.d.). Sicstus prolog - leading prolog


technology. [fecha de consulta: 20 de agosto de 2016]. Disponible en:<
https://www.sics.se/projects/sicstus-prolog-leading-prolog-technology>

SWI Prolog. [en lnea], (n.d.). SWI Prolog. [fecha de consulta: 20 de


agosto de 2016]. Disponible en:< http://www.swi-prolog.org/>

Visual Prolog. [en lnea], (2016). Visual prolog. [fecha de consulta: 20 de


agosto de 2016]. Disponible en:<
https://en.wikipedia.org/wiki/Visual_Prolog>

White paper. [en lnea], (n.d.). White paper Programacin lgica. [fecha
de consulta: 20 de agosto de 2016]. Disponible en:
<http://www.amzi.com/articles/code07_whitepaper.pdf

Das könnte Ihnen auch gefallen