Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Distributed algorithms and protocols
Distributed algorithms and protocols
Incremental computation via function caching
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Maintaining views incrementally
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
A distributed mutual exclusion algorithm
ACM Transactions on Computer Systems (TOCS)
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
ACM Transactions on Computer Systems (TOCS)
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
An optimal algorithm for mutual exclusion in computer networks
Communications of the ACM
Decentralized extrema-finding in circular configurations of processors
Communications of the ACM
An improved algorithm for decentralized extrema-finding in circular configurations of processes
Communications of the ACM
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Incremental computation of complex object queries
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Elements of distributed computing
Elements of distributed computing
Introduction to Distributed Algorithms
Introduction to Distributed Algorithms
Distributed Algorithms
Practical byzantine fault tolerance and proactive recovery
ACM Transactions on Computer Systems (TOCS)
Efficient processing of relational calculus expressions using range query theory
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Dynamic Programming via Static Incrementalization
Higher-Order and Symbolic Computation
Optimizing Queries with Universal Quantification in Object-Oriented and Object-Relational Databases
VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases
Programs with Universally Quantified Embedded Implications
LPNMR '97 Proceedings of the 4th International Conference on Logic Programming and Nonmonotonic Reasoning
Notes on Data Base Operating Systems
Operating Systems, An Advanced Course
Distributed Computing: Fundamentals, Simulations and Advanced Topics
Distributed Computing: Fundamentals, Simulations and Advanced Topics
Distributed prototyping from validated specifications
Journal of Systems and Software - Special issue: Rapid system prototyping
Incrementalization across object abstraction
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Core role-based access control: efficient implementations by transformations
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Adaptive functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed Computing: Principles, Algorithms, and Systems
Distributed Computing: Principles, Algorithms, and Systems
Generating incremental implementations of object-set queries
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
An Implementation of a Query Language with Generalized Quantifiers
ER '08 Proceedings of the 27th International Conference on Conceptual Modeling
Automated implementation of complex distributed algorithms specified in the IOA language
International Journal on Software Tools for Technology Transfer (STTT)
From datalog rules to efficient programs with time and space guarantees
ACM Transactions on Programming Languages and Systems (TOPLAS)
Component Specification Using Event Classes
CBSE '09 Proceedings of the 12th International Symposium on Component-Based Software Engineering
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
The PlusCal Algorithm Language
ICTAC '09 Proceedings of the 6th International Colloquium on Theoretical Aspects of Computing
A language and framework for invariant-driven transformations
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
I do declare: consensus in a logic language
ACM SIGOPS Operating Systems Review
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Communication and Agreement Abstractions for Fault-tolerant Asynchronous Distributed Systems
Communication and Agreement Abstractions for Fault-tolerant Asynchronous Distributed Systems
Alias analysis for optimization of dynamic languages
Proceedings of the 6th symposium on Dynamic languages
High-Level executable specifications of distributed algorithms
SSS'12 Proceedings of the 14th international conference on Stabilization, Safety, and Security of Distributed Systems
High-Level executable specifications of distributed algorithms
SSS'12 Proceedings of the 14th international conference on Stabilization, Safety, and Security of Distributed Systems
Hi-index | 0.00 |
This paper describes a very high-level language for clear description of distributed algorithms and optimizations necessary for generating efficient implementations. The language supports high-level control flows where complex synchronization conditions can be expressed using high-level queries, especially logic quantifications, over message history sequences. Unfortunately, the programs would be extremely inefficient, including consuming unbounded memory, if executed straightforwardly. We present new optimizations that automatically transform complex synchronization conditions into incremental updates of necessary auxiliary values as messages are sent and received. The core of the optimizations is the first general method for efficient implementation of logic quantifications. We have developed an operational semantics of the language, implemented a prototype of the compiler and the optimizations, and successfully used the language and implementation on a variety of important distributed algorithms.