Results 1 - 10
of
85
ConGolog, a concurrent programming language based on the situation calculus: language and implementation
, 1998
"... As an alternative to planning, an approach to high-level agent control based on concurrent program execution is considered. The language includes facilities for prioritizing the concurrent execution, interrupting the execution when certain conditions become true, and dealing with exogenous actions. ..."
Abstract
-
Cited by 186 (33 self)
- Add to MetaCart
As an alternative to planning, an approach to high-level agent control based on concurrent program execution is considered. The language includes facilities for prioritizing the concurrent execution, interrupting the execution when certain conditions become true, and dealing with exogenous actions. The language di ers from other procedural formalisms for concurrency in that the initial state can be incompletely speci ed and the primitive actions can be user-de ned by axioms in the situation calculus. In a companion paper, a formal de nition in the situation calculus of such a programming language is presented and illustrated with detailed examples. In this paper, the mathematical properties of the programming language are explored. 1
Rewriting Logic as a Logical and Semantic Framework
, 1993
"... Rewriting logic [72] is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics [70], representations of an object logic L in a framework logic F are und ..."
Abstract
-
Cited by 145 (52 self)
- Add to MetaCart
Rewriting logic [72] is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics [70], representations of an object logic L in a framework logic F are understood as mappings L ! F that translate one logic into the other in a conservative way. The ease with which such maps can be defined for a number of quite different logics of interest, including equational logic, Horn logic with equality, linear logic, logics with quantifiers, and any sequent calculus presentation of a logic for a very general notion of "sequent," is discussed in detail. Using the fact that rewriting logic is reflective, it is often possible to reify inside rewriting logic itself a representation map L ! RWLogic for the finitely presentable theories of L. Such a reification takes the form of a map between the abstract data types representing the finitary theories of...
Probabilistic noninterference in a concurrent language
, 1998
"... In [15], we give a type system that guarantees that well-typed multi-threaded programs are possibilistically noninterfering. If thread scheduling is probabilistic, however, then well-typed programs may have probabilistic timing channels. We describe how they can be eliminated without making the type ..."
Abstract
-
Cited by 82 (7 self)
- Add to MetaCart
In [15], we give a type system that guarantees that well-typed multi-threaded programs are possibilistically noninterfering. If thread scheduling is probabilistic, however, then well-typed programs may have probabilistic timing channels. We describe how they can be eliminated without making the type system more restrictive. We show that well-typed concurrent programs are probabilistically noninterfering if every total command with a high guard executes atomically. The proof uses the concept of a probabilistic state of a computation, following the work of Kozen [10].
Modular structural operational semantics
, 2004
"... Modular SOS (MSOS) is a variant of conventional Structural Operational Semantics (SOS). Using MSOS, the transition rules for each construct of a programming language can be given incrementally, once and for all, and do not need reformulation when further constructs are added to the language. MSOS th ..."
Abstract
-
Cited by 46 (4 self)
- Add to MetaCart
Modular SOS (MSOS) is a variant of conventional Structural Operational Semantics (SOS). Using MSOS, the transition rules for each construct of a programming language can be given incrementally, once and for all, and do not need reformulation when further constructs are added to the language. MSOS thus provides an exceptionally high degree of modularity in language descriptions, removing a shortcoming of the original SOS framework. After sketching the background and reviewing the main features of SOS, the paper explains the crucial differences between SOS and MSOS, and illustrates how MSOS descriptions are written. It also discusses standard notions of semantic equivalence based on MSOS. Appendix A shows how the illustrative MSOS rules given in the paper would be formulated in conventional SOS.
Enhanced Operational Semantics
- ACM Computing Surveys
, 1996
"... designers, implementors, users) must understand it. They can be roughly divided in two main groups. The first group is particularly interested in the behavioural aspects of systems, i.e. in what they do, regardless of how. The other group is concerned with the quantitative aspects of systems, i.e. ..."
Abstract
-
Cited by 37 (16 self)
- Add to MetaCart
designers, implementors, users) must understand it. They can be roughly divided in two main groups. The first group is particularly interested in the behavioural aspects of systems, i.e. in what they do, regardless of how. The other group is concerned with the quantitative aspects of systems, i.e. how efficiently they perform. The considerations above call for a semantics as usable as possible, with an underlying theory accordingly simple. Operational semantics is such because it describes the essential features that any computing device has. Thus, also final users may grasp the meaning of a definition driven by their experience on their own machine. Moreover, it is sufficient to decorate transition systems with the relevant information to describe in detail complex systems. For example, one can enhance operational semantics to describe aspects of concurrent and distributed processes, that we discuss here more <F23.
Trace-based aspects
- In Aspect-oriented Software Development
, 2004
"... Aspect-Oriented Programming (AOP) promises the modularization of so-called crosscutting functionalities in large applications. Currently, almost all approaches to AOP provide means for the description of sequential aspects that are to be applied to a sequential base program. In particular, there is ..."
Abstract
-
Cited by 33 (5 self)
- Add to MetaCart
Aspect-Oriented Programming (AOP) promises the modularization of so-called crosscutting functionalities in large applications. Currently, almost all approaches to AOP provide means for the description of sequential aspects that are to be applied to a sequential base program. In particular, there is no formally-defined concurrent approach to AOP, with the result that coordination issues between aspects and base programs as well as between aspects cannot precisely be investigated. This paper presents Concurrent Event-based AOP (CEAOP), which addresses this issue. Our contribution can be detailed as follows. First, we formally define a model for concurrent aspects which extends the sequential Event-based AOP approach. The definition is given as a translation into concurrent specifications using Finite Sequential Processes (FSP), thus enabling use of the Labelled Transition System Analyzer (LTSA) for formal property verification. Further, we show how to compose concurrent aspects using a set of general composition operators. Finally, we sketch a Java prototype implementation for concurrent aspects, which generates coordination specific code from the FSP model
Foundations of Modular SOS
, 1999
"... A novel form of labelled transition system is proposed, where the labels are the arrows of a category, and adjacent labels in computations are required to be composable. Such transition systems provide the foundations for modular SOS descriptions of programming languages. Three ..."
Abstract
-
Cited by 27 (6 self)
- Add to MetaCart
A novel form of labelled transition system is proposed, where the labels are the arrows of a category, and adjacent labels in computations are required to be composable. Such transition systems provide the foundations for modular SOS descriptions of programming languages. Three
Handling Encryption in an Analysis for Secure Information Flow
- In Proc. European Symp. on Programming, volume 2618 of LNCS
, 2003
"... This paper presents a program analysis for secure information flow. ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
This paper presents a program analysis for secure information flow.
Effective Specialization of Realistic Programs via Use Sensitivity
, 1997
"... In order to exploit specialization opportunities that exist in programs written by researchers outside of the programming language community, a partial evaluator needs to effectively treat existing realistic applications. Our empirical studies have demonstrated real-sized applications extensively us ..."
Abstract
-
Cited by 18 (6 self)
- Add to MetaCart
In order to exploit specialization opportunities that exist in programs written by researchers outside of the programming language community, a partial evaluator needs to effectively treat existing realistic applications. Our empirical studies have demonstrated real-sized applications extensively use non-liftable values such as pointers and data structures. Therefore, it is essential that the binding-time analysis accurately treats nonliftable values. To achieve this accuracy, we introduce the notion of use sensitivity, and present a use-sensitive binding-time analysis for C programs which is obtained by a forward analysis followed by a backward analysis. This analysis has been implemented and integrated into our partial evaluator for C, called Tempo. To validate the effectiveness of our analysis and demonstrate that use sensitivity is critical to obtain highly-specialized programs, we have conducted experimental studies on various components of existing operating systems code. Our res...

