Cepilladora

planificador
clase de idioma programación lógica
Apareció en 1969
Autor carl hewitt
Dialectos éter
influenciado Lisp , QA-4 , Popler , Conniver y QLISP

Planner es un lenguaje de programación lógico - funcional similar en su sintaxis a Lisp . Desarrollado en el Laboratorio de Inteligencia Artificial del MIT por Carl Hewitt en 1967-1971, la primera publicación que describe el lenguaje apareció en 1969 .  

Posicionado inicialmente por el autor como un lenguaje para la planificación y despacho automático en robótica , luego fue reconocido por especialistas en inteligencia artificial como un lenguaje que tiene el conjunto más adecuado de medios expresivos para tales tareas (se creía que esto requería capacidades flexibles de procesamiento simbólico). ). A pesar de que el lenguaje nunca se implementó por completo, su impacto en la investigación relacionada con la inteligencia artificial en la década de 1970 resultó ser, en muchos sentidos, decisivo.

La parte funcional del lenguaje contenía prácticamente la totalidad de Lisp como un subconjunto, otras partes: coincidencia de patrones , retroceso , procedimientos de llamada por patrón, mecanismos deductivos en el espíritu de la programación lógica.

En la forma en que fue descrito originalmente por el autor, el lenguaje nunca se implementó, tanto por lo engorroso como por la naturaleza esquemática de la descripción. Las primeras implementaciones, Micro-planner y Pico-planner, contenían un subconjunto bastante limitado del lenguaje. Se implementaron opciones más completas en el sistema Popler y varios de sus derivados: QA-4 , Conniver , QLISP , Ether . En la década de 1970 en la URSS , el lenguaje se implementó en el sistema PLENER-BESM desarrollado para BESM-6 .

Elementos

Aunque el lenguaje en realidad contiene Lisp completamente como parte de sí mismo, sus capacidades integradas de procesamiento de caracteres son mucho más amplias. Por ejemplo, las funciones ELEMy RESTgeneralizan las funciones CARy CDR, permitiéndole seleccionar y descartar elementos arbitrarios de la lista: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н)). Además, la introducción de varios tipos de corchetes (Lisp solo permite paréntesis, lo que hace que los programas sean muy difíciles de leer) ha hecho que los programas sean mucho más claros.

Una de las características más notables del lenguaje es la búsqueda y análisis de datos por patrón (primero implementado en Snoball y muy desarrollado en Planer).

Una parte específica del lenguaje está dedicada a la capacidad de construir y cambiar la descripción del entorno en el que se resuelve el problema: la descripción del entorno se denomina "base de datos" y contiene declaraciones individuales (hechos) que son verdaderas en este ambiente Además de los hechos contenidos en la base de datos, el programa debe especificar las relaciones lógicas entre los conceptos utilizados en el problema, así como las descripciones de las acciones que se permiten realizar. Tales descripciones se llaman teoremas. Cada teorema tiene una lista de condiciones (prerrequisitos) que deben cumplirse antes de que pueda aplicarse. Como resultado de la aplicación del teorema, algunos hechos de la base de datos dejan de ser ciertos y deben eliminarse de ella, mientras que otros, por el contrario, se vuelven verdaderos y deben reponerse. Las listas de hechos de ambos tipos también están contenidas en las descripciones de los teoremas.

Otra innovación importante del lenguaje fue el modo de retroceso, que le permite abandonar las decisiones tomadas previamente durante la ejecución del programa si resulta que no conducen a la meta.

Literatura