Results 1  10
of
57
Acute: Highlevel programming language design for distributed computation
 In Proc. ICFP
, 2004
"... Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt w ..."
Abstract

Cited by 69 (11 self)
 Add to MetaCart
(Show Context)
Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt with new versions of certain modules as time goes on. In this paper we discuss programminglanguage support for such systems, focussing on their typing and naming issues. We describe an experimental language, Acute, which extends an ML core to support distributed development, deployment, and execution, allowing typesafe interaction between separatelybuilt programs. The main features are: (1) typesafe marshalling of arbitrary values; (2) type names that are generated (freshly and by hashing) to ensure that type equality tests suffice to protect the invariants of abstract types, across the entire distributed system; (3) expressionlevel names generated to ensure that name equality tests suffice for typesafety of associated values, e.g. values carried on named channels; (4) controlled dynamic rebinding of marshalled values to local resources; and (5) thunkification of threads and mutexes to support computation mobility. These features are a large part of what is needed for typeful distributed programming. They are a relatively lightweight extension of ML, should be efficiently implementable, and are expressive enough to enable a wide variety of distributed infrastructure layers to be written as simple library code above the bytestring network and persistent store APIs. This disentangles the language runtime from communication intricacies. This paper highlights the main design choices in Acute. It is supported by a full language definition (of typing, compilation, and operational semantics), by a prototype implementation, and by example distribution libraries.
Hybridizing a logical framework
 In International Workshop on Hybrid Logic 2006 (HyLo 2006), Electronic Notes in Computer Science
, 2006
"... The logical framework LF is a constructive type theory of dependent functions that can elegantly encode many other logical systems. Prior work has studied the benefits of extending it to the linear logical framework LLF, for the incorporation linear logic features into the type theory affords good r ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
The logical framework LF is a constructive type theory of dependent functions that can elegantly encode many other logical systems. Prior work has studied the benefits of extending it to the linear logical framework LLF, for the incorporation linear logic features into the type theory affords good representations of state change. We describe and argue for the usefulness of an extension of LF by features inspired by hybrid logic, which has several benefits. For one, it shows how linear logic features can be decomposed into primitive operations manipulating abstract resource labels. More importantly, it makes it possible to realize a metalogical framework capable of reasoning about stateful deductive systems encoded in the style familiar from prior work with LLF, taking advantage of familiar methodologies used for metatheoretic reasoning in LF.Acknowledgments From the very first computer science course I took at CMU, Frank Pfenning has been an exceptional teacher and mentor. For his patience, breadth of knowledge, and mathematical good taste I am extremely thankful. No less do I owe to the other two major contributors to my programming languages
Distributed programming with distributed authorization
, 2009
"... We propose a programming language, called PCML5, for building distributed applications with distributed access control. Target applications include webbased systems in which programs must compute with stipulated resources at different sites. In such a setting, access control policies are decentrali ..."
Abstract

Cited by 24 (2 self)
 Add to MetaCart
We propose a programming language, called PCML5, for building distributed applications with distributed access control. Target applications include webbased systems in which programs must compute with stipulated resources at different sites. In such a setting, access control policies are decentralized (each site may impose restrictions on access to its resources without the knowledge of or cooperation with other sites) and spatially distributed (each site may store its policies locally). To enforce such policies PCML5 employs a distributed proofcarrying authorization framework in which sensitive resources are governed by reference monitors that authenticate principals and demand logical proofs of compliance with sitespecific access control policies. The language provides primitive operations for authentication, and acquisition of proofs from local policies. The type system of PCML5 enforces locality restrictions on resources, ensuring that they can only be accessed from the site at which they reside, and enforces the authentication and authorization obligations required to comply with local access control policies. This ensures that a welltyped PCML5 program cannot incur a runtime access control violation at a reference monitor for a controlled resource.
Typesafe distributed programming with ML5
 In Trustworthy Global Computing
, 2007
"... Abstract We present ML5, a high level programming language for spatially distributed computing. The language, a variant of ML, allows an entire distributed application to be developed and reasoned about as a unified program. The language supports transparent mobility of any kind of code or data, bu ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
(Show Context)
Abstract We present ML5, a high level programming language for spatially distributed computing. The language, a variant of ML, allows an entire distributed application to be developed and reasoned about as a unified program. The language supports transparent mobility of any kind of code or data, but its type system, based on modal logic, statically excludes programs that use mobile resources unsafely. The ML5 compiler produces code for all of the hosts that may be involved in the computation. These hosts may be heterogeneous, with different resources and even different architectures. Currently, our compiler and runtime are specialized to the particular case of web programming: a distributed computation with two sites, the web browser and the web server. 1
The arrow calculus
, 2008
"... Abstract. We introduce the arrow calculus, a metalanguage for manipulating Hughes’s arrows with close relations both to Moggi’s metalanguage for monads and to Paterson’s arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosy ..."
Abstract

