Joule (lenguaje de programación)


Joule es un lenguaje de programación de flujo de datos masivamente concurrente con capacidad segura , diseñado para crear aplicaciones distribuidas . [1] Es tan concurrente que el orden de las declaraciones dentro de un bloque es irrelevante para la operación del bloque. Las declaraciones se ejecutan siempre que sea posible, en función de sus entradas. Todo en Joule sucede mediante el envío de mensajes. No hay flujo de control . En cambio, el programador describe el flujo de datos, convirtiéndolo en un lenguaje de programación de flujo de datos . [ cita requerida ]

El desarrollo de Joule comenzó en 1994 en Agorics en Palo Alto, California . [2] Es considerado el precursor del lenguaje de programación E. [3] [4]

Los números constan de dígitos ASCII del 0 al 9; Los identificadores son secuencias Unicode de dígitos, letras y caracteres de operador que comienzan con una letra. También es posible formar identificadores mediante el uso de secuencias Unicode (incluidos los espacios en blanco) entre comillas simples rectas (' ') o estándar (' '), donde la barra invertida es el carácter de escape. Las palabras clave tienen que comenzar con una letra, excepto la palabra clave para enviar información. Los operadores constan de secuencias Unicode de dígitos, letras y caracteres de operador, que comienzan con un carácter de operador. Las etiquetas son identificadores seguidos de dos puntos (':'). [5]

En esencia, Joule es un lenguaje imperativo y, por lo tanto, un lenguaje basado en declaraciones. Tiene una rica sintaxis de expresión, que se transforma fácilmente en su sintaxis relacional subyacente. Las expresiones complejas se convierten en declaraciones separadas, donde el sitio de la expresión original se reemplaza por una referencia al aceptador del canal de resultados. Por lo tanto, las expresiones anidadas aún se calculan completamente al mismo tiempo que su declaración de incrustación. [5]

Un identificador puede nombrar un canal para comunicarse con el servidor. Si este es el caso, se dice que está vinculado a ese canal. [5]