Micro-PROLOG

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

micro-PROLOG es el nombre de una variante o dialecto del lenguaje PROLOG, inicialmente creada para microordenadores de 8 bits, popularizada a principios de la década de 1980. Fue usado en la enseñanza pública, normalmente como introducción a la programación lógica y a la Inteligencia Artificial.

Historia[editar]

Las primeras versiones fueron implementadas en el Imperial College de Londres, por Frank McCabe y Richard Ennals, bajo la supervisión de Robert Kowalski entre 1979 y 1980.

LPA micro-PROLOG[editar]

Comercializado a partir de 1980 por la empresa británica LPA Ldt. (Logic Programming Associates Limited), se realizaron versiones de 8 bits para varios ordenadores, como el ZX Spectrum,[1] [2] el Commodore 64,[3] el BBC Micro,[4] [5] el Enterprise,[6] el MSX[7] y el Apple II, entre otros. También se lanzó una versión para el sistema operativo CP/M,[8] tanto en su implementación para el microprocesador Zilog Z80 de 8 bits como en la realizada para el Intel 8086 de 16 bits (CP/M-86). En esta misma linea de implementaciones para sistemas de 16 bits se realizó una versión para QDOS,[9] el sistema operativo de los Sinclair QL, una versión para el sistema MS-DOS[10] y otra para sistemas UNIX.[11] Tras el LPA micro-PROLOG 3.1 aparecido en 1984, la misma compañía renombró el producto a LPA micro-PROLOG Professional[12] en 1985 y un poco más tarde a LPA PROLOG Professional.[13] Con posterioridad esta misma empresa abandonó la particular sintaxis del micro-PROLOG en sus siguientes productos.

Con posterioridad han aparecido algunas versiones no oficiales, como la realizada para el sistema operativo de disco TR-DOS del ZX Spectrum por Nicolas Rodionov.[14]

Derivados[editar]

La influencia de micro-PROLOG ha sido escasa en lenguajes posteriores, si bien algunos han adoptado algunas de sus características. El FRIL (Fuzzy Relational Inference Language) es una notable excepción, ya que basa explícitamente su sintaxis en él, sin ser no obstante plenamente compatible con el micro-PROLOG. Desarrollado en el seno de la Universidad de Bristol, la versión más reciente de este lenguaje es la 4.9, aunque desde 2003 no ha sido actualizado.

Su continuador más reciente ha sido hasta ahora el EDULOG,[15] desarrollado a partir de 1999 y basado en la experiencia adquirida tras trabajar en el área educativa durante años con micro-PROLOG. Creado por el Grupo de Programación Funcional y Lógica, un equipo de trabajo integrado por docentes y alumnos de la Universidad Nacional de Luján y de la Universidad Nacional de la Pampa, ambas de Argentina, pretende superar los inconvenientes que plantea la utilización del habitualmente empleado interface SIMPLE y otros problemas observados en el apredizaje que derivan de las características sintácticas propias del lenguaje, como el abundante uso de paréntesis o el formato rígido de algunas consultas.[16]

En 1986 Van Caneghem publicó el código fuente en PASCAL de un intérprete llamado Micro Prolog II en su libro "L'anatomie de Prolog" (ISBN 2-7296-0149-X). Un intérprete distribuido como código fuente, escrito para Modula-2 por Umberto Salsi, y llamado simplemente PROLOG,[17] basa explícitamente su sintaxis en la del micro-PROLOG con interface SIMPLE, sin llegar a ser enteramente compatible con el mismo. Otro intérprete de micro-PROLOG en PASCAL fue realizado por Zoran Budimac en 1990.[18]

Relacionados[editar]

Dada la relación entre el Lisp y el micro-PROLOG, algunas implementaciones de Prolog en Lisp y en Scheme (un dialecto del Lisp) muestran gran similitud con el micro-PROLOG. En el libro "The implementation of Prolog" (Princeton University Press, 1993, ISBN 0-691-08757-1) de Patrice Boizumault aparece el código fuente en Lisp, de un intérprete de Prolog llamado MicroProlog II. Otro ejemplo de Prolog en Lisp bajo el nombre de MicroProlog es el de Ken Kahn, modificado para XLISP por David Betz; basado en otros códigos fuente anteriores de Par Emanuelson y Martin Nilsson, ha sido también modificado para ejecutarse bajo RefLisp por Bill Birch.[19] En ambos casos, la similitud no va más allá del nombre y la compatibilidad con el micro-PROLOG original es baja cuando no nula.

También es aparentemente similar, aunque en mucha mayor medida, el Schelog, lenguaje que fusiona características del Scheme y del PROLOG.

Características[editar]

A diferencia del PROLOG original (de la Universidad de Aix-Marsella), del ISO-PROLOG (basado en el modelo auspiciado por la Universidad de Edimburgo) empleado en las principales versiones, como el SWI-Prolog de la Universidad de Ámsterdam o el CIAO-PROLOG de la Universidad Politécnica de Madrid, el micro-PROLOG reduce al mínimo su complejidad, al objeto de ser accesible, perdiendo con ello versatilidad y potencia. Es junto al PROLOG estructurado, representado por el Turbo PROLOG de Borland y sus derivados, como el Visual PROLOG, implementado por PDC o el EZY Prolog de EDMGROUP, el dialecto que más se separa del estándar.

Su sintaxis se basa en listas, de manera similar a Lisp, por lo que ambos lenguajes han sido frecuentemente relacionados. El elemento fundamental en micro-PROLOG es la lista, en el sentido más amplio del término, pues tanto los datos como los programas son listas. Un programa contiene, pues, siempre como mínimo una lista dentro de otra lista.

Entre sus características notables están sus concesiones a la programación imperativa en detrimento de la programación lógica y de la programación declarativa. Se distribuyó con varios añadidos, entre ellos los llamados interface SIMPLE (el más empleado), interface MITSI, interface EMITSI, interface MICRO y el interface DEC (que pretendía proporcionar una sintaxis similar a la del PROLOG para sistemas DEC PDP-10).

Bibliografía[editar]

En inglés:

En español:

  • Programación en Micro-PROLOG: un lenguaje de la 5ª generación, Hugh De Saram, 1987, ISBN 84-283-1531-0, ISBN 978-84-283-1531-9
  • Micro-PROLOG: la lógica como lenguaje para la alfabetización informática, J. R. Ennals, 1987, ISBN 84-86251-48-6
  • "Microprolog: el lenguaje de la lógica", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 107, página 35.
  • "La edición en Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 113, página 22 y página 23.
  • "La obtención de información en Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 115, página 24 y página 25.
  • "Las sentencias condicionales en MicroProlog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 122, página 30 y página 31.
  • "Búsqueda de datos y operaciones aritméticas en MicroProlog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 126, páginas 12 y 13 ([1] [2]).
  • "El proceso de listas en Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 136, páginas 30 y 31 ([3] [4]).
  • "La recursión en Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 148, páginas 16 y 17 ([5] [6]).
  • "Programando Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 157, páginas 22 y 23 ([7] [8]).
  • "Las primitivas Isall y Forall en Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 165, páginas 18 y 19 ([9] [10]).
  • "El análisis sintáctico en Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 169, páginas 25 y 26 ([11] [12]).
  • "Aplicaciones avanzadas de Microprolog", artículo de F. J. Martínez Galilea en la revista MicroHobby, número 172, páginas 50 y 51 ([13] [14]).

En otras lenguas:

Referencias[editar]

  1. micro-PROLOG 1.0 para Spectrum, fichero .TZX, imagen de cinta, para emulador.
  2. micro-PROLOG 1.0 para Spectrum, fichero .TAP, imagen de cinta, para emulador.
  3. Citado en Logic and recursion: the PROLOG twist, artículo de Jesse M. Heines, Jonathan Briggs y Richard Ennals en la revista Creative Computing, Vol. 9, Nº 11, noviembre de 1983, página 220.
  4. micro-PROLOG 3.1 para BBC Micro, fichero .SSD, imagen de disco para emulador.
  5. micro-PROLOG 3.1 para BBC Micro, fichero .ROM, para emulador.
  6. micro-PROLOG 3.1 para Enterprise, para ser ejecutado bajo IS-DOS.
  7. micro-PROLOG 2.0 para MSX, para ser ejecutado bajo MSX-DOS.
  8. micro-PROLOG 2.12 Programmer's Reference Manual. CP/M Version.
  9. Citado como "de próxima aparición" en Programación en Micro-PROLOG: un lenguaje de la 5ª generación, página 13, Hugh De Saram, 1987, ISBN 84-283-1531-0, ISBN 978-84-283-1531-9
  10. micro-PROLOG 3.1 Programmer's Reference Manual. CP/M and MS-DOS Versions.
  11. Citado en Programación en Micro-PROLOG: un lenguaje de la 5ª generación, página 13, Hugh De Saram, 1987, ISBN 84-283-1531-0, ISBN 978-84-283-1531-9
  12. micro-PROLOG Professional 1.2 para MS-DOS
  13. La empresa distribuye en su web oficial como freeware la última de las versiones que lanzó, el LPA PROLOG Professional 3.8 para MS-DOS
  14. micro-PROLOG 1.2 para Spectrum, fichero .SCL, imagen de disco TR-DOS, para emulador.
  15. Tesis sobre EDULOG, trabajo de Daniela L. Godoy
  16. Un intérprete Prolog con fines educativos, trabajo de Jorge A. Peri y Daniela L. Godoy
  17. Interprete PROLOG - Umberto Salsi
  18. Budimac, Z., An Implementation of micro-PROLOG Interpreter in Pascal, Master Thesis, University of Novi Sad, Novi Sad, January 1991, 182 pages. Citado en Dr. Zoran Budimac - Curriculum Vitae
  19. rflsp2_3.shr, código fuente en Lisp

Véase también[editar]

Enlaces externos[editar]