magistrsko delo
Povzetek
V delu si pogledamo programski jezik Æff in $\lambda_æ$-račun, na katerem temelji. Glavna lastnost $\lambda_æ$-računa je možnost asinhronega izvajanja v navezi z vzporednim izvajanjem. To dosežemo tako, da prestreznik naprej izvaja svoje nadaljevanje, medtem ko čaka, da dobi odgovor v obliki učinka iz drugega procesa. Ko prestreže želeni učinek, ga primerno obdela in izvajanje se spet nadaljuje. Osnovno verzijo $\lambda_æ$-računa razširimo z rekurzivnimi obljubami, mobilnimi tipi in dinamičnimi procesi. Rekurzivne obljube omogočijo, da bo program lahko reagiral na več učinkov z istim imenom operacije. Mobilni tipi omogočijo pošiljanje vrednosti višjega reda, predvsem funkcij. Dinamični procesi omogočijo ustvarjanje novih procesov sproti po potrebi. Dokažemo izreka o napredku in ohranitvi za osnovni in razširjen $\lambda_æ$-račun. Omenimo tudi nekatere razlike med $\lambda_æ$-računom in dejansko implementacijo jezika Æff.
Ključne besede
asinhrono izvajanje;algebrajski učinki;vzporedno izvajanje;prestrezniki;signali;
Podatki
Jezik: |
Slovenski jezik |
Leto izida: |
2021 |
Tipologija: |
2.09 - Magistrsko delo |
Organizacija: |
UL FMF - Fakulteta za matematiko in fiziko |
Založnik: |
[J. Radešček] |
UDK: |
004.42 |
COBISS: |
83902723
|
Št. ogledov: |
1172 |
Št. prenosov: |
76 |
Ocena: |
0 (0 glasov) |
Metapodatki: |
|
Ostali podatki
Sekundarni jezik: |
Angleški jezik |
Sekundarni naslov: |
Asynchronous algebraic effects |
Sekundarni povzetek: |
We take a look at the programming language Æff and $\lambda_æ$-calculus on which Æff is based. The main feature of the $\lambda_æ$-calculus is the ability to run asynchronously in conjunction with parallel execution. This is accomplished by continuing to perform operation’s continuation while it waits to receive a response in the form of an effect from another process. Once it receives the response, it processes it appropriately and execution resumes. We extend the basic version of the $\lambda_æ$-calculus with recursive promises, mobile types, and dynamic processes. Recursive promises allow the program to be able to respond to multiple effects with the same operation name. Mobile types allow you to send higher-order values between parallel processes, especially functions. Dynamic processes allow you to create new processes on the fly as needed. We prove the progress and preservation theorem for the basic and extended $\lambda_æ$-calculus. We also mention some differences between the $\lambda_æ$-calculus and the actual implementation of the Æff language. |
Sekundarne ključne besede: |
asynchronous execution;algebraic effects;parallel execution;handlers;signals; |
Vrsta dela (COBISS): |
Magistrsko delo/naloga |
Študijski program: |
0 |
Komentar na gradivo: |
Univ. v Ljubljani, Fak. za matematiko in fiziko, Oddelek za matematiko, Matematika - 2. stopnja |
Strani: |
IX, 65 str. |
ID: |
13854621 |