A Cup Of Joe: An inherently concurrent and actor-based programming language
Translated title
En Kop Joe: Et aktør-baseret programmeringssprog med indlejret samtidighed
Authors
Eliasson, Birgir Mar ; Borresen, Johannes Lindhart
Term
4. term
Education
Publication year
2015
Submitted on
2015-06-09
Pages
61
Abstract
Denne afhandling præsenterer Joe, et aktør-baseret programmeringssprog med Java-lignende syntaks for JVM, designet til at gøre samtidighed til en indbygget og mere sikker del af programmering. Vores hovedbidrag er: selve sproget Joe; et begreb om Protokoller, der udtrykker og afgrænser kommunikation mellem aktører; samt en verifikationsmetode, hvor Joe-aktører og -protokoller oversættes til skabeloner for UPPAAL-verifikationsværktøjet. Motiveret af vedvarende udfordringer som dødlåse og datakapløb i tråd-baserede modeller og vanskelighederne ved at udtrykke problemer som Tronos Santa Claus i henhold til specifikationen, designer og implementerer vi sprogets grammatik, oversættelsespipeline og runtime, og demonstrerer det med en løsning af Santa Claus-problemet. De indledende resultater indikerer, at tilgangen er solid: oversættelsen muliggør verifikation, og tilsvarende programmer skrevet i Joe er mere koncise og lettere at læse og vedligeholde end vores tidligere løsninger. Afhandlingen skitserer desuden designkriterier, centrale sprogfunktioner og muligheder for fremtidigt arbejde.
This thesis presents Joe, an actor-based programming language with a Java-like syntax for the JVM, designed to make concurrency an inherent and safer aspect of programming. Our main contributions are the language itself; the notion of Protocols to describe and constrain communication between actors; and a verification approach that translates Joe actors and protocols into templates consumable by the UPPAAL verification tool. Motivated by persistent challenges such as deadlocks and race conditions in thread-based models and by the difficulty of expressing problems like Trono’s Santa Claus as specified, we design and implement the language’s grammar, translation pipeline, and runtime, and demonstrate it with a Santa Claus solution. Initial findings indicate that the basics of the approach are sound: the translation enables verification, and equivalent programs written in Joe are more concise and easier to read and maintain than our earlier implementations. The thesis also outlines design criteria, key language features, and directions for future work.
[This summary has been generated with the help of AI directly from the project (PDF)]
Keywords
samtidighed ; parallelisme ; jvm ; eclipse ; xtext ; xtend ; java
Documents
