bluuebunny/crossref_metadata_2025_split huggingface dataset:
Experience with a microprogrammed Interlisp system
Authors: Deutsch L. Peter 
Published: January 2007

This paper presents the design of an Interlisp system running on a microprogrammed minicomputer. We discuss the constraints imposed by compatibility requirements and by the hardware, the important design decisions, and the most prominent successes and failures of our design, and offer some suggestions for future designers of small Lisp systems.
This extended abstract contains only qualitative results. Supporting measurement data will be presented at MICRO-11.
Workload characterization and performance evaluation in a research environment
Authors: Hodges Larry F. , Stewart William J. 
Published: January 2007

This paper describes the process of bench-marking the diverse research environment that constitutes the workload of VAX/VMS at the University Analysis and Control Center at North Carolina State University. The benchmarking process began with a study of the system load and performance characteristics over the six-month period from January to June of 1981. Statistics were compiled on the number of active users, CPU usage by individual accounts, and peak load periods. Individual users were interviewed to determine the nature and major computing characteristics of the research they were conducting on VAX. Information from all sources was compiled to produce a benchmark that closely paralleled actual system activity.
An analytic model was introduced and used in conjunction with the benchmark data and hardware characteristics to derive performance measures for the system. Comparisons with measured system performance were conducted to demonstrate the accuracy of the model. The model was then employed to predict performance as the system workload was increased, to suggest improvements for the system, and to examine the effects of those improvements.
The RegularChains library in MAPLE
Authors: Lemaire F. , Maza M. Moreno , Xie Y. 
Published: January 2007

Performing calculations modulo a set of relations is a basic
technique in algebra. For instance, computing the inverse of an
integer modulo a prime integer or computing the inverse of the
complex number 3 + 2<i>t</i> modulo the relation
&ell;<sup>2</sup> + 1 = 0. Computing modulo a set
<i>S</i> containing more than one relation requires
from <i>S</i> to have some mathematical structure. For
instance, computing the inverse of <i>p</i> =
<i>x</i> + <i>y</i> modulo
<i>S</i> =
{<i>x</i><sup>2</sup> +
<i>y</i> +
1,<i>y</i><sup>2</sup> +
<i>x</i> + 1} is difficult unless one realizes that
this question is equivalent to computing the inverse of
<i>p</i> modulo <i>C</i> =
{<i>x</i><sup>4</sup> +
2<i>x</i><sup>2</sup> +
<i>x</i> + 2,<i>y</i> +
<i>x</i><sup>2</sup> + 1}. Indeed, from
there one can simplify <i>p</i> using
<i>y</i> =
-<i>x</i><sup>2</sup> - 1 leading to
<i>q</i> =
-<i>x</i><sup>2</sup> +
<i>x</i> - 1 and compute the inverse of
<i>q</i> modulo
<i>x</i><sup>4</sup> +
2<i>x</i><sup>2</sup> +
<i>x</i> + 2 (using the extended Euclidean algorithm)
leading to -1/2<i>x</i><sup>3</sup> -
1/2<i>x</i>. One commonly used mathematical structure
for a set of algebraic relations is that of a
<i>Gr&ouml;bner basis.</i> It is particularly well
suited for deciding whether a quantity is null or not modulo a set
of relations. For inverse computations, the notion of a
<i>regular chain</i> is more adequate. For instance,
computing the inverse of <i>p</i> =
<i>x</i> + <i>y</i> modulo the set
<i>C</i> =
{<i>y</i><sup>2</sup> -
2<i>x</i> +
1,<i>x</i><sup>2</sup> -
3<i>x</i> + 2}, which is both a Gr&ouml;bner basis
and a regular chain, is easily answered in this latter point of
view. Indeed, it naturally leads to consider the GCD of
<i>p</i> and
<i>C<inf>y</inf></i> =
<i>y</i><sup>2</sup> -
2<i>x</i> + 1 modulo the relation
<i>C<inf>x</inf></i> =
<i>x</i><sup>2</sup> -
3<i>x</i> + 2 = 0, which is
[EQUATION]
This shows that <i>p</i> has no inverse if
<i>x</i> = 1 and has an inverse (which can be computed
and which is -<i>y</i> + 2) if <i>x</i> =
2.
On the complexity of the D5 principle
Authors: Dahan X. , Schost É. , Maza M. Moreno , Wu W. , Xie Y. 
Published: January 2007

