Ease es un lenguaje de programación paralelo de propósito general . Está diseñado por Steven Ericsson-Zenith, investigador de la Universidad de Yale , el Instituto de Ciencia e Ingeniería Avanzadas en Silicon Valley, California, la Ecole Nationale Supérieure des Mines de Paris , y la Universidad Pierre y Marie Curie , el departamento de ciencias de la Sorbona . [1]
Paradigmas | Procesos secuenciales concurrentes y comunicantes |
---|---|
Diseñada por | Steven Ericsson-Zenith |
Apareció por primera vez | 1991 |
Disciplina de mecanografía | Fuerte |
Plataforma | Paralelo |
Influenciado por | |
occam |
El libro Modelos de interacción de procesos es la especificación del lenguaje Ease. Ease combina las construcciones del proceso de comunicación de procesos secuenciales (CSP) con estructuras de datos compartidas lógicamente llamadas contextos . Los contextos son tipos de datos paralelos que son construidos por procesos y proporcionan una forma para que los procesos interactúen.
El lenguaje incluye dos constructores de procesos.
Una cooperación incluye una sincronización de barrera explícita y está escrita:
Si un proceso finaliza antes que el otro, esperará hasta que finalicen los demás procesos.
Una subordinación crea un proceso que comparte los contextos que están en el alcance cuando se crea y finaliza cuando se completa (no espera a otros procesos) y se escribe:
Los procesos subordinados se detienen si intentan interactuar con un contexto que se ha completado porque el proceso padre se ha detenido. Esto permite crear procesos especulativos que terminarán si su resultado no es necesario.
La potente sintaxis de replicación permite la creación de múltiples procesos. Por ejemplo,
crea n procesos sincronizados cada uno con una constante local i .
Los procesos no pueden compartir variables locales y cooperar en la construcción de contextos compartidos . Ciertos tipos de contexto, llamados recursos , aseguran la semántica de respuesta de llamada.
Hay cuatro funciones en contextos:
- leer (contexto, variable) : copia un valor del contexto compartidoa la variable .
- escribir (contexto, expresión) : copia el valor de la expresión en el contexto compartido.
- poner (contexto, nombre) : mueve el valor vinculado al nombre al contexto compartido. Posteriormente, elvalor del nombre no se define .
- get (contexto, nombre) : mueve un valor del contexto y lo vincula al nombre . El valor se elimina del contexto.
Los tipos de contexto son Singletons , Bags o Streams y pueden ser matrices subindicadas.
La facilidad tiene una definición semiótica . Esto significa que tiene en cuenta el efecto que tiene el lenguaje en el programador y cómo desarrollan algoritmos. El lenguaje fue diseñado para facilitar el desarrollo de programas paralelos.
Referencias
- John Redman, An Implementation of the Ease Programming Language, Universidad de Australia Occidental, 1991
- TH MacKenzie, TI Dix, "Una implementación de multiprocesador de memoria distribuida de C-with-Ease", IEEE International Conference on Parallel and Distributed Systems, 2002
- TH MacKenzie, TI Dix, "Primitivas paralelas basadas en facilidad orientadas a objetos en C ++", icpads, p. 623, 1998 Conferencia internacional sobre sistemas paralelos y distribuidos (ICPADS'98), 1998