Joule es un lenguaje de programación de flujo de datos masivo y concurrente con capacidad de seguridad, diseñado para crear aplicaciones distribuidas . [1] Es tan concurrente que el orden de las sentencias dentro de un bloque es irrelevante para el funcionamiento del bloque. Las sentencias 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, lo que lo convierte 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] Se considera el precursor del lenguaje de programación E. [3] [4]
Los números consisten en dígitos ASCII del 0 al 9; los identificadores son secuencias Unicode de dígitos, letras y caracteres operadores que comienzan con una letra. También es posible formar identificadores utilizando secuencias Unicode (incluidos los espacios en blanco) encerradas entre comillas simples rectas (' ') o estándar (' '), donde la barra invertida es el carácter de escape. Las palabras clave deben comenzar con una letra, excepto la palabra clave • para enviar información. Los operadores consisten en secuencias Unicode de dígitos, letras y caracteres operadores, que comienzan con un carácter operador. Las etiquetas son identificadores seguidos de dos puntos (':'). [5]
En esencia, Joule es un lenguaje imperativo y, por ello, un lenguaje basado en sentencias. Tiene una sintaxis de expresión rica, que se transforma fácilmente en su sintaxis relacional subyacente. Las expresiones complejas se convierten en sentencias independientes, 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 de manera concurrente con su sentencia incorporada. [5]
Si cantidad <= saldo • Retiro de cuenta: importe demás • informe de cuenta-rebote: fin
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]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )La deuda de E con Joule no puede ser exagerada.
El lenguaje de programación E se inspiró en gran medida en el lenguaje Joule, que actualmente desarrollan Dean Tribble, Norm Hardy y sus colegas de Agorics, Inc.
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )