Three experiments were conducted to test the role that semantic knowledge plays in expert programmer ability. In Experiments 1 and 2, changing the normal semantic structure affected experts more than novices, although...
详细信息
Three experiments were conducted to test the role that semantic knowledge plays in expert programmer ability. In Experiments 1 and 2, changing the normal semantic structure affected experts more than novices, although experts still outperformed novices. Experiment 3 showed that the experts' advantage was not due merely to their better knowledge of the keywords used in the programminglanguages. They were also better at searching for types of keywords. Recall and comprehension measures showed the same effects only in Experiment 1. Overall, the results suggest that the role of semantic knowledge in computer programming is more complex than has been previously thought. Merely substituting for keywords or swapping the order of lines still allows the experts to search and attend better to the functions of the program. When semantically complex functions are used, experts are at an equal disadvantage but still outperform novices.
Step-indexed semantic interpretations of types were proposed as an alternative to purely syntactic proofs of type safety using subject reduction. The types are interpreted as sets of values indexed by the number of co...
详细信息
Step-indexed semantic interpretations of types were proposed as an alternative to purely syntactic proofs of type safety using subject reduction. The types are interpreted as sets of values indexed by the number of computation steps for which these values are guaranteed to behave like proper elements of the type. Building on work by Ahmed, Appel and others, we introduce a step-indexed semantics for the imperative object calculus of Abadi and Cardelli. Providing a semantic account of this calculus using more 'traditional', domain-theoretic approaches has proved challenging due to the combination of dynamically allocated objects, higher-order store, and an expressive type system. Here we show that, using step-indexing, one can interpret a rich type discipline with object types, subtyping, recursive and bounded quantified types in the presence of state.
Capsules are a clean representation of the state of a computation in higher-order programminglanguages with effects. Their intent is to simplify and replace the notion of closure. They naturally provide support for f...
详细信息
Capsules are a clean representation of the state of a computation in higher-order programminglanguages with effects. Their intent is to simplify and replace the notion of closure. They naturally provide support for functional and imperative features, including recursion and mutable bindings, and ensure lexical scoping without the use of closures, heaps, stacks or combinators. We present a comparison of the use of closures and capsules in the semantics of higher-order programminglanguages with effects. In proving soundness of one to the other, we give a precise account of how capsule environments and closure environments relate to each other.
Recent developments by Hewitt and others have stimulated interest in message-passing constructs as an alternative to the more conventional applicative semantics on which most current languages are based. The present w...
详细信息
Recent developments by Hewitt and others have stimulated interest in message-passing constructs as an alternative to the more conventional applicative semantics on which most current languages are based. The present work illuminates the distinction between applicative and message-passing semantics by means of the μ-calculus, a syntactic model of message-passing systems similar in mechanism to the λ-calculus. Algorithms for the translation of expressions from the λ- to the μ-calculus are presented, and differences between the two approaches are ***-passing semantics seem particularly applicable to the study of multiprocessing. The μ-calculus, through the mechanism of conduits, provides a simple model for a limited but interesting class of parallel computations. Multiprocessing capabilities of the μ-calculus are illustrated, and multiple-processor implementations are discussed briefly.
The meaning of many kinds of expressions in programminglanguages can be taken as elements of certain spaces of “partial” objects. In this report these spaces are modeled in one universal domain PωPω{\bf P} \omega...
详细信息
The meaning of many kinds of expressions in programminglanguages can be taken as elements of certain spaces of “partial” objects. In this report these spaces are modeled in one universal domain PωPω, the set of all subsets of the integers. This domain renders the connection of this semantic theory with the ordinary theory of number theoretic (especially general recursive) functions clear and straightforward.
This paper advocates a novel approach to the construction of secure software: controlling information flow and maintaining integrity via monadic encapsulation of effects. This approach is constructive, relying on prop...
详细信息
This paper advocates a novel approach to the construction of secure software: controlling information flow and maintaining integrity via monadic encapsulation of effects. This approach is constructive, relying on properties of monads and monad transformers to build, verify, and extend secure software systems. We illustrate this approach by construction of abstract operating systems called separation kernels. Starting from a mathematical model of shared-state concurrency based on monads of resumptions and state, we outline the development by stepwise refinements of separation kernels supporting Unix-like system calls, interdomain communication, and a formally verified security policy (domain separation). Because monads may be easily and safely represented within any pure, higher-order, typed functional language, the resulting system models may be directly realized within a language such as Haskell.
So-called 'guarded commands' are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but possibly eve...
详细信息
So-called 'guarded commands' are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but possibly even the final state, is not necessarily uniquely determined by the initial state. For the formal derivation of programs expressed in terms of these constructs, a calculus will be be shown. [ABSTRACT FROM AUTHOR]
Many apparently divergent approaches to specifying formal semantics of programminglanguages are applications of initial algebra semantics. In this paper an overview of initial algebra semantics is provided. The major...
详细信息
Many apparently divergent approaches to specifying formal semantics of programminglanguages are applications of initial algebra semantics. In this paper an overview of initial algebra semantics is provided. The major technical feature is an initial continuous algebra which permits unified algebraic treatment of iterative and recursive semantic features in the same framework as more basic operations.
Recent storage systems trade strong consistency for performance, availability, and scalability. However, this makes it hard to understand the semantics that the storage system provides, and also makes the design and i...
详细信息
ISBN:
(数字)9781728142227
ISBN:
(纸本)9781728142234
Recent storage systems trade strong consistency for performance, availability, and scalability. However, this makes it hard to understand the semantics that the storage system provides, and also makes the design and implementation of the storage system itself more error-prone. This paper proposes a comprehensive solution to these problems. In particular, we propose a specification language named ConSpec, which enables the formalization of different consistency semantics that a storage system may provide, using a uniform syntax that is independent of the design and implementation of the target storage system. We use ConSpec to revisit several existing models in light of a common way to define and compare them. Furthermore, we generalize the CAP theorem, whose original formulation only considered linearizability, to precisely define the class of consistency definitions that can and cannot be implemented in a highly-available, partition-tolerant way. Finally, we present the design and implementation of a new consistency checker that takes a trace from a storage system (e.g., the output of a test suite) and validates whether it meets any consistency semantics defined using ConSpec. The evaluation of our consistency checker shows that it is able to verify the correctness of long traces in a reasonable time.
Hybrid systems modelers have become the corner stone of embedded system development, with Simulink a de facto standard and Modelica a new player. Such tools still raise a number of issues that, we believe, require mor...
详细信息
ISBN:
(纸本)9781424477456
Hybrid systems modelers have become the corner stone of embedded system development, with Simulink a de facto standard and Modelica a new player. Such tools still raise a number of issues that, we believe, require more fundamental understanding. In this paper we propose using non standard analysis as a semantic domain for hybrid systems - non standard analysis is an extension of classical analysis in which infinitesimals (the epsilon and eta in the celebrated generic sentence (arbitrary)(epsilon)(exist)(eta)... in college maths) can be manipulated as first class citizens. This allows us to provide a denotational semantics and a constructive semantics for hybrid systems, thus establishing simulation engines on a firm mathematical basis. In passing, we cleanly separate the job of the numerical analyst (solving differential equations) from that of the computer scientist (generating execution schemes).
暂无评论