Back to results

Massachusetts Institute of Technology

Synthesis-Aided Development of Distributed Programs

Abstract

dc:description.abstract

Despite many advances in programming models and frameworks, writing distributed programs remains hard. Even when the underlying logic is inherently sequential and simple, addressing distributed aspects results in complex cross-cutting code that undermines such simplicity. While the sequential computation model of programs represents a simple and natural form for expressing functionality, corresponding distributed implementations need to break this model. One of the most challenging aspects that impede achieving separation of concerns, significantly increases the difficulty of reasoning about distributed programs and, subsequently, complicates their implementation is the consistency model. This thesis examines the possibility of using the sequential model for writing distributed programs, characterizes the requirements for making that possible, and presents a synthesis approach that allows programmers to automatically generate distributed implementations from behaviors given as sequential programs and orthogonal specifications of distributed aspects. The end result is a programming system in which programmers define sequential behaviors and separately specify data allocation, reactivity, the underlying network with orthogonal specifications, as well as integrity, as a set of high-level semantic properties. Given such specifications, the system automatically finds an optimal consistency model needed to maintain the given integrity and emits low-level message-passing implementations. The system combines two novel techniques into a two-step process: first, it statically infers optimal consistency requirements for executions of bounded sets of operations, and then, it uses the inferred requirements to parameterize a new distributed protocol to relax operation reordering at run time when it is safe to do so. We demonstrate the system’s expressiveness and examine run-time performance impact on benchmarks from prior work, as well as new benchmarks.

Degree

thesis:*
Name thesis:degree_name
Doctoral
Department dc:contributor.department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Grantor dc:publisher
Massachusetts Institute of Technology
Year dc:date.issued
2024

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Kuraj, Ivan
Advisor dc:contributor.advisor
  • Solar-Lezama, Armando

Rights

dc:rights
Statement dc:rights
  • In Copyright - Educational Use Permitted
  • Copyright retained by author(s)

Identifiers

dc:identifier.*
Handle dc:identifier.uri
https://hdl.handle.net/1721.1/153838
OAI identifier oai:identifier
oai:dspace.mit.edu:1721.1/153838

Chain of custody

source
Harvested from
MIT
Base URL
dspace.mit.edu/oai/request
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
related terms
citation

Kuraj, Ivan. Synthesis-Aided Development of Distributed Programs. Massachusetts Institute of Technology, 2024. https://hdl.handle.net/1721.1/153838