Results 1 -
5 of
5
Types and persistence in database programming languages
- ACM Computing Surveys
, 1987
"... Databases and have developed one another for Traditionally, the interface between a programming language and a database has either ..."
Abstract
-
Cited by 146 (2 self)
- Add to MetaCart
Databases and have developed one another for Traditionally, the interface between a programming language and a database has either
Undoing Actions in Collaborative Work
, 1992
"... The ability to undo operations is a standard feature in most single-user interactive applications. However, most current collaborative applications that allow several users to work simultaneously on a shared document lack undo capabilities; those which provide undo generally provide only a global un ..."
Abstract
-
Cited by 39 (6 self)
- Add to MetaCart
The ability to undo operations is a standard feature in most single-user interactive applications. However, most current collaborative applications that allow several users to work simultaneously on a shared document lack undo capabilities; those which provide undo generally provide only a global undo, in which the last change made by anyone to a document is undone, rather than allowing users to individually reverse their own changes. In this paper, we propose a general framework for undoing actions in collaborative systems. The framework takes into account the possibility of conflicts between different users' actions that may prevent a normal undo. The framework also allows selection of actions to undo based on who performed them, where they occurred, or any other appropriate criterion. KEYWORDS Undo, collaboration, groupware, conflict analysis. 1 INTRODUCTION The ability to undo operations is a standard and useful feature in most interactive single-user applications. For instance...
Implementing Functional Languages with Fast Equality, Sets and Maps: an Exercise in Hash Consing
- Bull S.A. Research Center, rue Jean-Jaur`es, 78340 Les Clayes sous Bois
, 1994
"... We investigate hash consing, a memory allocation strategy for functional languages. Though the idea is not new, its systematic use as a foundation for the run-time system of a language is new. We call this systematic approach maximal sharing. This strategy is shown to be implementable in practice wi ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
We investigate hash consing, a memory allocation strategy for functional languages. Though the idea is not new, its systematic use as a foundation for the run-time system of a language is new. We call this systematic approach maximal sharing. This strategy is shown to be implementable in practice with small speed and space penalties, while offering great opportunities to save space and execution time in big projects. Besides, it paves the way towards more efficient implementations of very desirable data structures like sets and maps (set-theoretic functions of finite domain) [23], opening the door to a whole slew of set- and map-based functional languages like POPS-Lisp [18] and HimML [20], a variant of Standard ML written by the author. The average-case complexities of operations on sets and maps are investigated, and shown to be quite good indeed. Computation sharing and incremental computation are briefly considered in this framework. Garbage collection techniques are reviewed to d...
Errors In An Interactive Programming Environment: Causes And Cures
"... : This paper describes an in-depth analysis of the errors made by novice programmers learning to write programs in a language called SOLO. Although the language is embedded in a helpful environment intended to minimize the difficulties often encountered by novice computer users, a variety of problem ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
: This paper describes an in-depth analysis of the errors made by novice programmers learning to write programs in a language called SOLO. Although the language is embedded in a helpful environment intended to minimize the difficulties often encountered by novice computer users, a variety of problems still arise. These problems are described in detail, with the aim of analysing their true causes. Recommendations for improving novices' computing environments are made, based upon the principle of `pre-emptive design'. This principle argues that users can profit from an environment in which it is not possible to make syntax errors, and moreover that such an environment need neither be unduly restrictive nor overly demanding of computational resources. INTRODUCTION The study of errors in computer programming has, in the last decade, shifted from an emphasis on syntactic errors (e.g. Boies and Gould, 1974) to an emphasis on semantic and conceptual errors, particularly for novice programmer...
Identifier Semantics: A Matter of References
, 1989
"... We present a clear semantics for identifier use. Using precise terminology, this semantics accounts for: the creation, use, modification and visibility of bindings, as well as the mention of identifiers. It covers current practice in Lisp-like languages, while incorporating features usually found ou ..."
Abstract
- Add to MetaCart
We present a clear semantics for identifier use. Using precise terminology, this semantics accounts for: the creation, use, modification and visibility of bindings, as well as the mention of identifiers. It covers current practice in Lisp-like languages, while incorporating features usually found outside Lisp. This semantics is shown to be viable for both Lisp1 (unified function and value cell Lisp) and Lisp2. A syntactic device is included which allows concise expression without sacrificing generality. The ensemble has been demonstrated in a meta-circular version, while a production version for the next release of Le-Lisp is in progress. The associated denotational semantics will figure in an annex of the full paper.

