Advertisement

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

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

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

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.
Research and Advances

A comparison of two network-based file servers

This paper compares two working network-based file servers, the Xerox Distributed File System (XDFS) implemented at the Xerox Palo Alto Research Center, and the Cambridge File Server (CFS) implemented at the Cambridge University Computer Laboratory. Both servers support concurrent random access to files using atomic transactions, both are connected to local area networks, and both have been in service long enough to enable us to draw lessons from them for future file servers. We compare the servers in terms of design goals, implementation issues, performance, and their relative successes and failures, and discuss what we would do differently next time.
Research and Advances

A generalized user interface for applications programs

A general method for using disk files (instead of a more conventional parameter-passing mechanism) to transfer control information from a user interface to a set of related applications programs is described. This technique effectively moves much of the user interface, including command decoding and limited parameter checking, from the applications programs to a table-driven executive.
Research and Advances

An experimental study of the human/computer interface

An exploratory study was conducted to analyze whether interface and user characteristics affect decision effectiveness and subject behavior in an interactive human/computer problem-solving environment. The dependent variables were performance and the use of the systems options. Two of the independent variables examined, experience and cognitive style, were user characteristics; the other three, dialogue, command, and default types, were interface characteristics. Results indicate that both user and interface characteristics influence the use of the system options and the request for information in the problem-solving task.
Research and Advances

A history and evaluation of System R

System R, an experimental database system, was constructed to demonstrate that the usability advantages of the relational data model can be realized in a system with the complete function and high performance required for everyday production use. This paper describes the three principal phases of the System R project and discusses some of the lessons learned from System R about the design of relational systems and database systems in general.

Research and Advances

A user-friendly algorithm

The interface between a person and a computer can be looked at from either side. Programmers tend to view it from the inside; they consider it their job to defend the machine against errors made by its users. From the outside, the user sees his/her problems as paramount. He/she is often at odds with this complex, inflexible, albeit powerful tool. The needs of both people and machines can be reconciled; users will respond more efficiently and intelligently if they receive meaningful feedback. A “user-friendly” algorithm that covers a wide range of interactive environments and is typical of most operating systems and many application programs is presented.
Research and Advances

The selection of optimal tab settings

A new generation of computer terminals allows tab settings to be selected and set by the computer. This feature can be used to reduce the number of characters that are needed to represent a document for transmission and printing. In this note, an algorithm is given for selecting the optimal set of tab stops for minimizing the number of characters transmitted. An implementation of the algorithm has reduced the number of characters transmitted by from 7 to 30 percent, but requires a prepass through the document to compute a matrix used in determining the optimal set of tab stops. The use of fixed tab stops, as a heuristic alternative, can achieve about 80 percent of optimal with no prepass.
Research and Advances

Detection of logical errors in decision table programs

In this paper an algorithm to detect logical errors in a limited-entry decision table and in loop-free programs with embedded decision tables is developed. All the conditions in the decision tables are assumed to be inequalities or equalities relating linear expressions. It is also assumed that actions in a decision table are linear in variables which occur in the condition stub of the decision table (or tables) to which control is transferred from the table. The algorithm is based on determining whether a set of linear inequalities has or does not have a solution. The algorithm described in the paper is implemented in Fortran IV.
Research and Advances

Optimizing decision trees through heuristically guided search

Optimal decision table conversion has been tackled in the literature using two approaches, dynamic programming and branch-and-bound. The former technique is quite effective, but its time and space requirements are independent of how “easy” the given table is. Furthermore, it cannot be used to produce good, quasioptimal solutions. The branch-and-bound technique uses a good heuristic to direct the search, but is cluttered up by an enormous search space, since the number of solutions increases with the number of test variables according to a double exponential. In this paper we suggest a heuristically guided top-down search algorithm which, like dynamic programming, recognizes identical subproblems but which can be used to find both optimal and quasioptimal solutions. The heuristic search method introduced in this paper combines the positive aspects of the above two techniques. Compressed tables with a large number of variables can be handled without deriving expanded tables first.
Research and Advances

A simply extended and modified batch environment graphical system (SEMBEGS)

SEMBEGS is a complete batch environment graphical system containing components for handling graphical data files, for displaying the contents of these files on a variety of graphical hardware, and for performing graphical batch input operations. SEMBEGS is easy to extend and modify to meet the growing needs of a large batch environment, and is even extendable to a fully interactive system. The paper presents the conceptual view of graphics leading to the design of SEMBEGS and outlines the major components of the system. The design of SEMBEGS is founded upon the basic assumption that the true aim of computer graphics is to describe graphical entities, rather than, as commonly held, to provide graphical input and output functional capabilities. SEMBEGS is built around a Basic Graphical Data Management System (BAGDAMS) which provides a common means of communicating the descriptions of graphical entities between the various components of SEMBEGS. BAGDAMS provides facilities for storing, retrieving, and manipulating the descriptions of graphical entities provided by, and received by application programs, graphics packages, and graphical devices.
Research and Advances

Jump searching: a fast sequential search technique

When sequential file structures must be used and binary searching is not feasible, jump searching becomes an appealing alternative. This paper explores variants of the classic jump searching scheme where the optimum jump size is the square root of the number of records. Multiple level and variable size jump strategies are explored, appropriate applications are discussed and performance is evaluated.
Research and Advances

An algorithm using symbolic techniques for the Bel-Petrov classification of gravitational fields

In this note, an algorithm is presented for the symbolic calculation of certain algebraic invariants of the Weyl tensor which permits the determination of the Bel-Petrov types of a gravitational field. This algorithm, although more specialized than that of D'Inverno and Russell-Clark, requires neither the use of a special coordinate system nor the spin coefficient formalism. The algorithm has been implemented in FORMAC and is designed to complete the classification scheme proposed by Petrov in his book. An appendix contains examples illustrating the use of the algorithm.

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