Results 11 -
19 of
19
General Incremental Lexical Analysis
- I = I=16
, 1997
"... > Structures---trees General Terms: Algorithms, Languages, Performance, Theory Additional Key Words and Phrases: Incremental lexical analysis, scanner, token, reuse, error recovery 1. INTRODUCTION Batch lexers derive a stream of tokens by processing a stream of characters from left to right. Sev ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
> Structures---trees General Terms: Algorithms, Languages, Performance, Theory Additional Key Words and Phrases: Incremental lexical analysis, scanner, token, reuse, error recovery 1. INTRODUCTION Batch lexers derive a stream of tokens by processing a stream of characters from left to right. Several tools that facilitate the construction of such lexers have been devised, including the well-known Unix tools lex [Lesk and Schmidt 1979] and flex [Paxson 1995]. These tools support an extension of regular expression notation as their pattern set. Each pattern is associated with a rule; in many problem domains the goal is to partition the character stream into tokens, and each rule typically constructs (part of ) a token from the text matched by its corresponding pattern. In some situations, such as in a software development environment (SDE), a series of character streams are repeatedly analyzed with few difference
History-Sensitive Error Recovery
- In preparation. 24/9/1997 17:26 PAGE PROOFS master
, 1997
"... We present a novel approach to incremental recovery from lexical and syntactic errors in an interactive software development environment. Unlike existing techniques, we utilize the history of changes to the program to discover the natural correlation between user modifications and errors detected du ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
We present a novel approach to incremental recovery from lexical and syntactic errors in an interactive software development environment. Unlike existing techniques, we utilize the history of changes to the program to discover the natural correlation between user modifications and errors detected during incremental lexical and syntactic analysis. Our technique is non-correcting---the analysis refuses to incorporate invalid modifications, while still permitting correct changes to be applied. Errors are presented to the user simply by highlighting the invalid changes. The approach is automated---no user action is required to detect or recover from errors. Multiple textual and structural edits, arbitrary timing of incremental analysis, multiple errors per analysis, and nested errors are supported. Historybased error recovery is language independent and is compatible with the best known methods for incremental lexing and parsing, adding neither time nor space overhead to those algorithms. Effective integration with the environment's history services ensures that other tools can efficiently discover regions of the program (un)affected by errors, and that any transformations of the program required to isolate or present errors are themselves efficiently reversible operations. Keywords--- Error recovery, software development environments, incremental parsing, incremental lexing, development log, program presentation I.
Combining a Monad and a Comonad
"... We give a systematic treatment of distributivity for a monad and a comonad as arises in giving category theoretic accounts of operational and denotational semantics, and in giving an intensional denotational semantics. We do this axiomatically, in terms of a monad and a comonad in a 2-category, givi ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
We give a systematic treatment of distributivity for a monad and a comonad as arises in giving category theoretic accounts of operational and denotational semantics, and in giving an intensional denotational semantics. We do this axiomatically, in terms of a monad and a comonad in a 2-category, giving accounts of the Eilenberg-Moore and Kleisli constructions. We analyse the eight possible relationships, deducing that two pairs are isomorphic, but that the other pairs are all distinct. We develop those 2-categorical denitions necessary to support this analysis. This work is supported by EPSRC grants GR/J84205: Frameworks for programming language semantics and logic and GR/M56333: The structure of programming languages : syntax and semantics, and British Council grant 747 FCS R34807: Data and program renement using algebraic structure. y The author acknowledges the support of STA through COE budget for Global Information Processing Project. 1 1 Introduction In recent years, th...
Mapping Adl to the Bird-Meertens Formalism
, 1994
"... Bulk data operations such as map and reduce are an elegant medium for expressing repetitive computation over aggregate data structures. They also serve as a tool for abstraction: not all details of the computation, such as the exact ordering of the constituent operations, need to be specified by the ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Bulk data operations such as map and reduce are an elegant medium for expressing repetitive computation over aggregate data structures. They also serve as a tool for abstraction: not all details of the computation, such as the exact ordering of the constituent operations, need to be specified by the programmer. A precise description of the behaviour of the bulk data operator is the preserve of the language implementor. If the implementation of these operators is parallel then they become a medium for expressing implicit data parallelism. There is a large body of work formally the relating bulk data operators to each other and to their underlying data types. Much of this research stems from Category Theory where a number of general properties of types and operators have been established. One theoretical framework in particular, the Bird-Meertens Formalism (BMF), has proved to be extremely useful. The BMF theory of a type provides a set of operators on that type and a set of algebraic id...
Mathpad: A System for On-Line Preparation of Mathematical Documents
- CAB
, 1995
"... this document at your computer terminal are included in the final section. ..."
Abstract
- Add to MetaCart
this document at your computer terminal are included in the final section.
Chapter 1 SPECIFICATION SEMANTICS
"... X s , and t 1 : : : t n f 2 jT \Sigma (X)j s for all f : s 1 \Theta : : : \Theta s n ! s in \Sigma and t 1 2 jT \Sigma (X)j s1 ; : : : ; t n 2 jT \Sigma (X)j sn . The interpretation of an operation name becomes now the appending of the operation name at the end of the argument sequence. This represe ..."
Abstract
- Add to MetaCart
X s , and t 1 : : : t n f 2 jT \Sigma (X)j s for all f : s 1 \Theta : : : \Theta s n ! s in \Sigma and t 1 2 jT \Sigma (X)j s1 ; : : : ; t n 2 jT \Sigma (X)j sn . The interpretation of an operation name becomes now the appending of the operation name at the end of the argument sequence. This representation of terms is sometimes called postfix polish notation. This is a very compact representation of terms without any technical symbols and very useful for evaluating terms by means of a stack machine. But for a human reader this prototype algebra of terms is not very convenient. Human readers prefer the representation with technical symbols, as in Section 2.4, which represents in a better way the tree like structure of terms. Using a class of algebras opens the possibility to define the class axiomatically, where the axioms express the characteristic properties ensuring the same external behavior of all algebras in the class. In the following we will investigate what precise kinds of
Algebraic Model Checking
"... Abstract. Several more or less algebraic approaches to model checking are presented and compared with each other with respect to their range of applications and their degree of automation. All of them have been implemented and tested in our Haskell-based formal-reasoning system Expander2. Besides re ..."
Abstract
- Add to MetaCart
Abstract. Several more or less algebraic approaches to model checking are presented and compared with each other with respect to their range of applications and their degree of automation. All of them have been implemented and tested in our Haskell-based formal-reasoning system Expander2. Besides realizing and integrating state-of-the art proof and computation rules the system admits rarely restricted specifications of the models to be checked in terms of rewrite rules and functional-logic programs. It also offers flexible features for visualizing and even animating models and computations. Indeed, this paper does not present purely theoretical work. Due to the increasing abstraction potential of programming languages like Haskell the boundaries between developing a formal system and implementing it or making it ‘user-friendly ’ as well as between systems developed in different communities become more and more obsolete. The individual topics discussed in the paper reflect this observation. 1
EQUIVALENCES AND CONGRUENCES ON INFINITE Conway Games
- THEORETICAL INFORMATICS AND APPLICATIONS
, 1999
"... Taking the view that infinite plays are draws, we study Conway non-terminating games and non-losing strategies. These admit a sharp coalgebraic presentation, where non-terminating games are seen as a final coalgebra and game contructors, such as disjunctive sum, as final morphisms. We have shown, in ..."
Abstract
- Add to MetaCart
Taking the view that infinite plays are draws, we study Conway non-terminating games and non-losing strategies. These admit a sharp coalgebraic presentation, where non-terminating games are seen as a final coalgebra and game contructors, such as disjunctive sum, as final morphisms. We have shown, in a previous paper, that Conway’s theory of terminating games can be rephrased naturally in terms of game (pre)congruences. Namely, various conceptually independent notions of equivalence can be defined and shown to coincide on Conway’s terminating games. These are the equivalence induced by the ordering on surreal numbers, the contextual equivalence determined by observing what player has a winning strategy, Joyal’s categorical equivalence, and, for impartial games, the denotational equivalence induced by Grundy semantics. In this paper, we discuss generalizations of such equivalences to non-terminating games and non-losing strategies. The scenario is even more rich and intriguing in this case. In particular, we investigate efficient characterizations of the contextual equivalence,

