stringtranslate.com

Máquina abstracta categórica

La máquina abstracta categórica ( CAM ) es un modelo de computación para programas [1] que conserva las capacidades de estilo aplicativo, funcional o compositivo. Se basa en las técnicas de computación aplicativa .

Descripción general

El concepto de máquina abstracta categórica surgió a mediados de los años 1980. Se instaló en la informática como una especie de teoría de computación para programadores, representada por la categoría cerrada cartesiana e integrada en la lógica combinatoria . CAM es una representación matemática transparente y sólida para los lenguajes de programación funcional. El código de la máquina se puede optimizar utilizando la forma ecuacional de una teoría de computación. Utilizando CAM, se pueden emular los diversos mecanismos de computación, como la recursión o la evaluación diferida , así como el paso de parámetros, como la llamada por nombre , la llamada por valor , etc. En teoría, CAM conserva [ ¿cómo? ] todas las ventajas del enfoque de objetos hacia la programación o la computación.

La principal implementación actual es OCaml, que agregó herencia de clases y envío dinámico de métodos a Caml, el lenguaje de máquina abstracto categórico. Ambos son variantes de MetaLanguage ML y los tres lenguajes implementan la inferencia de tipos .

Implementación

Uno de los enfoques de implementación de los lenguajes funcionales lo proporciona la maquinaria basada en supercombinadores , o máquina SK, de D. Turner. La noción de CAM ofrece un enfoque alternativo. La estructura de CAM consta de constituyentes sintácticos, semánticos y computacionales. La sintaxis se basa en la notación de de Bruijn , que supera las dificultades de utilizar variables ligadas. Las evaluaciones son similares a las de la máquina SECD de P. Landin . Con esta cobertura, CAM proporciona una base sólida para la sintaxis, la semántica y la teoría de la computación . Esta comprensión surge como influenciada por el estilo funcional de programación.

Véase también

Referencias

  1. ^ Cousineau G., Curien P.-L., Mauny M. La máquina abstracta categórica. — LNCS, 201, Lenguajes de programación funcional: arquitectura informática.-- 1985, pp.~50-64.

Lectura adicional