ppxscal/embedding_network huggingface dataset:
Ray tracing parametric surface patches utilizing numerical techniques and ray coherence
Authors: Kenneth I. Joy, Murthy N. Bhetanabhotla
Venue: ACM SIGGRAPH Computer Graphics (1986)

A new algorithm for ray tracing parametric surface patches is presented. The method uses quasi-Newton iteration to solve for the ray/surface intersection and utilizes ray-to-ray coherence by using numerical information from adjoining rays as initial approximations to the quasi-Newton algorithm. Techniques based upon object space subdivision are used to insure convergence to the correct interesection point. Examples are given of the use of the algorithm in scenes containing B eacute;zier surface patches. Results show that a significant number of ray/surface intersections on these parametric surface patches can be found using very few iterations, giving a significant computational savings.
Gsolve: a faster algorithm for solving systems of algebraic equations
Authors: Manuel Bronstein
Venue: Proceedings of the fifth ACM symposium on Symbolic and algebraic computation (1986)

We apply the elimination property of Gr&ouml;bner bases with respect to pure lexicographic ordering to solve systems of algebraic equations. We suggest reasons for this approach to be faster than the resultant technique, and give examples and timings that show that it is indeed faster, and more correct, than MACSYMA's solve.
A Crash Recovery Scheme for a Memory-Resident Database System
Authors: R B Hagmann
Venue: IEEE Transactions on Computers (1986)

Database systems normally have been designed with the assumption that main memory is too small to hold the entire database. With the decreasing cost and increasing performance of semiconductor memories, future database systems may be constructed that keep most or all of the data for the database in main memory. The challenge in the design of these systems is to provide fast transaction processing, to effectively use multiple processors, and to perform a fast restart after a crash. This correspondence presents a method of performing crash recovery for these systems.
Building a timeline editor from prefab parts: the architecture of an object-oriented application
Authors: L. Nancy Garrett, Karen E. Smith
Venue: ACM SIGPLAN Notices (1986)

This article describes InterVal, a software tool that allows authors to create dynamic timelines. It is one tool in Intermedia, a framework developed at Brown University's institute for Research in Information and Scholarship (IRIS) that allows professors and students to create linked multimedia documents and encourages exploration, connectivity, and visualization of ideas. The system was written using an object-oriented extension to C, MacApp, and a set of underlying building blocks, or functional groups of objects. This paper describes InterVal and discusses the architecture of the InterVal application, focusing on the design of the object-oriented architecture and on the use of appropriate building blocks. Concluding sections evaluate object-oriented programming and outline future work.
Computer crime legislation update
Authors: Thomas C. Richards
Venue: ACM SIGSAC Review (1987)

Thirty-five state plus the Federal Government have various forms of computer crime legislation on the books. These laws plus additional ones which are being added each year attempt to make computer related crime less attractive to individuals and groups who are willing to risk fines and imprisonment.
Procedures as persistent data objects
Authors: Malcolm P. Atkinson, Ronald Morrison
Venue: ACM Transactions on Programming Languages and Systems (TOPLAS) (1985)

A persistent programming environment, together with a language that supports first class procedures, may be used to provide the semantic features of other object modeling languages. In particular, the two concepts may be combined to implement abstract data types, modules, separate compilation, views, and data protection. Furthermore, the ideas may be used in system construction and version control, as demonstrated here.
How to win the respect and admiration of the rest of the DP world
Authors: Kim S. Andreasen, Svend Elkjaer Frandsen, Morten Kromberg
Venue: ACM SIGAPL APL Quote Quad (1987)

At a recent Workshop organized by the APL Group in Denmark, the three of us were given the task of finding ways to improve APLs image in the DP community. This paper is the result of that work. We hereby present a strategy for reducing the clashes between US (APLers) and THEM (those dim-witted DP experts). The conclusion is that the rest of the world does have a right to their own beliefs. What's more, we found that some of the things they say about us are not entirely mad - APLers are quite often more ignorant of the rest of the DP world than they are of us, and we have a responsibility to do something about this. Here, in ten easy steps, is the way to make friends with the DP department and win their respect (and if you are lucky, perhaps even their cooperation). This is an OPERATIONAL plan which should be used in planning the use of APL within an organization. Based on common statements made by those who criticize us, we have found ten areas in which work is required within an organization if APL is to prosper as a valuable tool. One member of the group - Svend Frandsen - has hopes of implementing our plan at ATP, and hopefully, by the time this paper is presented, he will be able to tell us whether it works!
Some observations on retrieval from a large technical document database
Authors: R Marcus
Venue: ACM SIGIR Forum (1986)

