Advertisement

Research and Advances

Principles of package design

Subprogram packages are groups of related subroutines used to extend the available facilities in a programming system. The results of developing several such packages for various applications are presented, with a distinction made between external and internal design criteria— what properties packages should offer to their users and the guidelines designers should follow in order to provide them. An important issue, the design of reusable software, is thus addressed, and the concept of abstract data types proposed as a desirable solution.
Research and Advances

Authoring systems in computer based education

The idea of a programming system which generates other programs (referred to as automatic programming or metasoftware) has always been a popular one in computer science. Despite the interest, however, few such systems have actually been inplemented and used. An exception is the development and use of authoring systems in the domain of Computer Based Education (CBE). This article surveys the development and characteristics of authoring systems.
Research and Advances

Controlling the complexity of menu networks

A common approach to the design of user interfaces for computer systems is the menu selection technique. Each menu frame can be considered a node in an information/action network. The set of nodes and the permissible transitions between them (menu selections) form a directed graph which, in a system of substantial size, can be large and enormously complex. The solution to this problem of unmanageable complexity is the same for menu networks as for programs: the disciplined use of a set of well-defined one-in-one-out structures. This paper defines a set of such structures and offers some guidelines for their use.
Research and Advances

Estimating block accesses and number of records in file management

We consider the problems of estimating the number of secondary storage blocks and the number of distinct records accessed when a transaction consisting of possibly duplicate requested records is presented to a file management system. Our main results include (1) a new formula for block access estimation for the case where the requested records may have duplications and their ordering in immaterial and (2) a simple formula for estimating the number of distinct records in the transaction.
Research and Advances

On the inevitable intertwining of specification and implementation

Contrary to recent claims that specification should be completed before implementation begins, this paper presents two arguments that the two processes must be intertwined. First, limitations of available implementation technology may force a specification change. For example, deciding to implement a stack as an array (rather than as a linked list) may impose a fixed limit on the depth of the stack. Second, implementation choices may suggest augmentations to the original specification. For example, deciding to use an existing pattern-match routine to implement the search command in an editor may lead to incorporating some of the routine's features into the specification, such as the ability to include wild cards in the search key. This paper elaborates these points and illustrates how they arise in the specification of a controller for a package router.
Research and Advances

Form management

This paper consists of three interrelated parts. In the first part forms are intoduced as an abstraction and generalization of business paper forms. A set of facilities for the manipulation of forms and their contents is outlined. Forms can be created, stored, found, viewed in different media, mailed, and located by office workers. Data on forms can also be processed in a completely integrated way. The facilities are discussed both abstractly and in relation to a prototype system. In the second part a facility is outlined for the specification and implementation of automatic form procedures. These procedures specify actions on forms which are triggered automatically when certain preconditions are met. The preconditions, actions, and specification method are based on forms. The discussion is centered on our implementation of such a specification framework. Finally, in the third part, techniques for the analysis of office flow are specified. An algorithm is outlined for the categorization of forms into classes depending on the local routing and actions on the forms. In this way, we can obtain the paths that forms take and analyze the system for correctness and loading characteristics.
Research and Advances

The impact of scanners on employment in supermarkets

A brief review is given of the early estimates of the rate at which scanners would be installed in supermarkets and the resulting labor and consumer responses. The actual situation in 1979 is then discussed and detailed labor savings achieved by one supermarket chain are given. A fully scanner-equipped supermarket is estimated to have a 5 percent lower labor requirement than an unautomated store with the same volume. It is projected that 50 percent of the 23,000 large supermarkets will install scanners by 1984 with the remainder doing so by 1988. At full penetration, scanners will reduce total industry employment by approximately 50,000. Few actual layoffs will occur because of the high turnover in the industry. Furthermore, the stores that install scanners may attract customers from nonautomated stores leaving those stores to handle the job losses.
Research and Advances

Programmers use slices when debugging

Computer programmers break apart large programs into smaller coherent pieces. Each of these pieces: functions, subroutines, modules, or abstract datatypes, is usually a contiguous piece of program text. The experiment reported here shows that programmers also routinely break programs into one kind of coherent piece which is not coniguous. When debugging unfamiliar programs programmers use program pieces called slices which are sets of statements related by their flow of data. The statements in a slice are not necessarily textually contiguous, but may be scattered through a program.
Research and Advances

Reducing dictionary size by using a hashing technique

