New Directions in Cloud Programming

by   Alvin Cheung, et al.

Nearly twenty years after the launch of AWS, it remains difficult for most developers to harness the enormous potential of the cloud. In this paper we lay out an agenda for a new generation of cloud programming research aimed at bringing research ideas to programmers in an evolutionary fashion. Key to our approach is a separation of distributed programs into a PACT of four facets: Program semantics, Availablity, Consistency and Targets of optimization. We propose to migrate developers gradually to PACT programming by lifting familiar code into our more declarative level of abstraction. We then propose a multi-stage compiler that emits human-readable code at each stage that can be hand-tuned by developers seeking more control. Our agenda raises numerous research challenges across multiple areas including language design, query optimization, transactions, distributed consistency, compilers and program synthesis.


Programming Requests/Responses with GreatFree in the Cloud Environment

Programming request with GreatFree is an efficient programming technique...

Copilot for Xcode: Exploring AI-Assisted Programming by Prompting Cloud-based Large Language Models

This paper presents an AI-assisted programming tool called Copilot for X...

Keeping CALM: When Distributed Consistency is Easy

A key concern in modern distributed systems is to avoid the cost of coor...

Invited Paper: Initial Steps Toward a Compiler for Distributed Programs

In the Hydro project we are designing a compiler toolkit that can optimi...

Coz: Finding Code that Counts with Causal Profiling

Improving performance is a central concern for software developers. To l...

Do Cloud Developers Prefer CLIs or Web Consoles? CLIs Mostly, Though It Varies by Task

Despite the increased importance of Cloud tooling, and many large-scale ...

Code Repositories


paper and code for New Directions in Cloud Programming, CIDR 2021

view repo

Please sign up or login with your details

Forgot password? Click here to reset