POP-11


De Wikipedia, la enciclopedia libre
  (Redirigido desde Pop11 )
Saltar a navegación Saltar a búsqueda

POP-11 es un reflexivo , de forma incremental compilado lenguaje de programación con muchas de las características de un lenguaje interpretado . Es el núcleo del lenguaje de la Poplog programación entorno desarrollado originalmente por la Universidad de Sussex , y recientemente en la Facultad de Ciencias de la Computación en la Universidad de Birmingham , que alberga el sitio web principal Poplog. Los archivos fuente principales también están disponibles en GitHub .

POP-11 es una evolución del lenguaje POP-2 , desarrollado en la Universidad de Edimburgo , y presenta un modelo de pila abierta (como Forth , entre otros ). Es principalmente de procedimiento , pero admite construcciones de lenguaje declarativo, incluido un comparador de patrones, y se usa principalmente para la investigación y la enseñanza en inteligencia artificial , aunque tiene características suficientes para muchas otras clases de problemas. A menudo se utiliza para introducir técnicas de programación simbólica a programadores de lenguajes más convencionales como Pascal , que encuentran la sintaxis POP más familiar que la de Lisp . Una de las características de POP-11 es que admitefunciones de primera clase .

POP-11 es el lenguaje central del sistema Poplog. La disponibilidad del compilador y las subrutinas del compilador en tiempo de ejecución (un requisito para la compilación incremental) le da la capacidad de admitir una gama mucho más amplia de extensiones (incluidas las extensiones en tiempo de ejecución, como agregar nuevos tipos de datos) de lo que sería posible. utilizando sólo una función de macro . Esto hizo posible que se agreguen compiladores incrementales (opcionales) para Prolog , Common Lisp y Standard ML, que podría agregarse según sea necesario para respaldar el desarrollo de idiomas mixtos o el desarrollo en el segundo idioma sin utilizar ninguna construcción POP-11. Esto hizo posible que Poplog fuera utilizado por profesores, investigadores y desarrolladores interesados ​​en solo uno de los idiomas. El producto más exitoso desarrollado en POP-11 fue el sistema de minería de datos Clementine , desarrollado por ISL. Después de que SPSS compró ISL, decidieron portar Clementine a C ++ y Java, y finalmente lo lograron con un gran esfuerzo (y quizás algo de pérdida de la flexibilidad proporcionada por el uso de un lenguaje de IA).

POP-11 estuvo disponible durante un tiempo solo como parte de un paquete comercial costoso (Poplog), pero desde aproximadamente 1999 ha estado disponible gratuitamente como parte de la versión de código abierto de Poplog, incluidos varios paquetes adicionales y bibliotecas de enseñanza. Una versión en línea de ELIZA usando POP-11 está disponible en Birmingham.

En la Universidad de Sussex, David Young utilizó POP-11 en combinación con C y Fortran para desarrollar un conjunto de herramientas de desarrollo interactivo y de enseñanza para el procesamiento de imágenes y la visión, y las ha puesto a disposición en la extensión de Popvision para Poplog.

Ejemplos de código simple

Aquí hay un ejemplo de un programa POP-11 simple:

definir Doble (Fuente) -> Resultado; Fuente * 2 -> Resultado;
enddefine;
Doble (123) =>

Eso imprime:

** 246

Este incluye algún procesamiento de lista:

 definir RemoveElementsMatching (Elemento, Fuente) -> Resultado; índice lvars; [[% para el índice en la fuente a menos que Index = Element o Index coincida con Element, entonces Índice; interminable endfor;  %]] -> Resultado; enddefine; RemoveElementsMatching ("el", [[el gato se sentó en el tapete]]) => ;;; salidas [[gato sentado en estera]] RemoveElementsMatching ("el", [[el gato] [sentado] en el tapete]) => ;;; salidas [[el gato] [sentado] tapete] RemoveElementsMatching ([[= gato]], [[el gato]] es un [[gato grande]]) => ;;; salidas [[es un]]

Ejemplos que utilizan el comparador de patrones POP-11, que hace que sea relativamente fácil para los estudiantes aprender a desarrollar programas sofisticados de procesamiento de listas sin tener que tratar los patrones como estructuras de árbol a las que se accede por las funciones 'head' y 'tail' (CAR y CDR en Lisp) , se puede encontrar en el tutorial introductorio en línea . El comparador está en el corazón del kit de herramientas SimAgent (sim_agent) . Algunas de las poderosas características del kit de herramientas, como vincular variables de patrón a variables de código en línea, habrían sido muy difíciles de implementar sin las facilidades del compilador incremental.

Ver también

Referencias

  • R. Burstall, A. Collins y R. Popplestone , Programación en Pop-2 University Press, Edimburgo, 1968
  • DJM Davies, POP-10 Users 'Manual , Computer Science Report # 25, University of Western Ontario, 1976
  • S. Hardy y C. Mellish, 'Integrating Prolog in the Poplog environment', en Implementations of Prolog , Ed., JA Campbell, Wiley, Nueva York, 1983, págs. 147-162
  • R. Barrett, A, Ramsay y A. Sloman, POP-11: un lenguaje práctico para la inteligencia artificial , Ellis Horwood, Chicester, 1985
  • M. Burton y N. Shadbolt, Programación POP-11 para inteligencia artificial , Addison-Wesley, 1987
  • J. Laventhol, Programación en POP-11 , Blackwell Scientific Publications Ltd., 1987
  • R. Barrett y A. Ramsay, Inteligencia artificial en la práctica: ejemplos en Pop-11 , Ellis Horwood, Chicester, 1987.
  • M. Sharples et al., Computers and Thought , MIT Press, 1987. (Una introducción a la ciencia cognitiva usando Pop-11. Versión en línea mencionada anteriormente).
  • James Anderson, Ed., Pop-11 llega a la mayoría de edad: El avance de un lenguaje de programación de IA , Ellis Horwood, Chichester, 1989
  • G. Gazdar y C. Mellish, Procesamiento del lenguaje natural en Pop11 / Prolog / Lisp , Addison Wesley, 1989. ( leer en línea )
  • R. Smith, A. Sloman y J. Gibson, soporte de máquina virtual de dos niveles de POPLOG para lenguajes interactivos, en Research Directions in Cognitive Science Volume 5: Artificial Intelligence , Eds. D. Sleeman y N. Bernsen, Lawrence Erlbaum Associates, págs. 203-231, 1992. (Disponible como Cognitive Science Research Report 153, Facultad de Informática, Universidad de Sussex).
  • Chris Thornton y Benedict du Boulay, Inteligencia artificial a través de la búsqueda , Kluwer Academic (versión en rústica Intellect Books) Dordrecht Países Bajos y Norwell, MA EE. UU. (Intellect en Oxford) 1992.
  • A. Sloman, Pop-11 Primer , 1999 (tercera edición)

enlaces externos

Obtenido de " https://en.wikipedia.org/w/index.php?title=POP-11&oldid=1013680029 "