Joule es un lenguaje de programación de flujo de datos concurrente masivo de 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 el funcionamiento del bloque. Las declaraciones se ejecutan siempre que es 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 ]
Paradigma | multi-paradigma : orientado a objetos , distribuido , flujo de datos |
---|---|
Diseñada por | E. Dean Tribble |
Apareció por primera vez | 1996 |
Disciplina de mecanografía | sin tipificar |
Influenciado por | |
Programación lógica concurrente , actores | |
Influenciado | |
mi |
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]
Sintaxis del lenguaje
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 usando secuencias Unicode (incluyendo espacios en blanco) encerradas por 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 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 el fondo, Joule es un lenguaje imperativo y por eso un lenguaje basado en declaraciones. Tiene una sintaxis de expresión rica, 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 de forma completamente simultánea con su declaración de incrustación. [5]
Si monto <= saldo • retiro de cuenta: monto demás • informe de cuenta-rebote: final
Los identificadores pueden nombrar un canal para comunicarse con el servidor. Si este es el caso, se dice que está vinculado a ese canal. [5]
Referencias
- ^ Miller, Mark Samuel (2006). "Composición robusta: hacia un enfoque unificado de control de acceso y control de concurrencia" . Universidad Johns Hopkins. Cite journal requiere
|journal=
( ayuda ) - ^ Fremont, David (octubre de 1994). "Esperando el ciber-hacha" . Girar . 10 (7): 88.
- ^ "Enlaces relacionados con Agoric Computing y contratos inteligentes" . erights.org .
La deuda de E con Joule no se puede exagerar.
- ^ "El Manual del programador de E" . Comunidades eléctricas. 19 de julio de 1996.
El lenguaje de programación E se inspiró en gran medida en el lenguaje Joule, actualmente desarrollado por Dean Tribble, Norm Hardy y sus colegas de Agorics, Inc.
- ^ a b c "Joule: bases de aplicaciones distribuidas: 4.2. Expresiones" (PDF) . 1 . Agorics, Inc. 20 de diciembre de 2004: 31–33 . Consultado el 29 de agosto de 2012 . Cite journal requiere
|journal=
( ayuda )