<$BlogRSDUrl$>

Pro·Log·[IR]

Programación Lógica y Recuperación de Información

«Algorithm = Logic + Control» Robert Kowalski (1979)

¡Importante! esta página hace uso de estilos recogidos en la especificación CSS2, no soportados por el navegador que está utilizando. Por favor, lea esta recomendación al respecto.

Archivo

Guardado por meses.

Enlaces

Los siguientes listados son una referencia a partir de la cual ampliar la búsqueda de sitios relacionados (i).

Bitácoras en castellano

Bitácoras en inglés

Directorios, metablogs

Programación lógica, Inteligencia Artificial, Recuperación de Información

Usabilidad, Arquitectura de la Información

Listas, foros, wikis

Matemáticas, ciencias

Miscelánea

Búsquedas

Búsqueda simple en varios de los motores más conocidos. Para mayor precisión, entrar en la página correspondiente e ir al apartado de búsqueda avanzada.

Búsqueda con Google
 

Búsqueda con Yahoo!
 

Búsqueda con AlltheWeb

Varios

Esta página traducida:

Traducción al catalán, internostrum; traducción al portugués, universia.

Reciba un aviso de nuevos comentarios (por Bloglet).


Agregue este sitio a su lector de "feeds" (sindicación mediante el sistema Atom).

Sobre este sitio

Espacio dedicado a la programación lógica y la recuperación de información, con una atención especial al lenguaje Prolog y otros lenguajes afines, pertenecientes al paradigma lógico y declarativo. También se tratará de hablar de estos temas desde la perspectiva de la Biblioteconomía y la Documentación.

En esta página

14.4.04

Seminarios sobre Programación Lógica y Declarativa

Nos hacemos eco en esta ocasión de tres citas que, en el ámbito de las conferencias y los encuentros referidos a la programación declarativa/funcional (en PDF) y lógica, están por celebrarse en los próximos meses:

1st European Lisp and Scheme Workshop (Oslo, 13 de junio 2004)

"Lisp has a tradition of providing a fruitful basis for language design experiments for many decades. The structure of Lisp, including Common Lisp and Scheme as its major dialects of today, makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Common Lisp, with the Common Lisp Object System (CLOS), was the first object-oriented programming language to receive an ANSI standard at the beginning of the 1990's. It is, arguably, the most complete and advanced object system of any programming language, and has influenced many other object-oriented programming languages that were to follow."

Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2004)

"This workshop aims at discussing and exchanging experience on the design, implementation, and optimization of logic, constraint (logic) programming systems, and systems intimately related to logic as a means to express computations. Experience backed up by real implementations and their evaluation will be given preference, as well as descriptions of work in progress in that direction."