Peterson [3] described a variety of techniques to implement a spelling checker for plain-language documents and discussed the central importance of the structure and size of the dictionary used by such a program. The technique presented here can produce a compact, easily accessed and modified dictionary. This is done by exploiting two characteristics of the spelling checker: the sole use of the dictionary is to determine whether given strings are, or are not, in the dictionary; and a small, but nonzero probability of error is acceptable in many applications. Many other types of programs have similar characteristics and could use this concept equally well.
Research and Advances

Computer rendering of stochastic models

A recurrent problem in generating realistic pictures by computers is to represent natural irregular objects and phenomena without undue time or space overhead. We develop a new and powerful solution to this computer graphics problem by modeling objects as sample paths of stochastic processes. Of particular interest are those stochastic processes which previously have been found to be useful models of the natural phenomena to be represented. One such model applicable to the representation of terrains, known as “fractional Brownian motion,” has been developed by Mandelbrot. The value of a new approach to object modeling in computer graphics depends largely on the efficiency of the techniques used to implement the model. We introduce a new algorithm that computes a realistic, visually satisfactory approximation to fractional Brownian motion in faster time than with exact calculations. A major advantage of this technique is that it allows us to compute the surface to arbitrary levels of details without increasing the database. Thus objects with complex appearances can be displayed from a very small database. The character of the surface can be controlled by merely modifying a few parameters. A similar change allows complex motion to be created inexpensively.
Research and Advances

Estimating and improving the quality of information in a MIS

Most discussions of MIS's assume that the information in the records is error-free although it is recognized that errors exist. These errors occur because of delays in processing times, lengthy correction times, and, overly or insufficiently stringent data edits. In order to enable the user to implement data edits and correction procedures tailored to the degree of accuracy needed, this paper presents functional relationships between three common measures of data quality. The MIS addressed is one where records in a MIS are updated as changes occur to the record, e.g., a manpower planning MIS where the changes may relate to a serviceman's rank or skills. Since each of the updating transactions may contain an error, the transactions are subjected to various screens before the stored records are changed. Some of the transactions including some that are correct, are rejected; these are reviewed manually and corrected as necessary. In the meantime, the record is out of date and in error. Some of the transactions that were not rejected also lead to errors. The result is that at any given time the MIS record may contain errors. For each of several error control mechanisms, we show how to forecast the level of improvement in the accuracy of the MIS record if these options are implemented.
Research and Advances

On an improved algorithm for decentralized extrema finding in circular configurations of processors

This note presents a more efficient algorithm for finding the largest element in a circular list of processors when messages can be passed in either direction. It passes 2N*floor(lg N) + 3N messages in the worst case, compared to Chang and Roberts' N(N + 1)/2 and Hirschberg and Sinclair's 8N + 8*ceiling(N lg N) messages. The technique is a selective elimination of possible processes, which then merely relay future messages between the remaining contenders.
Research and Advances

Contemporary software development environments

There are a wide variety of software development tools and methods currently available or which could be built using current research and technology. These tools and methods can be organized into four software development environments, ranging in complexity from a simple environment containing few automated tools or expensive methods to a complete one including many automated tools and built around a software engineering database. The environments were designed by considering the life-cycle products generated during two classes of software development projects. Relative cost figures for the environments are offered and related issues, such as standardization, effectiveness, and impact, then addressed.
Research and Advances

Analysis of pointer “rotation”

Two high-level pointer operations, rotation and slide, reduce conceptual difficulties when writing pointer programs and increase the reliability of programs. We analyze theoretically as well as empirically why these operations are more convenient and introduce a mechanically checkable notion of the safety of rotations. Several examples show that safety is a good indication of program correctness. Examples of list marking and list copying programs demonstrate the utility of these operations.
Research and Advances

Grapevine: an exercise in distributed computing

Grapevine is a multicomputer system on the Xerox research internet. It provides facilities for the delivery of digital messages such as computer mail; for naming people, machines, and services; for authenticating people and machines; and for locating services on the internet. This paper has two goals: to describe the system itself and to serve as a case study of a real application of distributed computing. Part I describes the set of services provided by Grapevine and how its data and function are divided among computers on the internet. Part II presents in more detail selected aspects of Grapevine that illustrate novel facilities or implementation techniques, or that provide insight into the structure of a distributed system. Part III summarizes the current state of the system and the lesson learned from it so far.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More