Achievements
presented
‘Interactive Programming as an “Operating System” for Resilience in Distributed Systems’
at the folowwing conferences:
- European Conference on Object-Oriented Programming (ECOOP 2022) – Berlin, Germany
- 42nd IEEE International Conference on Distributed Computing Systems (ICDCS 2022) – Bologna, Italy
- 41st International Symposium on Reliable Distributed Systems (SRDS 2022) – Vienna, Austria
DC-RES Seminar Talks
- Visualizing distributed runtime state at edit time. 2024
- Declarative distributed process supervision in plain text. 2024
- Can Programs be User Interfaces for Databases? Freeform interactive s-expressions via edit-time macros. 2023
- Live demonstration of a novel interactive programming environment (early prototype). 2022
- Human-first interactive programming systems. 2021
Proficiency Examination:
Interactive Programming as an “Operating System” for Resilience in Distributed Systems
Accrued incidental complexity in software systems lowers their resilience. This thesis proposes means for understanding and evolving complex situated systems through broadening the scope of what is considered to be the act and medium of programming.
The key idea of this thesis is a universal data model based on accreting assertions and retractions of atomic facts over time to represent code and state in a single level, ephemeral and persistent. Changes to both code and data together with provenance are immutably reified in the same model.
A minimal set of interactions is expected to support live inspection and controlled modification of a running system by coupling the editing environment to the runtime and extending the language of REPL (read-evaluate-print-loop) interactions with means of direct manipulation. Combining algebraic effect systems with object capabilities allows safe experimentation on a live production system.
By way of Design Science Research, this thesis will iteratively yield designs, implementations, and evaluations of usable proof-of-concept artifacts comprising a resilient interactive programming system.