Cited by 19 (5 self)
 Add to MetaCart
(Show Context)
Abstract. We introduce the arrow calculus, a metalanguage for manipulating Hughes’s arrows with close relations both to Moggi’s metalanguage for monads and to Paterson’s arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosyncratic) laws. In contrast, the arrow calculus adds four constructs satisfying five laws. Two of the constructs are arrow abstraction and application (satisfying beta and eta laws) and two correspond to unit and bind for monads (satisfying left unit, right unit, and associativity laws). The five laws were previously known to be sound; we show that they are also complete, and hence that the five laws may replace the nine. We give a translation from classic arrows into the arrow calculus to complement Paterson’s desugaring and show that the two translations form an equational correspondence in the sense of Sabry and Felleisen. We are also the first to publish formal type rules (which are unusual in that they require two contexts), which greatly aided our understanding of arrows. The first fruit of our new calculus is to reveal some redundancies in the classic formulation: the nine classic arrow laws can be reduced to eight, and the three additional classic arrow laws for arrows with apply can be reduced to two. The calculus has also been used to clarify the relationship between idioms, arrows and monads and as the inspiration for a categorical semantics of arrows. 1
Cutelimination and proofsearch for biintuitionistic logic using nested sequents
, 2008
"... We propose a new sequent calculus for biintuitionistic logic which sits somewhere between display calculi and traditional sequent calculi by using nested sequents. Our calculus enjoys a simple (purely syntactic) cutelimination proof as do display calculi. But it has an easily derivable variant cal ..."
Abstract

Cited by 16 (4 self)
 Add to MetaCart
(Show Context)
We propose a new sequent calculus for biintuitionistic logic which sits somewhere between display calculi and traditional sequent calculi by using nested sequents. Our calculus enjoys a simple (purely syntactic) cutelimination proof as do display calculi. But it has an easily derivable variant calculus which is amenable to automated proof search as are (some) traditional sequent calculi. We first present the initial calculus and its cutelimination proof. We then present the derived calculus, and then present a proofsearch strategy which allows it to be used for automated proof search. We prove that this search strategy is terminating and complete by showing how it can be used to mimic derivations obtained from an existing calculus GBiInt for biintuitionistic logic. As far as we know, our new calculus is the first sequent calculus for biintuitionistic logic which uses no semantic additions like labels, which has a purely syntactic cutelimination proof, and which can be used naturally for backwards proofsearch.
A modal language for the safety of mobile values
 In Fourth ASIAN Symposium on Programming Languages and Systems
, 2006
"... In the context of distributed computations, local resources give rise to an issue not found in standalone computations: the safety of mobile code. One approach to the safety of mobile code is to build a modal type system with the modality � that corresponds to necessity of modal logic. We argue tha ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
(Show Context)
In the context of distributed computations, local resources give rise to an issue not found in standalone computations: the safety of mobile code. One approach to the safety of mobile code is to build a modal type system with the modality � that corresponds to necessity of modal logic. We argue that the modality � is not expressive enough for safe communications in distributed computations, in particular for the safety of mobile values. We present a modal language which focuses on the safety of mobile values rather than the safety of mobile code. The safety of mobile values is achieved with a new modality � which expresses that given code evaluates to a mobile value. We demonstrate the use of the modality � with a communication construct for remote procedure calls.
Distributed Control Flow with Classical Modal Logic
 14TH ANNUAL CONFERENCE OF THE EUROPEAN ASSOCIATION FOR COMPUTER SCIENCE LOGIC (CSL 2005), LECTURE NOTES IN COMPUTER SCIENCE
, 2005
"... In previous work we presented a foundational calculus for spatially distributed computing based on intuitionistic modal logic. Through the modalities # and # we were able to capture two key invariants: the mobility of portable code and the locality of fixed resources. This work ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
In previous work we presented a foundational calculus for spatially distributed computing based on intuitionistic modal logic. Through the modalities # and # we were able to capture two key invariants: the mobility of portable code and the locality of fixed resources. This work
A Hybrid Intuitionistic Logic: Semantics and Decidability
 Journal of Logic and Computation
, 2005
"... An intuitionistic, hybrid modal logic suitable for reasoning about distribution of resources was introduced in [17, 18]. The modalities of the logic allow validation of properties in a particular place, in some place and in all places. We give a sound and complete Kripke semantics for the logic exte ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
(Show Context)
An intuitionistic, hybrid modal logic suitable for reasoning about distribution of resources was introduced in [17, 18]. The modalities of the logic allow validation of properties in a particular place, in some place and in all places. We give a sound and complete Kripke semantics for the logic extended with disjunctive connectives. The extended logic can be seen as an instance of Hybrid IS5. We also give a sound and complete birelational semantics, and show that it enjoys the finite model property: if a judgement is not valid in the logic, then there is a finite birelational countermodel. Hence, we prove that the logic is decidable.