En informática , el modelo Actor , publicado por primera vez en 1973 ( Hewitt et al., 1973 ) , es un modelo matemático de computación concurrente . Este artículo describe la historia intermedia del modelo Actor, cuyos temas principales fueron las implementaciones iniciales, las aplicaciones iniciales y el desarrollo de la primera teoría de la demostración y el modelo denotacional. Es la continuación del artículo sobre la historia temprana del modelo Actor , que describe el desarrollo básico de los conceptos. El artículo sobre la historia posterior del modelo Actor describe los desarrollos posteriores a los descritos en este artículo.
Demostración de propiedades de los sistemas de actores
Carl Hewitt [1974] publicó el principio de inducción del actor, que es:
- Supongamos que un Actorincógnitatiene propiedadPAGcuando se crea
- Supongamos además que siincógnitatiene propiedadPAGcuando procesa un mensaje, entonces tiene propiedadPAGcuando procese el siguiente mensaje.
- Entoncesincógnitasiempre tiene la propiedadPAG.
En su tesis doctoral, Aki Yonezawa desarrolló técnicas adicionales para demostrar propiedades de sistemas de actores, incluyendo aquellos que utilizan la migración . Russ Atkinson y Carl Hewitt desarrollaron técnicas para demostrar propiedades de serializadores que gestionan recursos compartidos. La tesis doctoral de Gerry Barber versó sobre el razonamiento acerca del cambio en sistemas de oficina con conocimiento.
Recogida de basura
La recogida de basura (la recuperación automática del espacio de almacenamiento no utilizado) fue un tema importante en el desarrollo del modelo Actor.
En su tesis doctoral, Peter Bishop desarrolló un algoritmo para la recolección de basura en sistemas distribuidos. Cada sistema mantenía listas de enlaces de punteros hacia y desde otros sistemas. Las estructuras cíclicas se recolectaban migrando incrementalmente los Actores (objetos) a otros sistemas que contenían sus direcciones, hasta que una estructura cíclica quedaba completamente contenida en un solo sistema donde el recolector de basura podía recuperar el almacenamiento.
Henry Baker desarrolló un algoritmo para la recolección de basura en tiempo real en su tesis doctoral. La idea fundamental era intercalar la actividad de recolección con la actividad de construcción para evitar largas pausas durante la recolección. Véase recolección de basura incremental .
Henry Lieberman y Carl Hewitt [1983] desarrollaron un sistema de recolección de basura en tiempo real basado en la vida útil de los Actores (Objetos). La idea fundamental consistía en asignar los Actores (objetos) en generaciones, de modo que solo las generaciones más recientes tuvieran que ser examinadas durante la recolección de basura. Véase recolección de basura generacional .
Lenguajes de programación de actores
Henry Lieberman, Dan Theriault y otros desarrollaron Act1, un lenguaje de programación de actores. Posteriormente, para su tesis de maestría, Dan Theriault desarrolló Act2. Estos primeros lenguajes de prueba de concepto eran bastante ineficientes y no adecuados para aplicaciones. En su disertación doctoral, Ken Kahn desarrolló Ani, que utilizó para desarrollar varias animaciones. Bill Kornfeld desarrolló el lenguaje de programación Ether para la Metáfora de la Comunidad Científica en su disertación doctoral. William Athas y Nanette Boden [1988] desarrollaron Cantor, que es un lenguaje de programación de actores para computación científica. Jean-Pierre Briot [1988, 1999] desarrolló medios para extender Smalltalk 80 para cálculos de actores. Christine Tomlinson, Mark Scheevel, Greg Lavender, Greg Meredith y otros [1995] en MCC desarrollaron un lenguaje de programación de actores para agentes InfoSleuth en Rosette.
Carl Hewitt, Beppe Attardi y Henry Lieberman [1979] desarrollaron propuestas para la delegación en el paso de mensajes. Esto dio lugar a la llamada controversia de la anomalía de herencia en los lenguajes de programación concurrente orientados a objetos [Satoshi Matsuoka y Aki Yonezawa 1993, Giuseppe Milicia y Vladimiro Sassone 2004].
Un modelo denotacional de sistemas de actores
En su tesis doctoral, Will Clinger desarrolló el primer modelo denotacional de sistemas de actores. Véase la semántica denotacional del modelo de actores .
Referencias
- Carl Hewitt; Peter Bishop y Richard Steiger (1973). "Un formalismo de actor modular universal para la inteligencia artificial" (Documento). IJCAI.
- Carl Hewitt, et al. Inducción de actores y metaevaluación. Actas del simposio de la ACM sobre principios de lenguajes de programación, enero de 1974.
- Peter Bishop, Sistemas informáticos modularmente extensibles con un espacio de direcciones muy grande. Tesis doctoral del MIT EECS. Junio de 1977.
- Aki Yonezawa. Técnicas de especificación y verificación para programas paralelos basadas en la semántica de paso de mensajes. Tesis doctoral del MIT EECS. Diciembre de 1977.
- Henry Baker . Sistemas de actores para computación en tiempo real. Tesis doctoral del MIT EECS. Enero de 1978.
- Ken Kahn. Tesis doctoral en Ingeniería Eléctrica e Informática del MIT , titulada "Una teoría computacional de la animación" . Agosto de 1979.
- Carl Hewitt, Beppe Attardi y Henry Lieberman. Delegación en el protocolo de paso de mensajes. Actas de la Primera Conferencia Internacional sobre Sistemas Distribuidos. Huntsville, Alabama. Octubre de 1979.
- Carl Hewitt y Russ Atkinson. Técnicas de especificación y prueba para serializadores. Revista IEEE de Ingeniería de Software. Enero de 1979.
- Russ Atkinson. Verificación automática de serializadores. Tesis doctoral del MIT. Junio de 1980.
- Bill Kornfeld y Carl Hewitt. La metáfora de la comunidad científica. IEEE Transactions on Systems, Man, and Cybernetics. Enero de 1981.
- Henry Lieberman. Pensar en muchas cosas a la vez sin confundirse: Paralelismo en el Acto 1. Memorando 626 del MIT sobre IA. Mayo de 1981.
- Henry Lieberman. Avance del Acto 1. Memorando 625 del MIT sobre IA. Junio de 1981.
- Jerry Barber. Razonamiento sobre el cambio en sistemas de oficina basados en el conocimiento. Tesis doctoral del MIT EECS. Agosto de 1981.
- Bill Kornfeld. Paralelismo en la resolución de problemas. Tesis doctoral en Ingeniería Eléctrica e Informática del MIT. Agosto de 1981.
- Will Clinger. Fundamentos de la semántica de actores. Tesis doctoral en matemáticas del MIT. Junio de 1981.
- Daniel Theriault. Una introducción al lenguaje del Acto 1. Memorando 672 del MIT sobre IA. Abril de 1982 .
- Henry Lieberman y Carl Hewitt. Un recolector de basura en tiempo real basado en la vida útil de los objetos. CACM, junio de 1983.
- Daniel Theriault. Problemas en el diseño e implementación del Acto 2. Informe técnico 728 del MIT AI. Junio de 1983 .
- Henry Lieberman. Un simulador orientado a objetos para la Conferencia sobre Apiarios de la Asociación Estadounidense de Inteligencia Artificial, Washington, DC, agosto de 1983.
- Carl Hewitt y Peter de Jong. Análisis de los roles de las descripciones y las acciones en los sistemas abiertos. Actas de la Conferencia Nacional sobre Inteligencia Artificial. Agosto de 1983.
- Jean-Pierre Briot. De objetos a actores: Estudio de una simbiosis limitada en Smalltalk-80 Rapport de Recherche 88-58, RXF-LITP, París, Francia, septiembre de 1988.
- William Athas y Nanette Boden Cantor: Un sistema de programación de actores para computación científica en las Actas del Taller de la NSF sobre Programación Concurrente Basada en Objetos. 1988. Número especial de SIGPLAN Notices.
- Satoshi Matsuoka y Aki Yonezawa. Análisis de la anomalía de herencia en lenguajes de programación concurrente orientados a objetos. Direcciones de investigación en programación concurrente orientada a objetos. MIT Press. 1993.
- Darrell Woelk. Desarrollo de agentes InfoSleuth utilizando Rosette: un lenguaje basado en actores. Actas del taller CIKM '95 sobre agentes de información inteligentes. 1995.
- Jean-Pierre Briot. Acttalk: Un marco para la programación concurrente orientada a objetos: diseño y experiencia. Segundo taller Francia-Japón. 1999.
- Giuseppe Milicia y Vladimiro Sassone. La anomalía de la herencia: diez años después del SAC. Nicosia, Chipre. Marzo de 2004.
- Modelo de actor (informática)
- Historia de la informática