Distrbution and Abstract Types in Emerald
IEEE Transactions on Software Engineering - Special issue on distributed systems
Concurrent object-oriented programming in Act 1
Object-oriented concurrent programming
Promises: linguistic support for efficient asynchronous procedure calls in distributed systems
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
How to write parallel programs: a guide to the perplexed
ACM Computing Surveys (CSUR)
Coordination languages and their significance
Communications of the ACM
Orca: A Language for Parallel Programming of Distributed Systems
IEEE Transactions on Software Engineering
A survey of asynchronous remote procedure calls
ACM SIGOPS Operating Systems Review
An overview of Manifold and its implementation
Concurrency: Practice and Experience
Lua—an extensible extension language
Software—Practice & Experience
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Half-sync/half-async: an architectural pattern for efficient and well-structured concurrent I/O
Pattern languages of program design 2
COBRA fundamentals and programming
COBRA fundamentals and programming
Coordinating distributed objects: an actor-based approach to synchronization
Coordinating distributed objects: an actor-based approach to synchronization
Programming with POSIX threads
Programming with POSIX threads
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Chord: A scalable peer-to-peer lookup service for internet applications
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Java Language Specification
The Java Language Specification
Reliable Distributed Computing with the ISIS Toolkit
Reliable Distributed Computing with the ISIS Toolkit
Programming dynamically reconfigurable open systems with SALSA
ACM SIGPLAN Notices
JXTA: A Network Programming Environment
IEEE Internet Computing
Abstraction and Modularity Mechanisms for Concurrent Computing
IEEE Parallel & Distributed Technology: Systems & Technology
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
IEEE Internet Computing
Guest Editors' Introduction: Asynchronous Middleware and Services
IEEE Internet Computing
Programming in Lua, Second Edition
Programming in Lua, Second Edition
Acute: High-level programming language design for distributed computation
Journal of Functional Programming
Scala Actors: Unifying thread-based and event-based programming
Theoretical Computer Science
Concurrency among strangers: programming in E as plan coordination
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
Event-Based programming without inversion of control
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
ALua: flexibility for parallel programming
Computer Languages, Systems and Structures
Hi-index | 0.03 |
The scale and diversity of interactions in current wide-area distributed programming environments, specially in Internet-based applications, point to the fact that there is no single solution for coordinating distributed applications. Instead, what is needed is the ability to easily build and combine different coordination abstractions. In this paper, we discuss the role of some language features, such as first-class function values, closures, and coroutines, in allowing different coordination mechanisms to be constructed out of a small set of communication primitives, and to be easily mixed and combined. Using the Lua programming language, we define a basic asynchronous primitive, which allows programming in a direct event-driven style with the syntax of function calls, and, based on this primitive, we build different well-known coordination abstractions for distributed computing.