Results 1 - 10
of
18
Proving the correctness of reactive systems using sized types
, 1996
"... { rjmh, pareto, sabry We have designed and implemented a type-based analysis for proving some baaic properties of reactive systems. The analysis manipulates rich type expressions that contain in-formation about the sizes of recursively defined data struc-tures. Sized types are useful for detecting d ..."
Abstract
-
Cited by 113 (2 self)
- Add to MetaCart
{ rjmh, pareto, sabry We have designed and implemented a type-based analysis for proving some baaic properties of reactive systems. The analysis manipulates rich type expressions that contain in-formation about the sizes of recursively defined data struc-tures. Sized types are useful for detecting deadlocks, non-termination, and other errors in embedded programs. To establish the soundness of the analysis we have developed an appropriate semantic model of sized types. 1 Embedded Functional Programs In a reactive system, the control software must continu-ously react to inputs from the environment. We distin-guish a class of systems where the embedded programs can be naturally expressed as functional programs manipulat-ing streams. This class of programs appears to be large enough for many purposes [2] and is the core of more ex-pressive formalisms that accommodate asynchronous events, non-determinism, etc. The fundamental criterion for the correctness of pro-grams embedded in reactive systems is Jwene.ss. Indeed, before considering the properties of the output, we must en-sure that there is some output in the first place: the program must continuous] y react to the input streams by producing elements on the output streams. This latter property may fail in various ways: e the computation of a stream element may depend on itself creating a “black hole, ” or e the computation of one of the output streams may demand elements from some input stream at different rates, which requires unbounded buffering, or o the computation of a stream element may exhaust the physical resources of the machine or even diverge.
Forms/3: A First-Order Visual Language to Explore the Boundaries of the Spreadsheet Paradigm
"... Although detractors of functional programming sometimes claim that functional programming is too difficult or counterintuitive for most programmers to understand and use, evidence to the contrary can be found by looking at the popularity of spreadsheets. The spreadsheet paradigm, a first-order subs ..."
Abstract
-
Cited by 81 (37 self)
- Add to MetaCart
Although detractors of functional programming sometimes claim that functional programming is too difficult or counterintuitive for most programmers to understand and use, evidence to the contrary can be found by looking at the popularity of spreadsheets. The spreadsheet paradigm, a first-order subset of the functional programming paradigm, has found wide acceptance among both programmers and end users. Still, there are many limitations with most spreadsheet systems.
Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine)
- In Proceedings of the 1999 ACM International Conference on Functional Programming (ICFP ’99
, 1999
"... The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme's read-eval-print loop. We describe the key elements of the MrEd virtual machine for building ..."
Abstract
-
Cited by 21 (6 self)
- Add to MetaCart
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme's read-eval-print loop. We describe the key elements of the MrEd virtual machine for building a programming environment, and we step through the implementation of a miniature version of DrScheme in MrEd. More generally, we show how MrEd defines a high-level operating system for graphical programs. 1 MrEd: A Scheme Machine The DrScheme programming environment [10] provides students and programmers with a user-friendly environment for developing Scheme programs. To make programming accessible and attractive to novices, DrScheme provides a thoroughly graphical environment and runs under several major windowing systems (Windows, MacOS, and Unix/X). More than 60 universities and high schools currently employ DrScheme in their computing curriculum, and new schools adopt DrScheme every s...
A call-by-need lambda-calculus with locally bottom-avoiding choice: Context lemma and correctness of transformations
- MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 2008
"... We present a higher-order call-by-need lambda calculus enriched with constructors, case-expressions, recursive letrec-expressions, a seq-operator for sequential evaluation and a non-deterministic operator amb that is locally bottom-avoiding. We use a small-step operational semantics in form of a sin ..."
Abstract
-
Cited by 12 (9 self)
- Add to MetaCart
We present a higher-order call-by-need lambda calculus enriched with constructors, case-expressions, recursive letrec-expressions, a seq-operator for sequential evaluation and a non-deterministic operator amb that is locally bottom-avoiding. We use a small-step operational semantics in form of a single-step rewriting system that defines a (nondeterministic) normal order reduction. This strategy can be made fair by adding resources for bookkeeping. As equational theory we use contextual equivalence, i.e. terms are equal if plugged into any program context their termination behaviour is the same, where we use a combination of may- as well as must-convergence, which is appropriate for non-deterministic computations. We show that we can drop the fairness condition for equational reasoning, since the valid equations w.r.t. normal order reduction are the same as for fair normal order reduction. We evolve different proof tools for proving correctness of program transformations, in particular, a context lemma for may- as well as mustconvergence is proved, which restricts the number of contexts that need to be examined for proving contextual equivalence. In combination with so-called complete sets of commuting and forking diagrams we show that
all the deterministic reduction rules and also some additional transformations preserve contextual equivalence.We also prove a standardisation theorem for fair normal order reduction. The structure of the ordering <= c is also analysed: Ω is not a least element, and <=c already implies contextual equivalence w.r.t. may-convergence.
Communicating Functional Agents and their Application to Graphical User Interfaces (Extended Abstract)
- In Proceedings of the 2nd International Conference on Perspectives of System Informatics
, 1996
"... Thomas Frauenstein, Wolfgang Grieskamp, Peter Pepper, Mario Sudholt Technische Universitat Berlin, Fachbereich Informatik, Institut fur Komm- und Softwaretechnik, Franklinstr. 28/29, 10587 Berlin, e-mail: fthofra,wg,pepper,fishg@cs.tu-berlin.de Abstract We demonstrate how concepts of communicating ..."
Abstract
-
Cited by 11 (4 self)
- Add to MetaCart
Thomas Frauenstein, Wolfgang Grieskamp, Peter Pepper, Mario Sudholt Technische Universitat Berlin, Fachbereich Informatik, Institut fur Komm- und Softwaretechnik, Franklinstr. 28/29, 10587 Berlin, e-mail: fthofra,wg,pepper,fishg@cs.tu-berlin.de Abstract We demonstrate how concepts of communicating agents can be integrated into purely functional languages by an orthogonal extension of I/O monads. These agents communicate via so-called service access points and foster concurrent programming in the style of client-server architectures. By applying our approach to the realization of graphical user interfaces it turns out that the combination of functional expressiveness and concurrency monads yields a powerful framework for such systems. 1 Introduction Various approaches have been studied over the years in efforts to overcome the deficiency of functional languages w.r.t. the handling of Input/Output, notably stream-processing functions, continuations and monads. The endeavours, in part...
Un Calcul De Constructions Infinies Et Son Application A La Verification De Systemes Communicants
, 1996
"... m networks and the recent works of Thierry Coquand in type theory have been the most important sources of motivation for the ideas presented here. I wish to specially thank Roberto Amadio, who read the manuscript in a very short delay, providing many helpful comments and remarks. Many thanks also to ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
m networks and the recent works of Thierry Coquand in type theory have been the most important sources of motivation for the ideas presented here. I wish to specially thank Roberto Amadio, who read the manuscript in a very short delay, providing many helpful comments and remarks. Many thanks also to Luc Boug'e, who accepted to be my oficial supervisor, and to the chair of the jury, Michel Cosnard, who opened to me the doors of the LIP. During these last three years in Lyon I met many wonderful people, who then become wonderful friends. Miguel, Nuria, Veronique, Patricia, Philippe, Pia, Rodrigo, Salvador, Sophie : : : with you I have shared the happiness and sadness of everyday life, those little things which make us to remember someone forever. I also would like to thank the people from "Tango de Soie", for all those funny nights at the Caf'e Moulin Joly. Thanks too to the Uruguayan research community in Computer Science (specially to Cristina Cornes and Alberto Pardo) w
Value Recursion in Monadic Computations
- OGI School of Science and Engineering, OHSU
, 2002
"... viii 1 ..."
Defining and Implementing Closed, Domain-Specific Languages
- Invited talk at the Workshop on Semantics, Applications and Implementation of Program Generation (SAIG
, 2000
"... A closed domain-speci c language (DSL) is a standalone, declarative language that cannot easily be embedded into an existing, wide-spectrum programming language as a library of combinators. It requires an independent implementation. We advocate defining the semantics of a closed DSL in terms of a un ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
A closed domain-speci c language (DSL) is a standalone, declarative language that cannot easily be embedded into an existing, wide-spectrum programming language as a library of combinators. It requires an independent implementation. We advocate defining the semantics of a closed DSL in terms of a universal set of semantics combinators which form a structure algebra over a suitable domain. By exchanging the domain of this algebra for a domain of abstract machine states, we automatically derive an implementation of the DSL in terms of byte code instructions for an abstract machine. The correctness of this implementation is proved by showing coherence of the operational, abstract machine semantics with the denotational semantics. The technique is illustrated in implementing a DSL for pretty printing.
Compositional Logic Programming
- In Proceedings of the JICSLP'96 post-conference workshop: Multi-paradigm logic programming, Report 96-28. Technische Universitat
, 2000
"... Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the langu ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the language. In turn, this requirement inhibits the rapid prototyping of specifications in a relational notation. The aim of this thesis is to bridge the gap between the methodology and practice of relational program derivation by realising a compositional style of logic programming that permits specifications to be phrased naturally and executed declaratively.
Distributed Haskell: Goffin On The Internet
- IN FUJI INTERNATIONAL SYMPOSIUM ON FUNCTIONAL AND LOGIC PROGRAMMING
, 1998
"... The constraint functional language GOFFIN extends the purely functional Haskell with combinators from concurrent.... ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
The constraint functional language GOFFIN extends the purely functional Haskell with combinators from concurrent....

