ACM Transactions on Programming Languages and Systems (TOPLAS)
Constructive mathematics and computer programming
Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages
Advances in Petri nets 1986, part II on Petri nets: applications and relationships to other models of concurrency
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Impossibility of distributed consensus with one faulty process
PODS '83 Proceedings of the 2nd ACM SIGACT-SIGMOD symposium on Principles of database systems
From clarity to efficiency for distributed algorithms
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
ShadowDB: a replicated database on a synthesized consensus core
HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
High-Level executable specifications of distributed algorithms
SSS'12 Proceedings of the 14th international conference on Stabilization, Safety, and Security of Distributed Systems
Formal program optimization in nuprl using computational equivalence and partial types
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
Working in a higher-order, abstract logic of events , we define event classes , a generalization of interfaces, and propagation rules that specify information flow between event classes. We propose a general definition of a component as a scheme, parameterized by a set of input classes, that defines a set of output classes and propagation rules. The specification of a component is a relation between its input classes and defined output classes that follows from its propagation rules and definitions. We define a subset of programmable event classes that can be compiled and executed and a language, called E #, for specifying components. Components specified in E #preserve programmability---if the component's input classes are programmable then its output classes and propagation rules are programmable. Thus a component specified in E #is a higher-order object: given programs for its input classes, it produces a distributed program for propagating information and programs for its output classes. These programs can be passed as inputs to other components so that components can be composed.