Articulo de referencia

Programación lógica concurrente

La programación lógica concurrente es una variante de la programación lógica diseñada para la computación paralela en la que los programas son conjuntos de cláusulas de Horn pro...

La programación lógica concurrente es una variante de la programación lógica diseñada para la computación paralela en la que los programas son conjuntos de cláusulas de Horn protegidas de la forma:

H  :- G 1 , …, G n | B 1 , …, B n .

La conjunción G 1 , … , G n se llama guarda de la cláusula, y | es el operador de compromiso.

De forma declarativa, las cláusulas de Horn con condiciones se interpretan como implicaciones lógicas ordinarias:

H si G 1 y … y G n y B 1 y … y B n .

Sin embargo, procedimentalmente, cuando hay varias cláusulas cuyos encabezados H coinciden con un objetivo dado, todas las cláusulas se ejecutan en paralelo , comprobando si sus condiciones G 1 , … , G n se cumplen. Si las condiciones de más de una cláusula se cumplen, se elige una de ellas y la ejecución continúa con los subobjetivos B 1 , …, B n de la cláusula seleccionada. Estos subobjetivos también pueden ejecutarse en paralelo. Por lo tanto, la programación lógica concurrente implementa una forma de "no determinismo indiferente", en lugar de "no determinismo desconocido".

Historia

El primer lenguaje de programación lógica concurrente fue el Lenguaje Relacional de Keith L. Clark y Steve Gregory, derivado de IC-Prolog . Versiones posteriores de programación lógica concurrente incluyen Concurrent Prolog de Ehud Shapiro y el lenguaje Guarded Horn Clause de Ueda.

El desarrollo de la programación lógica concurrente recibió un impulso cuando se utilizó la cláusula Guarded Horn para implementar KL1 , el lenguaje de programación de sistemas del Proyecto de Quinta Generación (FGCS) japonés . El Proyecto FGCS fue una iniciativa de 400 millones de dólares del Ministerio de Comercio Internacional e Industria de Japón , iniciada en 1982, para utilizar la computación /procesamiento masivamente paralelo en aplicaciones de inteligencia artificial . La elección de la programación lógica concurrente como el "eslabón perdido" entre el hardware y las aplicaciones estuvo influenciada por una visita al Proyecto FGCS en 1982 de Ehud Shapiro, quien inventó Concurrent Prolog .

Véase también

Referencias