Joule (limbaj de programare) - Joule (programming language)

Joule
Paradigmă multi-paradigmă : orientată pe obiecte , distribuită , flux de date
Proiectat de E. Dean Tribble
A apărut prima dată 1996
Disciplina de tastare netipat
Influențată de
Programare logică simultană , actori
Influențat
E

Joule este un limbaj de programare flux de date simultan securizat prin capacitate , conceput pentru a construi aplicații distribuite . Este atât de concurent încât ordinea instrucțiunilor dintr-un bloc este irelevantă pentru funcționarea blocului. Declarațiile sunt executate ori de câte ori este posibil, pe baza intrărilor lor. Totul în Joule se întâmplă prin trimiterea de mesaje. Nu există flux de control . În schimb, programatorul descrie fluxul de date, făcându-l un limbaj de programare al fluxului de date .

Dezvoltarea Joule a început în 1994 la Agorics din Palo Alto, California . Este considerat precursorul limbajul de programare E .

Sintaxa limbii

Numerele constau din cifre ASCII 0-9; identificatorii sunt secvențe Unicode de cifre, litere și caractere operator care încep cu o literă. De asemenea, este posibil să se formeze identificatori folosind secvențe Unicode (inclusiv spații albe) încadrate fie prin ghilimele simple drepte ('') sau standard (''), unde backslash este caracterul de evacuare. Cuvintele cheie trebuie să înceapă cu o literă, cu excepția cuvântului cheie pentru a trimite informații. Operatorii constau din secvențe Unicode de cifre, litere și caractere operator, începând cu un caracter operator. Etichetele sunt identificatori urmate de două puncte (':').

La rădăcină, Joule este un limbaj imperativ și, din acest motiv, un limbaj bazat pe enunțuri. Are o sintaxă de expresie bogată, care se transformă cu ușurință în sintaxa relațională de dedesubt. Expresiile complexe devin afirmații separate, unde site-ul expresiei originale este înlocuit cu o referire la acceptorul canalului de rezultate. Prin urmare, expresiile imbricate încă se calculează complet simultan cu declarația lor de încorporare.

   If amount <= balance
       • account withdraw: amount
   else
       • account report-bounce:
   end

Identificatorii pot denumi un canal pentru a comunica cu serverul. Dacă acesta este cazul, se spune că este legat de acel canal.

Referințe

linkuri externe