The standard approach for computing with an algebraic number is
through the data of its irreducible minimal polynomial over some
base field
k.
However, in typical tasks such as polynomial
system solving, involving many algebraic numbers of high degree,
following this approach will require using probably costly
factorization algorithms. Della Dora, Dicrescenzo and Duval
introduced "dynamic evaluation" techniques (also termed "D5
principle") [3] as a means to compute with algebraic numbers, while
avoiding factorization. Roughly speaking, this approach leads one
to compute over
direct products of field extensions of k
,
instead of only field extensions.

In this work, we address complexity issues for basic operations
in such structures. Precisely, let
[EQUATION]
be a family of polynomials, called a <i>triangular
set</i>, such that <i>k</i> &larr;
<i>K</i> =
<i>k</i>[<i>X</i><inf>1</inf>,...,<i>X<inf>n</inf></i>]/<b>T</b>
is a direct product of field extensions. We write &delta; for
the dimension of <i>K</i> over <i>k</i>,
which we call the <i>degree</i> of
<b>T.</b> Using fast polynomial multiplication and
Newton iteration for power series inverse, it is a folklore result
that for any &epsilon; &gt; 0, the operations (+, X) in
<i>K</i> can be performed in
<i>c</i><sup><i>n</i></sup><inf>&epsilon;</inf>&delta;<sup>1+&epsilon;</sup>
operations in <i>k</i>, for some constant
<i>c</i><inf>&epsilon;</inf>. Using a
fast Euclidean algorithm, a similar result easily carries over to
inversion, <i>in the special case when K is a
field.</i>
Our main results are similar estimates for the general case,
where <i>K</i> is merely a product of fields. Following
the D5 philosophy, meeting zero-divisors in the computation will
lead to <i>splitting</i> the triangular set
<b>T</b> into a family thereof, defining the same
extension. Inversion is then replaced by
<i>quasi-inversion:</i> a quasi-inverse [6] of
&alpha; &isin; <i>K</i> is a splitting of
<b>T</b>, such that &alpha; is either zero or
invertible in each component, together with the data of the
corresponding inverses.
ADM — a dialog manager
Authors: Schulert Andrew J. , Rogers George T. , Hamilton James A. 
Published: January 2007

ADM is a system for developing user interfaces. We call it a dialog manager; it is similar to what others call a “User Interface Management System” [8]. Although ADM is still being developed, it has been used to construct several applications.
A dialog manager divides an application into an “interaction handler,” which interacts with the user, and an “underlying application,” which processes user commands and data. With ADM the application designer writes the underlying application in a conventional programming language and defines the interface between interaction handler and underlying application in terms of “tasks,” things the user can do, and “states,” sets of tasks that are active at one time. The user interface designer defines the interaction handler in terms of “presentation techniques,” which present tasks to the user, and “structuring techniques,” which describe screen layout. Design decisions made for ADM include using a precompiled, declarative dialog description, a flexible division between interaction handler and underlying application, allowing either interaction handler or underlying application to maintain control, and the inclusion of help and error support.
On the parameters of human visual performance: an investigation of the benefits of antialiasing
Authors: Booth Kellogg S. , Bryden M. Philip , Cowan Wiliam B. , Morgan Michael F. , Plante Brian L. 
Published: January 2007

A two-part experiment was conducted to investigate the effects of aliasing artifacts and screen resolution on a simple visual recognition task. The results indicate that in many cases far less realism may be necessary in synthetic computer-generated imagery than is often assumed in the literature. The first part of the experiment comprised a subjective rating of image quality, the second part measured task effectiveness of image quality. In the second part subjects were asked to discriminate between images of two types of objects built from cubes, similar to objects used in experiments involving mental rotation.
At higher resolutions the elimination of aliasing artifacts did not significantly improve subjects' performance. At intermediate and low resolutions, comparable to what might be used for iconic menus, the reduction in aliasing artifacts resulted in improved performance. The subjective ratings indicate that for both high and low resolution the elimination of aliasing artifacts does not improve “quality,” whereas images rendered at intermediate resolutions are significantly degraded by aliasing artifacts to the extent that antialiasing improves the subjective rating.
An interpretation of these results is given in the context of an ongoing research program aimed at identifying the parameters of real-time human performance for graphics workstations.
Voice: technology searching for communication needs
Authors: Aucella Arlene , Kinkead Robin , Wichansky Anna , Shmandt Chris 
Published: January 2007

Voice technology is just beginning to gain a foothold in the information processing world. Applications such as voice mail, credit verification, order entry and airline reservation systems are slowly being introduced. Critics of voice systems frequently point out their limitations with little understanding of their power or advantages. One key determinant of the success or failure of voice systems is the USER INTERFACE. It is important that the dialogue structure, prompts, system feedback and error messages be designed based on user input, testing and evaluation.
Another key determinant of the success of voice systems is the careful matching of users, tasks and environment to the technology. Voice technology is often broken down into 3 major categories.
Speech compression. Processing allows analog patterns of human speech to be digitized. Once stored in digital form, the information can be transmitted and played back.
Common Applications: Voice Mail, Voice Annotation.
Text-to-Speech. Processing allows computer-stored text to be translated and retrieved via a “synthesized” voice.
Common applications: Remote retrieval of information (E-Mail, Calendar Appointments), Aids to Visually or Vocally Handicapped.
Speech Recognition. Processing allows analog patterns of human speech to be translated into their text-based equivalent or into computer commands.
Common Applications: Data Entry, Voice Activated Typewriter.
Cognition-sensitive design and user modeling for syntax-directed editors
Authors: Neal Lisa Rubin 
Published: January 2007

Syntax-directed editors were created with the intent of aiding in and improving the programming process. Despite their potential, they have not been successful, as evidenced by limited use. In general, they are perceived as being too difficult to use and the benefits of their use are outweighed by the difficulties.
We believe that the cognitive styles and skills of the users have been ignored in the design process. In this paper we present some of our initial results which show that cognitive styles vary over a significant spectrum and that their consideration in the design of a syntax-directed editor will result in an intelligent tool that will be right for the cognitive skills and expertise of an individual user. In turn, an approach to design that takes cognitive variation into account would support the construction of syntax-directed editors which are successfully used.
Walks into the APL design space
Authors: Gfeller Martin 
Published: January 2007

Like any living language, APL is evolving. The design space for its future development is wide open. Some trails into that space are known, for other languages have followed them. We will walk on some trails, visit some sights and also some dead ends. We will see which development areas could solve some old problems of APL, without changing its fabric.
The goal of the paper is to enable the reader to explore the APL design space on his or her own. To that end I will point the reader to some good books and articles about problems and solutions only touched upon in the paper.
Matrix operations over integral domains using nested APL
Authors: Willhoft Robert G. 
Published: January 2007

This paper deals with the use of APL to solve matrix theory problems with elements that are members of an integral domain. Two types of integral domains are used to illustrate the methods developed in this paper, integers (Z) and polynomials with real coefficients (Re[X]). However, the method of approach can be easily generalized to include other integral domains.
APL2, due to its generalized data representations and rich functional semantics, was chosen to implement the solution to this problem. For each integral domain presented, a method of data representation is developed, and implementations of the necessary “primitive” functions (Addition, Multiplication, Division, and Comparison) are given.
Finally, this newly developed system of functions and data representation is used to solve several of the most common Matrix Algebra problems. A simple recursive determinant and an implementation of Euclid's Greatest Common Divisor Algorithm are presented. Then, with these building blocks, a general algorithm for finding Smith's Canonical form and an algorithm to find the Invariant Factors are presented.
Object design of modularity, reuse and quality (abstract)
Authors: Bennett Douglas 
Published: January 2007

Turning buzzwords like modularity, reusable components, extensibility, testability, and robustness into reality requires more than just a compiler for an object-oriented language, or even an integrated development environment. These properties must be designed into the software product. This tutorial shows how to make design decisions so the product will do what its users want and so the buzzwords actually show up in the product. The tutorial will work through the steps of a design project, documenting user and producer needs, modeling the thing objects, describing behavior with event response models, and, finally, developing an architecture for the product. Part of each step is evaluating the design against the magic words. The result will be a product structure that is probably very different from conventional software architectures, but one that can be measured against the design criteria.
This tutorial teaches the explicit design of software. It uses notations from several existing methods. You may use your own notations, if you wish.
Types for the language designer (abstract)
Authors: Schwartzbach Michael , Palsberg Jens 
Published: January 2007

The type systems of object-oriented languages have specific goals: they serve as partial documentation, they provide modularity, and they ensure safety and efficiency at run-time. There are many choices in the design of a type system, and it is hard to evaluate their tradeoffs. This tutorial teaches a coherent theory of type systems for object-oriented languages that can be used for both explicit systems (where the programmer supplies type annotations) and implicit systems (where the compiler must perform type inference), and forty systems based on interfaces, classes, and sets of classes.
The tutorial defines an idealized object-oriented language, inspired by Smalltalk, and develops several type systems for it. This uniform framework makes it easy to compare different approaches. The tutorial explores the limitations of static type checking and shows how dynamic type checking can be introduced. It demonstrates how subclassing is different from subtyping, how specification types differ from implementation types, and the influence of a type system on separate compilation.
Introduction to object-oriented design (abstract)
Authors: Stipp Lori , Booch Grady 
Published: January 2007

This tutorial describes the Booth method for object-oriented design, including details of the notation and the design process. It describes the principles that are necessary for thinking and abstracting in terms of classes and objects. The tutorial includes a number of examples, including war stories from specific projects. It also covers extensions to the notation beyond that described in Object-Oriented Design with Applications.
This tutorial is a condensed version of Booths popular tutorial given at past OOPSLAs. If you have attended that in the past then you should attend tutorial 18 instead of this one.
The pragmatics of building object-oriented systems (abstract)
Authors: Booch Grady 
Published: January 2007

This tutorial expands upon the process described in Booths Object-Oriented Design with Applications to provide a prescriptive, iterative process for object-oriented development. It describes both the macro and micro process of development. It gives guidelines for managing iterative development, and addresses the pragmatic issues of milestones and planning, staffing, integration and release management, reuse, testing, quality assurance and metrics, documentation, tools, and technology transfer.
This tutorial assumes that you are familiar with Booths design method.
Hardware support for object-oriented systems (abstract)
Authors: Wolczko Mario 
Published: January 2007

When the performance penalty of object-oriented systems is mentioned, a common response is to blame antiquated hardware designs for not supporting object-oriented languages as they deserve, To what extent can the performance gap between conventional languages and object-oriented languages be closed using hardware? What architectural changes benefit object-oriented systems, and by how much?
There have been many attempts to make hardware that better supports object-oriented programming. This tutorial describes these systems, and the extent that they have succeeded or failed in their aims. These systems include SOAR, Rekursiv and MUSHROOM, as well as some features from mainstream architectures such as SPARC. Issues covered include: choice of instruction set, design of the memory system including caches and virtual memory hardware, scaleability, use of parallelism, and hardware/software trade-offs.
A common misconception is that if something is implemented in hardware then it must be fast. One aspect of the tutorial is to show that there are limits to what hardware support can achieve. However, better hardware can reduce the cost of some language features, such as dynamic binding, and can make a system more scaleable.
Efficient implementation of object-oriented programming languages (abstract)
Authors: Chambers Craig , Ungar David 
Published: January 2007

This tutorial is for those who like to know how object-oriented languages work under the hood, why some things are expensive while other things are cheap, and why language definitions include certain restrictions. This tutorial provides that, and more. It describes features of object-oriented languages that are difficult to implement efficiently, and how this has affected language designs. It describes state-of-the-practice and state-of-the-art techniques for implementing languages like C++ and Smalltalk.
Language features include dynamic binding and generic operations, inheritance, user-defined control structures, static type systems, multiple inheritance and virtual base classes, and mixing object-oriented and non-object-oriented programming.
The tutorial also addresses questions like: What are the trade-offs in using the various implementation techniques? What problems remain that block more efficient object-oriented language implementations? What might be promising areas for future research?
Writing efficient Smalltalk programs (abstract)
Authors: Auer Ken 
Published: January 2007

Smalltalk has a reputation for being slow and a offers many ways to create inefficient code, and memory hog. In reality, the Smalltalk environment programmers often exploit those opportunities.
However, there are just as many ways to create efficient code, some of which may not be available in more traditional languages. Whether an application is efficient or not has more to do with the way the programmer has used the available tools than the tools themselves.
This tutorial teaches Smalltalk programmers how to write efficient programs. The emphasis is on how to exploit, rather than sacrifice, the benefits of good object-oriented design. You should have at least six months experience with Smalltalk writing non-toy programs to get the most benefit from the tutorial.
The design of an object-oriented operating system (abstract)
Authors: Campbell Roy H. , Islam Nayeem , Madany Peter W. 
Published: January 2007

This tutorial describes the object-oriented design of a complete operating system, written to be object-oriented, with a user and application interface that is object-oriented. The main objective is to illustrate object-oriented design trade-offs by studying a large object-oriented system, the Choices operating system.
Choices is an object-oriented multiprocessor operating system that runs native on SPARC stations, Encore Multimaxes, and IBM PCs. The system is built from a number of frameworks that implement a general file system, persistent store for persistent objects, process switching, parallel processing, distributed processing, interrupt handling, virtual memory, networking, and interprocess communication.
If you bring an IBM/PC 386-based portable computer running MS-DOS to the course then you may experiment by writing application programs for PC-Choices. All participants will receive a copy of PC-Choices on a floppy.
Participants should have experience with building object-oriented systems and have a basic understanding of operating systems design. Reading knowledge of C++ is helpful, but not necessary.
An evaluation system for distributed-time VHDL simulation
Authors: Costa Alessandra , de Gloria Alessandro , Faraboschi Paolo , Olivieri Mauro 
Published: January 2007

Performance of VHDL simulation is a critical issue in electronic circuit design and is hard to achieve due to the complexity of the language and the different abstraction levels.
This paper presents a system for performance evaluation of distributed-time VHDL simulation based on the analysis of simulation traces. The system allows to model different architectures, interconnection topologies and simulation algorithms. The main tools are a VHDL analyzer to extract dependencies, and a trace-driven simulator to evaluate the execution time on a given architecture.