474 research outputs found

    Introduction to the Literature on Programming Language Design

    Get PDF
    This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search

    Introduction to the Literature On Programming Language Design

    Get PDF
    This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search

    Proof-Theoretic Methods for Analysis of Functional Programs

    Get PDF
    We investigate how, in a natural deduction setting, we can specify concisely a wide variety of tasks that manipulate programs as data objects. This study will provide us with a better understanding of various kinds of manipulations of programs and also an operational understanding of numerous features and properties of a rich functional programming language. We present a technique, inspired by structural operational semantics and natural semantics, for specifying properties of, or operations on, programs. Specifications of this sort are presented as sets of inference rules and are encoded as clauses in a higher-order, intuitionistic meta-logic. Program properties are then proved by constructing proofs in this meta-logic. We argue the following points regarding these specifications and their proofs: (i) the specifications are clear and concise and they provide intuitive descriptions of the properties being described; (ii) a wide variety of program analysis tools can be specified in a single unified framework, and thus we can investigate and understand the relationship between various tools; (iii) proof theory provides a well-established and formal setting in which to examine meta-theoretic properties of these specifications; and (iv) the meta-logic we use can be implemented naturally in an extended logic programming language and thus we can produce experimental implementations of the specifications. We expect that our efforts will provide new perspectives and insights for many program manipulation tasks

    situ-f: a domain specific language and a first step towards the realization of situ framework

    Get PDF
    Situ proposes a human centered, dynamic reasoning framework for domain experts to evolve their software. It formally models the relationship between externally observed situation sequences and the rapid evolution of that software system, using real-time usage information from users and contextual capturing on the behavior of a software system relative to its runtime environment. Situf is a continuing effort under Situ framework. In this effort, a domain specific, functional programming language named Situf is presented from its design, semantics and a feasibility test through theoretical validation. The targeted users of this language mainly include domain experts and engineers who are versed in the major concepts and paradigms regarding human-centric situations. As argued there, human-centric situations are vitally important to infer a user\u27s intention and therefore, to drive software service evolution. Situf is designed particularly to encourage domain experts and engineers to think and work with situations. An attribute grammar based approach is developed so that through Situf , relevant real-time contexts can be systematically aggregated around situations. A computational semantics is offered to precisely describe the runtime behavior of a Situf program. While the Situf language serves as the critical centerpiece of this work, its functioning necessarily requires environmental support from Situ elements outside the language itself, such that altogether they give rise to a Situ oriented system. This environment, named Situf -based environment, is also introduced

    Enriching a Meta-Language With Higher-Order Features

    Get PDF
    Various meta-languages for the manipulation and specification of programs and programming languages have recently been proposed. We examine one such framework, called natural semantics, which was inspired by the work of G. Plotkin on operational semantics and extended by G. Kahn and others at INRIA. Natural semantics makes use of a first-order meta-language which represents programs as first-order tree structures and reasons about these using natural deduction-like methods. We present the following three enrichments of this meta-language. First, programs are represented not by first-order structures but by simply typed λ-terms. Second, schema variables in inference rules can be higher-order variables. Third, the reasoning mechanism is explicitly extended with proof methods which have proved valuable for natural deduction systems. In particular, we add methods for introducing and discharging assumptions and for introducing and discharging parameters. The first method can be used to prove hypothetical propositions while the second can be used to prove generic or universal propositions. We provide several example specifications using this extended meta-language and compare them to their first-order specifications. We argue that our extension yields a more natural and powerful meta-language than the related first-order system. We outline how this enriched meta-language can be compiled into the higher-order logic programming language λProlog
    corecore