The problem of retrieving documents from a large document database is an important problem that has been the subject of some controversy in the recent literature. See [1] and [2]. The basic question has been whether manual indexing is necessary to overcome the weaknesses of full-text retrieval. The problem with full-text retrieval is that in order to narrow down the number of documents selected to a reasonable size, it is necessary to choose a specialized set of keywords. This restrictive search means that relevant documents will often be missed due to misspellings, alternate terms, typing errors, etc.Manual indexing would seem to provide a solution to this problem by allowing a document to be retrieved using a human assigned index term or terms describing its content. Unfortunately, experiments have shown that manual indexing is often subject to the same problems as full-text retrieval due to the variation in index terms chosen by different people for the same document. An even more serious problem for a very large technical domain with many documents is the difficulty in creating and maintaining coherent indexes that can describe the whole domain.This paper will summarize the experience that has been gained from studying document retrieval in the domain of computer software support. The database is accessed by engineers searching to see if a current problem has occurred and been solved in the past. An extensive study of how documents are submitted and retrieved has brought to light some general principles that can improve the performance of the system. These principles which combine manual indexing and full-text retrieval will be discussed in the remainder of this paper.
Teaching computer science through writing
Authors: William J Taffe
Venue: ACM SIGCSE Bulletin (1986)

Student difficulty in expressing computing concepts in clear, concise English has stimulated me to introduce a writing assignment into various Computer Science courses. This article describes the problem, the goals of the assignment, and student improvement and reaction.
Medium term forecasts of half-hourly power demand
Authors: J. E. McGowan, D. J. Parker
Venue: ACM SIGAPL APL Quote Quad (1986)

This paper describes a case study where an important new forecasting methodology was developed and subsequently computerized. The use of APL to handle large amounts of data in a simple manner and the structure of the program's internal filing system will be of particular interest to the APL community.
Words
Authors: H. K. Hodge
Venue: ACM SIGSMALL/PC Notes (1988)

I have expanded my data processing horizons. I have written a word processor program.
Moving structures between Smalltalk images
Authors: Steven R. Vegdahl
Venue: Conference proceedings on Object-oriented programming systems, languages and applications (1986)

There are a number of reasons why a user might want to move data structures between Smalltalk images. Unfortunately, the facilities for doing this in the standard Smalltalk image are inadequate: they do not handle circular structures properly, for example. We have implemented a collection of Smalltalk methods that handles circular structures; in addition, these methods have a number of other advantages over those provided in the standard image. This paper is largely a discussion of the issues that arose during their design, implementation, and use.
How faithfully should the electronic office simulate real one?
Authors: Jeff Johnson
Venue: ACM SIGCHI Bulletin (1987)

The na iuml;ve answer to this question --- "as closely as possible" --- is wrong for several reasons. First, it fails to recognize that user dexterity in manipulating simulated objects on a computer screen is not as high as it is in the physical world. Second, it wrongly subordinates users' goals to the actions that they perform in the physical office to achieve those goals. Third, it often results in unnecessary development effort and poor system performance. Fourth, it limits the functionality of the system to that provided by its physical counterpart. Finally, it presents a user interface that, though familiar, may not be optimal. There is no simple rule for determining the correct level of detail that a Desktop Metaphor system should have. Such a determination requires either a careful analysis of the desired functionality (taking into account pragmatic considerations such as the difficulty of implementation) or considerable experience in designing such systems. Many developers lack such experience and are unwilling to do the necessary analysis, and thus wind up applying the na iuml;ve approach. Some heuristics are presented to help guide designers away from the na iuml;ve approach.
A diagram for object-oriented programs
Authors: Ward Cunningham, Kent Beck
Venue: ACM SIGPLAN Notices (1986)

We introduce a notation for diagramming the message sending dialogue that takes place between objects participating in an object-oriented computation. Our representation takes a global point of view which emphasizes the collaboration between objects implementing the behavior of individuals. We illustrate the diagram's usage with examples drawn from the Smalltalk-80&trade; virtual image. We also describe a mechanism for automatic construction of diagrams from Smalltalk code.
HPS, a new microarchitecture: rationale and introduction
Authors: Y. N. Patt, W. M. Hwu, M. Shebanow
Venue: Proceedings of the 18th annual workshop on Microprogramming (1985)

HPS (High Performance Substrate) is a new microarchitecture targeted for implementing very high performance computing engines. Our model of execution is a restriction on fine granularity data flow. This paper introduces the model, provides the rationale for its selection, and describes the data path and flow of instructions through the microengine.
Implementing user/computer dialogue in COBOL
Authors: Roy Martin Richards
Venue: ACM SIGCSE Bulletin (1987)

For information processing to be effective in today's computer environment, the programming language used must be capable of interaction. This requires that the language be able to handle dialogue between the user and the computer. Since COBOL is currently the predominant language used in business information systems, this article examines the COBOL language as to its capabilities for interaction in terms of five currently popular dialogue styles and shows how each style can be implemented in COBOL programming.
Transforming FORTRAN DO loops to improve performance on vector architectures
Authors: Wayne R. Cowell, Christopher P. Thompson
Venue: ACM Transactions on Mathematical Software (TOMS) (1986)

