By Carlos A. Varela

Starting from the basis that knowing the principles of concurrent programming is essential to constructing dispensed computing platforms, this ebook first provides the elemental theories of concurrent computing after which introduces the programming languages that aid boost dispensed computing structures at a excessive point of abstraction. the foremost theories of concurrent computation -- together with the p-calculus, the actor version, the subscribe to calculus, and cellular ambients -- are defined with a spotlight on how they assist layout and cause approximately disbursed and cellular computing platforms. The ebook then offers programming languages that persist with the theoretical versions already defined, together with Pict, SALSA, and JoCaml. The parallel constitution of the chapters in either half one (theory) and half (practice) let the reader not just to check different theories but in addition to work out essentially how a programming language helps a theoretical version. The ebook is exclusive in bridging the space among the idea and the perform of programming disbursed computing structures. it may be used as a textbook for graduate and complicated undergraduate scholars in desktop technology or as a reference for researchers within the quarter of programming expertise for dispensed computing. through featuring conception first, the ebook permits readers to target the fundamental parts of concurrency, distribution, and mobility with out getting slowed down in syntactic info of particular programming languages. as soon as the idea is known, the sensible a part of enforcing a procedure in a precise programming language turns into a lot easier.

Show description

Read or Download Programming distributed computing systems: a foundational approach PDF

Similar languages & tools books

SOA for the Business Developer: Concepts, BPEL, and SCA

Service-Oriented structure (SOA) is a fashion of organizing software program. in case your company's improvement initiatives adhere to the rules of SOA, the result should be a list of modular devices known as "services," which enable for a fast reaction to alter. This e-book tells the SOA tale in an easy, simple demeanour to help you comprehend not just the buzzwords and merits, but in addition the applied sciences that underlie SOA: XML, WSDL, cleaning soap, XPath, BPEL, SCA, and SDO.

Additional info for Programming distributed computing systems: a foundational approach

Example text

X2 . x2 y), which gives the same result as β-reduction. η-reduction can be considered a program optimization. For example, consider the following Oz definitions: Increment = fun {$ X} X+1 end Inc = fun {$ X} {Increment X} end Using η-reduction, we could statically reduce {Inc Y} to {Increment Y} avoiding one extra function call (or β reduction step) at run-time. This compiler optimization is also called inlining. (i x) y) → (i y). (i x) y) → (i y). Now consider: IncTwice = fun {$ X} {Inc {Inc X}} end Compiler inlining can convert a call {IncTwice Y} to {Inc {Inc Y}} and then to {Increment {Increment Y}}, avoiding three extra function calls at runtime.

Because of currying, the λ calculus can use a single abstraction for function definition and a single abstraction for function evaluation, and yet be more generally applicable. , all their functions have single arity. Combinators are λ calculus expressions with no free variables, which makes their meaning context-independent. The recursive combinator, Y, discovered by Haskell Curry, allows to define recursive functions in the λ calculus, proving it Turing-complete (Curry, 1941). Higher-order programming, which is natural in the λ calculus, enables us to view functions as data.

D(x2 ). 5) where d is fresh. 1 for a more elaborate process expression modeling stateful concurrent programs in the π calculus. 2 π Calculus Operational Semantics The semantics of a concurrency model explains precisely the behavior of its elements. An operational semantics of the π calculus can be expressed in terms of a labeled transition system, where process expressions can evolve, modeling computation over time, according to a set of well-defined structural inference rules. When the system evolves from a state P, into a state Q, according to the label α, we write: α P −→ Q.

Download PDF sample

Rated 4.36 of 5 – based on 30 votes