The 14th workshop on logic programming environments (WLPE' 04)

"The aim of the workshop is to provide an informal meeting for the researchers working on tools for the development and analysis of logic programs. This year we want to emphasize two aspects: on one hand we want to discuss the presentation, pragmatics and experiences of such tools; on the other one, we want to extend the concept of "logic programming" environments to tools developed for any language based on computational logic (constraints, integration of paradigms, specification languages, ...)."

De la primera cita (de cuya celebración nos hemos enterado vía Bill Clementson's Blog, "Bits and pieces (mostly Lisp-related) that I collect from the ether") están disponibles, en formato PDF, los papers (comunicaciones, ponencias) recibidos hasta el momento. En cuanto a los workshops (talleres de trabajo, seminarios) CICLOPS 2004 y WLPE' 04, decir que se celebrarán en el marco la 20th International Conference on Logic Programming (ICLP'04, 6-10 de septiembre 2004, Saint-Malo, Francia), organizada por la Association for Logic Programming (ALP).

Manuel Carro y José Manuel Gómez-Perez, dos de los organizadores y coordinadores de los seminarios encuadrados en la ICLP'04 a los que acabamos de hacer referencia, son miembros del CLIP Lab (The Computational logic, Languages, Implementation, and Parallelism Lab) de la Facultad de Informática, Universidad Politécnica de Madrid, cuya área de actividad se centra en la Programación Lógica en general y la Programación Lógica con Restricciones (Constraint Logic Programming, CLP) en particular. En este contexto de actividad, los miembros del CLIP Lab han desarrollado el sistema Ciao Prolog:

"[...] entorno de programación lógica y de restricciones [...] es uno de los sistemas desarrollados por el grupo CLIP. [...] es software libre [...] y se está utilizando actualmente tanto en aplicaciones empresariales como en el entorno académico [...]. Entre las ventajas ofrecidas por Ciao Prolog resalta su extensibilidad, que ha permitido desarrollar muchas librerías que añaden funcionalidades significativas al sistema, tales como resolutores de restricciones, concurrencia, primitivas para la programación distribuida y de agentes inteligentes, persistencia, orden superior, objetos, interfaces a otros lenguajes de programación, etc. Como ejemplos podemos destacar la librería PiLLoW, posiblemente el componente más utilizado para la interconexión entre sistemas de programación lógica (y de restricciones) y la WWW, y LPdoc, un generador automático de documentación para sistemas de programación lógica y de restricciones, ambos distribuidos como software libre."

La mayor parte de los informes técnicos (Technical Reports) producidos por los miembros del CLIP Lab, están disponibles para su consulta, ordenados por área de interés y por año de producción (los formatos de los documentos son PDF y PS). Salvo que se busque un texto en concreto, del que se tenga noticia previamente, en cuyo caso es más directo y rápido realizar la búsqueda por año, lo más práctico y productivo es efectuarla a través de la ordenación por tema de investigación. Más información sobre las conferencias y seminarios coorganizados por este laboratorio en la página correspondiente.

[0] comentarios | # | lista |

7.4.04

Prolog + Scheme = Schelog

Schelog es una implementación desarrollada por D. Sitaram que permite combinar fragmentos de código escritos en un estilo de programación similar a Prolog (incluyendo las principales características de este lenguaje tales como el backtracking o retroceso, la unificación, el corte, la negación, predicados meta-lógicos, etc.) con expresiones en Scheme puro o convencional (Scheme es un lenguaje derivado de Lisp - ver la anterior anotación en la que hacíamos referencia a este último), dentro de una misma aplicación:

Schelog is an embedding of Prolog-style logic programming in Scheme. "Embedding'' means you don't lose Scheme: You can use Prolog-style and conventional Scheme code fragments alongside each other. Schelog contains the full repertoire of Prolog features, including meta-logical and second-order ("set'') predicates, leaving out only those features that could more easily and more efficiently be done with Scheme subexpressions.

La sintaxis de Schelog es la propia del lenguaje Lisp/Scheme (básicamente, consiste en listas anidadas e indentadas, sin comas, indicadas mediante paréntesis, anteposición de los signos de operación a los argumentos, cadenas de caracteres entre comillas, etc.). A modo de ejemplo, se indica a continuación la porción de código necesaria para calcular, recursivamente, el factorial de un número, en Prolog en primer lugar, y en Schelog en segundo (recordemos que el factorial de un número natural n, es el producto de todos los números naturales desde 1 hasta n):

factorial(0,1):- !.
factorial(X,Y):- X1 is X-1,
                 factorial(X1,Y1),
                 Y is X*Y1.

(define %factorial
  (%rel (x y x1 y1)
    [(0 1) !]
    [(x y) (< x 0) ! %fail]
    [(x y) (%is x1 (- x 1))
           (%factorial x1 y1)
           (%is y (* y1 x))]))

Schelog puede ser considerado como una combinación entre los estilos de programación o paradigmas representados por el lenguaje Prolog por un lado (programación lógica), y el dialecto de Lisp Scheme por otro (programación declarativa y funcional). "Programming in Schelog" es una introducción en la que el mencionado D. Sitaram aborda la sintaxis y la programación mediante la implementación que venimos comentando. Por otra parte, y de este mismo autor, "Teach Yourself Scheme in Fixnum Days" es una guía rápida e introducción al lenguaje Scheme.

Finalmente, recomendar la lectura de una introducción de carácter general, referida a los orígenes del lenguaje Scheme: "Scheme: lo pequeño es bello - Un lenguaje de programación ideal para la enseñanza" (Carlos Coello). Este artículo fue publicado posteriormente (formato PS comprimido en un .zip) por el autor, con idéntico título y más extensión y profundidad, en la revista Soluciones Avanzadas (números 39 y 43; actualmente esta publicación parece no estar disponible en línea, si bien en Internet Archive es posible localizar varias copias). Esta nueva versión ampliada de "Scheme: lo pequeño es bello..." añade, a la explicación de la parte histórica y de desarrollo del lenguaje Scheme, una introducción, con ejemplos, a sus características esenciales y sintaxis de uso, principales versiones y extensiones, así como una consideración final en torno a su utilidad en la investigación y enseñanza en el campo de los lenguajes de programación ("Scheme como un instrumento para la enseñanza").

| # | lista |

2.4.04

Lisp y Java -artículo-

No todo va a ser Prolog en el ámbito de la programación declarativa... A través de Lemonodor, weblog dedicado al lenguaje Lisp (LISt Processing) y sus tecnologías asociadas (aunque también tratan bastantes temas relacionados con la robótica), llegamos al artículo Lisp and Java (D. Milstein):

"First-class functions are a powerful feature of the Lisp programming language. This article describes some ways they can be used, and explores how to approximate them in Java."

El lenguaje Lisp [1] [2] [3] [4] [5], desarrollado inicialmente a finales de los años 50 del siglo pasado por John McCarthy (ver al respecto su ensayo History of Lisp), es sin duda uno más conocidos y utilizados dentro del paradigma de programación declarativo/funcional, y base para el desarrollo de otros lenguajes y dialectos similares, de características más avanzadas y modernas, o simplemente orientados hacia otros ámbitos de aplicación (es el caso, por ejemplo, del lenguaje Logo). Lisp es un lenguaje muy utilizado y extendido en el mundo anglosajón, específicamente en Estados Unidos, sobre todo mediante la implementación Commom Lisp, y tradicionalmente se ha utilizado, tanto en el ámbito académico como en el empresarial, para programar aplicaciones orientadas a procesos de Inteligencia Artificial (AI) -de hecho puede decirse que fue creado y desarrollado con esta finalidad, y es considerado por tanto "el primer lenguaje de IA"-, y procesamiento del lenguaje natural (NLP), si bien hoy en día es posible incluso encontrar, por poner un ejemplo de sus múltiples aplicaciones, servidores web desarrollados mediante este lenguaje de programación.

Más información sobre el lenguaje Lisp:

Para ilustrar los ejemplos, el autor de Lisp and Java ha utilizado un dialecto de Lisp, denominado Scheme [1] [2].

El artículo está publicado en ONJava.com (de cuya portada principal hemos tomado la breve sinopsis en inglés), estupenda fuente de referencia en la que encontrar buenos artículos y otras referencias relativas al lenguaje Java y sus múltiples aplicaciones. Por otra parte, ONJava.com es una publicación electrónica englobada bajo el proyecto corporativo O'Reilly.com de Tim O'Reilly, dedicado a la publicación de libros, impartición de conferencias y cursos, y creación de sitios web (Resource Centers) y publicaciones on-line (Online Publications: XML.com, Perl.com, etc.) sobre tecnologías informáticas y lenguajes de programación (Perl, Python, C/C++, XML, .NET, etc.), con una clara orientación hacia aquellas tecnologías relativas al desarrollo de aplicaciones bajo entornos web.

[0] comentarios | # | lista |


Pro·Log·[IR],

Publicación: Blogger | Estadísticas: eXTReMe Tracking

Se recomienda ver este sitio con Mozilla 1+, Firefox 0.8+ ó Netscape 7+. Si no queda más remedio, con IE 6+. Si lo desea, comunique cualquier problema al respecto. También será bien recibida cualquier sugerencia sobre el contenido. La fuente de letra preferente es Georgia. Se prohibe la utilización del diseño de la página salvo autorización expresa del autor. Los contenidos escritos son de uso libre, siempre que se cite la fuente.