The performance of programs executing on vector computers is significantly improved when the number of accesses to memory can be reduced. Unrolling Fortran DO loops, followed by substitutions and eliminations in the unrolled code, can reduce the number of loads and stores. In this paper we characterize the unrolling transformation and associated transformations of Fortran DO loops and describe a set of software tools to carry out these transformations. The tools use the machinery available in Toolpack and have been integrated into that environment. We describe the results of applying these tools to a collection of linear algebra subroutines.
Dynamic voting
Authors: Sushil Jajodia, David Mutchler
Venue: ACM SIGMOD Record (1987)

In a voting-based algorithm, a replicated file can be updated in a partition if it contains a majority of copies. In this paper, we propose an extension of this scheme which permits a file to be updated in a partition provided it contains a majority of up-to-date copies. Our scheme not only preserves mutual consistency of the replicated file, but provides improvement in its availability as well. We develop a stochastic model which gives insight into the improvements afforded by our scheme over the voting scheme.
On the use of registers vs. cache to minimize memory traffic
Authors: J. R. Goodman, W. C. Hsu
Venue: ACM SIGARCH Computer Architecture News (1986)

Single-chip computers are becoming increasingly limited by the access constraints to off-chip memory. To achieve high performance, the structure of on-chip memory must be appropriate, and it must be allocated effectively to minimize off-chip communication. We report experiments that demonstrate that on-chip memory can be effective for local variable accesses. For best use of the limited on-chip area, we suggest organizing memory as registers and argue that an effective register spilling scheme is required. We introduce a heuristic algorithm for register spilling within basic blocks and demonstrate that trace optimization techniques can extend the use of the algorithm to global allocation. Through trace simulation, we show that the use of registers can be more effective in reducing the bus traffic than cache memory of the same size.
Limitations of Ada for real-time scheduling
Authors: Dennis Cornhilll, Lui Sha, John P. Lehoczky
Venue: ACM SIGAda Ada Letters (1987)

The goal in real-time scheduling is to satisfy the timing requirements of application jobs which often have hard deadlines. There are two aspects to Ada's scheduling policies which are detrimental to achieving this goal. First, Ada's constraints on the language's implementation limit the definition of priority and the task scheduling algorithm to preclude the use of the best algorithms for scheduling jobs with hard deadlines. Second, information about task priority is not used when selecting a task from an entry queue or when choosing among branches of a selective wait statement. Instead, FIFO and arbitrary disciplines are used, respectively, which can unnecessarily lead to missed deadlines, even for very low levels of processor utilization. We suggest some areas for change to make the language more suitable for building real-time systems.
Using our resources to improve publications
Authors: Pam Claspell, Kathy Sawyer
Venue: Proceedings of the 15th annual ACM SIGUCCS conference on User Services (1987)

&ldquo;We do it that way because we've ALWAYS done it that way&hellip;&rdquo; Due to the rapid advances in computer technology, many of us in Academic Computing are finding ourselves in the position of looking for ways to use this technology to improve those publications that we produce for general distribution. There are new concepts, new software packages and hardware that can now be utilized. One can't help but feel the excitement in our new-found ability to design, format, and produce a professional looking publication without depending on a professional printer. Through the use of a word processing package, a desktop publisher and a laser printer, a whole new world has opened up to us. Academic Computing publications at Ball State University include a quarterly newsletter and mini-course schedule. For the last several years, there has basically been one person in charge of these publications. Publishing the newsletter consisted of writing articles, collecting articles from other staff members, editing all articles, getting them formatted and printed by the secretary, cutting and pasting into newsletter form, and finally, sending the finished copy to the on-campus print shop. The mini-course schedule was produced in this same manner. We restructured our publication method to increase staff involvement and also, we made what seemed like almost a quantum leap to desktop publishing, computer graphics and staff production, making most of these changes between issues. Our original goals were to minimize cutting and pasting, to involve more staff and to produce a professional set of publications which would be more readable and helpful to the individual user. In so doing, we had to learn a lot of new things very quickly: new software, new hardware and&mdash;just as important&mdash;new ideas. One outcome was the many favorable comments we received from the academic community on the revised format of our mini-course schedule. We feel that our presentation is to show that it is possible to make a dramatic change in production methods, given the right attitudes of acceptance, and willingness to utilize new resources: computer, personal, and personnel. We had to overcome more than just technical changes&mdash;the greater challenge was in forming these concepts and new ideas.
Initializing generalized feedback shift register pseudorandom number generators
Authors: Bruce Jay Collings, G. Barry Hembree
Venue: Journal of the ACM (JACM) (1986)

