Results 1 - 10
of
34
Back to the future: The story of Squeak, A practical Smalltalk written in itself
- In Proceedings OOPSLA ’97, ACM SIGPLAN Notices
, 1997
"... Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. ..."
Abstract
-
Cited by 154 (2 self)
- Add to MetaCart
Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. Other noteworthy aspects of Squeak include: a compact object format that typically requires only a single word of overhead per object; a simple yet efficient incremental garbage collector for 32-bit direct pointers; efficient bulkmutation of objects; extensions of BitBlt to handle color of any depth and anti-aliased image rotation and scaling; and real-time sound and music synthesis written entirely in Smalltalk. Overview Squeak is a modern implementation of Smalltalk-80 that is available for free via the Internet, at
Multi-way versus One-way Constraints in User Interfaces: Experience with the DeltaBlue Algorithm
, 1993
"... this paper we argue that many user interface construction problems are handled more naturally and elegantly by multi-way constraints than by one-way constraints. We present pseudocode for an incremental multi-way constraint satisfaction algorithm, DeltaBlue, and describe experience in using the algo ..."
Abstract
-
Cited by 82 (17 self)
- Add to MetaCart
this paper we argue that many user interface construction problems are handled more naturally and elegantly by multi-way constraints than by one-way constraints. We present pseudocode for an incremental multi-way constraint satisfaction algorithm, DeltaBlue, and describe experience in using the algorithm in two user interface toolkits. Finally, we provide performance figures demonstrating that multi-way constraint solvers can be entirely competitive in performance with one-way constraint solvers
Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers
- ACM COMPUT. SURV
, 2005
"... Since the early 1960’s, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice pr ..."
Abstract
-
Cited by 61 (2 self)
- Add to MetaCart
Since the early 1960’s, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system’s authors ’ approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages.
A Framework for Information Visualization Spreadsheets
, 1999
"... Information has become interactive. Information visualization is the design and creation of interactive graphic depictions of information by combining principles in the disciplines of graphic design, cognitive science, and interactive computer graphics. As the volume and complexity of the data incre ..."
Abstract
-
Cited by 54 (3 self)
- Add to MetaCart
Information has become interactive. Information visualization is the design and creation of interactive graphic depictions of information by combining principles in the disciplines of graphic design, cognitive science, and interactive computer graphics. As the volume and complexity of the data increases, users require more powerful visualization tools that allow them to more effectively explore large abstract datasets. This
Serendipity: Integrated Environment Support for Process Modelling, Enactment and Work Coordination
, 1998
"... Large cooperative work systems require work coordination, context awareness and process modelling and enactment mechanisms to be effective. Support for process modelling and work coordination in such systems also needs to support informal aspects of work which are difficult to codify. Computer-Suppo ..."
Abstract
-
Cited by 36 (24 self)
- Add to MetaCart
Large cooperative work systems require work coordination, context awareness and process modelling and enactment mechanisms to be effective. Support for process modelling and work coordination in such systems also needs to support informal aspects of work which are difficult to codify. Computer-Supported Cooperative Work (CSCW) facilities, such as inter-person communication and collaborative editing, also need to be well-integrated into both process-modelling tools and tools used to perform work. Serendipity is an environment which provides high-level, visual process modelling and event-handling languages, and diverse CSCW capabilities, and which can be integrated with a range of tools to coordinate cooperative work. This paper describes Serendipity's visual languages, support environment, and architecture, together with experience using the environment and integrating it with other environments. 1. Introduction Most computerised or semi-computerised work systems have evolved informal...
From Daikon to Agitator: lessons and challenges in building a commercial tool for developer testing
- In ISSTA ’06: Proceedings of the 2006 International Symposium on Software Testing and Analysis
, 2006
"... Developer testing is of one of the most effective strategies for improving the quality of software, reducing its cost, and accelerating its development. Despite its widely recognized benefits, developer testing is practiced by only a minority of developers. The slow adoption of developer testing is ..."
Abstract
-
Cited by 34 (3 self)
- Add to MetaCart
Developer testing is of one of the most effective strategies for improving the quality of software, reducing its cost, and accelerating its development. Despite its widely recognized benefits, developer testing is practiced by only a minority of developers. The slow adoption of developer testing is primarily due to the lack of tools that automate some of the more tedious and time-consuming aspects of this practice. Motivated by the need for a solution, and helped and inspired by the research in software test automation, we created a developer testing tool based on software agitation. Software agitation is a testing technique that combines the results of research in test-input generation and dynamic invariant detection. We implemented software agitation in a commercial testing tool called Agitator. This paper gives a high-level overview of software agitation and its implementation in Agitator, focusing on the lessons and challenges of leveraging and applying the results of research to the implementation of a commercial product.
ViTABaL: A Visual Language Supporting Design by Tool Abstraction
- in Proceedings of the 1995 IEEE Symposium on Visual Languages, IEEE CS
, 1995
"... ion John C. Grundy + and John G. Hosking ++ + Department of Computer Science University of Waikato Private Bag 3105, Hamilton, New Zealand jgrundy@cs.waikato.ac.nz ++ Department of Computer Science University of Auckland Private Bag 92019, Auckland, New Zealand john@cs.auckland.ac.nz Abstract We ..."
Abstract
-
Cited by 23 (20 self)
- Add to MetaCart
ion John C. Grundy + and John G. Hosking ++ + Department of Computer Science University of Waikato Private Bag 3105, Hamilton, New Zealand jgrundy@cs.waikato.ac.nz ++ Department of Computer Science University of Auckland Private Bag 92019, Auckland, New Zealand john@cs.auckland.ac.nz Abstract We describe a visual language and environment for designing and implementing systems using the tool abstraction paradigm. This paradigm permits systems to be constructed from toolie and abstract data structure components, using an event response mechanism to handle inter-component interaction. This approach leads to systems more easily adapted to functional specification changes than with conventional design. 1. Introduction In a recent paper, Garlan et al [4] introduce the toolabstraction (TA) paradigm for constructing computer systems that support functional evolution. In this approach groups of abstract data structures (ADSs) are shared by a collection of co-operating toolies. Each toolie...
Subtext: Uncovering the Simplicity of Programming
- IN OOPSLA ’05: PROCEEDINGS OF THE 20TH ANNUAL ACM SIGPLAN CONFERENCE ON OBJECT ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, AND APPLICATIONS
, 2005
"... Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation of a program is the same thing as its execution. Like a spreadsheet, a program is visible and alive, constantly executing even as it is edited. Program edits are coherent semantic transformations. The essence of
Programming with Agents: New metaphors for thinking about computation
, 1996
"... Computer programming environments for learning should make it easy to create worlds of responsive and autonomous objects, such as video games or simulations of animal behavior. But building such worlds remains difficult, partly because the models and metaphors underlying traditional programming lang ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Computer programming environments for learning should make it easy to create worlds of responsive and autonomous objects, such as video games or simulations of animal behavior. But building such worlds remains difficult, partly because the models and metaphors underlying traditional programming languages are not particularly suited to the task. This dissertation investigates new metaphors, environments, and languages that make possible new ways to create programs -- and, more broadly, new ways to think about programs. In particular, it introduces the idea of programming with "agents" as a means to help people create worlds involving responsive, interacting objects. In this context, an agent is a simple mechanism intended to be understood through anthropomorphic metaphors and endowed with certain lifelike properties such as autonomy, purposefulness, and emotional state. Complex behavior is achieved by combining simple agents into more complex structures. While the agent metaphor enables...
Supporting Reuse of Evolving Visual Code
- IEEE Symposium on Visual Languages
, 1997
"... Although the idea of reusing code is very appealing, effective reuse has long been acknowledged as a problem. To help address the difficulties, many advocate strong management commitment to code reuse, leading to the treatment of code as an asset to be carefully managed in a well-organized repositor ..."
Abstract
-
Cited by 12 (9 self)
- Add to MetaCart
Although the idea of reusing code is very appealing, effective reuse has long been acknowledged as a problem. To help address the difficulties, many advocate strong management commitment to code reuse, leading to the treatment of code as an asset to be carefully managed in a well-organized repository. However, the advent of the Web may bring a change to this outlook, encouraging informal, loosely-organized code repositories. Already, for both textual and visual languages, informal repositories are beginning to emerge, featuring a high rate of change and few controls over what a producer must do to submit code. In this paper, we present techniques to address some aspects of code reuse in this kind of informal, evolving environment. These techniques build upon characteristics found in many visual programming languages. Using these techniques, our approach is able to eliminate the special work traditionally required of the producer, while still supporting the consumer's reuse efforts with...

