Historia del modelo Actor


En informática , el modelo Actor , publicado por primera vez en 1973, es un modelo matemático de cálculo concurrente .

Un desafío fundamental en la definición del modelo Actor es que no preveía estados globales de modo que un paso computacional no pudiera definirse como pasar de un estado global al siguiente estado global como se había hecho en todos los modelos de cálculo anteriores.

En 1963 en el campo de la Inteligencia Artificial , John McCarthy introdujo variables de situación en lógica en el Cálculo Situacional. En McCarthy y Hayes 1969, una situación se define como "el estado completo del universo en un instante de tiempo". En este sentido, las situaciones de McCarthy no son adecuadas para su uso en el modelo Actor ya que no tiene estados globales.

A partir de la definición de Actor, se puede ver que ocurren numerosos eventos: decisiones locales, creación de Actores, envío de mensajes, recepción de mensajes y designación de cómo responder al siguiente mensaje recibido. Los ordenamientos parciales de tales eventos han sido axiomatizados en el modelo Actor y se ha explorado su relación con la física (ver Teoría del modelo Actor ).

Según Hewitt (2006), el modelo Actor se basa en la física en contraste con otros modelos de computación que se basaban en la lógica matemática, la teoría de conjuntos, el álgebra, etc. La física influyó en el modelo Actor de muchas formas, especialmente la física cuántica y la física relativista. . Un problema es lo que se puede observar sobre los sistemas Actor. La pregunta no tiene una respuesta obvia porque plantea desafíos tanto teóricos como de observación similares a los que habían surgido al construir los fundamentos de la física cuántica. En términos concretos para los sistemas Actor, normalmente no podemos observar los detalles por los cuales se determina el orden de llegada de los mensajes para un Actor (ver Indeterminación en el cálculo concurrente). Intentar hacerlo afecta los resultados e incluso puede llevar la indeterminación a otra parte. por ejemplo , ver metaestabilidad en electrónica . En lugar de observar el interior de los procesos de arbitraje de los cálculos de Actor, esperamos los resultados.

El cálculo lambda de Alonzo Church puede verse como el primer lenguaje de programación de transmisión de mensajes (ver Hewitt, Bishop y Steiger 1973; Abelson y Sussman 1985 ). Por ejemplo, la expresión lambda a continuación implementa una estructura de datos de árbol cuando se le proporcionan parámetros para un leftSubTree y rightSubTree . Cuando un árbol de este tipo recibe un mensaje de parámetro "getLeft" , devuelve leftSubTree y de la misma manera cuando se le da el mensaje "getRight" devuelve rightSubTree .