The generalized feedback shift register pseudorandom number generators proposed by Lewis and Payne provide a very attractive method of random number generation. Unfortunately, the published initialization procedure can be extremely time consuming. This paper considers an alternative method of initialization based on a natural polynomial representation for the terms of a feedback shift register sequence that results in substantial improvements in the initialization process.
The P2 algorithm for dynamic calculation of quantiles and histograms without storing observations
Authors: Raj Jain, Imrich Chlamtac
Venue: Communications of the ACM (1985)

A heuristic algorithm is proposed for dynamic calculation of the median and other quantiles. The estimates are produced dynamically as the observations are generated. The observations are not stored; therefore, the algorithm has a very small and fixed storage requirement regardless of the number of observations. This makes it ideal for implementing in a quantile chip that can be used in industrial controllers and recorders. The algorithm is further extended to histogram plotting. The accuracy of the algorithm is analyzed.
Animated graphical interfaces using temporal constraints
Authors: R. A. Duisberg
Venue: ACM SIGCHI Bulletin (1986)

Algorithm animation has an acknowledged and growing role in computer aided algorithm design, as well as in documentation and technology transfer, since the medium of interactive graphics is a broader, richer channel than text by which to communicate information. Since an animation constitutes the interface between a user and an algorithm, a kit that facilitates the construction of such has all the basic elements of a User Interface Management System. Constraint languages are useful in constructing such an interface construction kit, whereby consistency is maintained among the elements of a structure and among those of a view of that structure presented to the user. But constraints specify only static state in current implementations. To specify the evolution of structures and views by discrete time increments, as in animation, requires a extension to current constraint languages to allow expression of specifications of temporal behavior.
A Way to Build Efficient Carry-Skip Adders
Authors: A. Guyot, B. Hochet, J.-M. Muller
Venue: IEEE Transactions on Computers (1987)

In this paper, we present a way to obtain efficient carry-skip adders, built with blocks of different sizes in VLSI technologies. We give some results about two-level carry-skip adders. We reduce our optimization problem to a geometrical problem, solved by means of an algorithm easily implemented on a microcomputer. Then we present an example of the realization of such an adder.
A practical approach to developing real-time Ada programs for embedded systems
Authors: L. R. Collingbourne
Venue: ACM SIGAda Ada Letters (1987)

An important aspect of the development of real-time Ada programs is the interaction of the program with the real-target architecture. Many development systems run out of support once the object code has been generated. Developers are often left to find their own way when it comes to getting programs to work on the real-time embedded system. This paper describes a practical approach to developing real-time systems based on online support for building, loading and debugging Ada programs on real targets. The author has been involved in the development of a toolset which enables developers to load programs into the non-homogeneous target memories, and then run them at full speed under interactive control. Breakpoints, monitoring, profiling, and the display and modification of variables may all be achieved using symbolic references. The present toolset design has been extended to a full multiprocessor implementation which is currently under development.
An object-oriented architecture for intelligent tutoring systems
Authors: Jeffrey Bonar, Robert Cunningham, Jamie Schultz
Venue: ACM SIGPLAN Notices (1986)

We describe an object-oriented architecture for intelligent tutoring systems. The architecture is oriented around objects that represent the various knowledge elements that are to be taught by the tutor. Each of these knowledge elements, called bites, inherits both a knowledge organization describing the kind of knowledge represented and tutoring components that provide the functionality to accomplish standard tutoring tasks like diagnosis, student modeling, and task selection. We illustrate the approach with several tutors implemented in our lab.
A Fortran 77 interpreter for mutation analysis
Authors: A. J. Offutt,  VI, K. N. King
Venue: ACM SIGPLAN Notices (1987)

Mutation analysis is a powerful technique for testing software systems. In the Mothra project, conducted at Georgia Tech's Software Engineering Research Center, mutation analysis is used as a basis for building an integrated software testing environment. Mutation analysis requires the execution of many slightly differing versions of the same program to evaluate the quality of the data used to test the program. In the current version of the Mothra system, a program to be tested is translated to intermediate code, where it and its mutated versions are executed by an interpreter.In this paper, we discuss some of the unique requirements of an interpreter used in a mutation-based testing environment. We then describe how these requirements affected the design and implementation of the Fortran 77 version of the Mothra interpreter. Other topics covered include the architecture of the interpreter and many of the design elements that it incorporates. We also describe the intermediate language used by Mothra and the features of the interpreter that are needed for software testing.
Programmed computing at the Universities of Cambridge and Illinois in the early fifties
Authors: D. J. Wheeler
Venue: Proceedings of the ACM conference on History of scientific and numeric computation (1987)

The development of methods of using computers for calculations in the early fifties at Cambridge and Illinois Universities. They are the recollections of a participant.