Facilidad (lenguaje de programación) - Ease (programming language)

Facilitar
Paradigmas Procesos secuenciales concurrentes y comunicantes
Diseñada por Steven Ericsson-Zenith
Apareció por primera vez 1991 ; Hace 29 años ( 1991 )
Disciplina de mecanografía Fuerte
Plataforma Paralelo
Influenciado por
occam

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 Ciencias 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 Sorbonne .

El libro Process Interaction Models 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 no se necesita su resultado.

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.
  • put (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 une 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