ppxscal/embedding_network huggingface dataset:
Fast object-oriented procedure calls: lessons from the Intel 432
Authors: E. F. Gehringer, R. P. Colwell
Venue: ACM SIGARCH Computer Architecture News (1986)

As modular programming grows in importance, the efficiency of procedure calls assumes an ever more critical role in system performance. Meanwhile, software designers are becoming more aware of the benefits of object-oriented programming in structuring large software systems. But object-oriented programming requires a good deal of support, which can best be distributed between the compiler and architectural levels. A major part of this support relates to the execution of procedure calls. Must such support exact an unacceptable performance penalty? By considering the case of the Intel 432, a prominent object-oriented architecture, we argue that it need not. The 432 provided all the facilities needed to support object orientation. Though its procedure call was slow, the reasons were only tenuously related to object orientation. Most of the inefficiency could be removed in future designs by the adoption of a few new mechanisms: stack-based allocation of contexts, a memory-clearing coprocessor, and the use of multiple register sets to hold addressing information. These proposals offer the prospect of an object-oriented procedure call that can, on average, be performed nearly as fast as an ordinary unprotected procedure call.
A note on the height of binary search trees
Authors: Luc Devroye
Venue: Journal of the ACM (JACM) (1986)

Let Hn be the height of a binary search tree with n nodes constructed by standard insertions from a random permutation of 1, &hellip; , n. It is shown that Hn/log n &rarr; c = 4.31107 &hellip; in probability as n &rarr; &infin;, where c is the unique solution of c log((2e)/c) = 1, c &ge; 2. Also, for all p > 0, limn&rarr;&infin;E(Hpn)/ logpn = cp. Finally, it is proved that Sn/log n &rarr; c* = 0.3733 &hellip; , in probability, where c* is defined by c log((2e)/c) = 1, c &le; 1, and Sn is the saturation level of the same tree, that is, the number of full levels in the tree.
Routing through a rectangle
Authors: K. Mehlhorn, F. P. Preparata
Venue: Journal of the ACM (JACM) (1986)

In this paper an O(N log N) algorithm for routing through a rectangle is presented. Consider an n-by-m rectangular grid and a set of N two-terminal nets. A net is a pair of points on the boundary of the rectangle. A layout is a set of edge-disjoint paths, one for each net. Our algorithm constructs a layout, if there is one, in O(N log N) time; this contrasts favorably with the area of the layout that might be as large as N2. The layout constructed can be wired using four layers of interconnect with only O(N) contact cuts. A partial extension to multiterminal nets is also discussed.
The CIRRUS banking network
Authors: David Gifford, Alfred Spector
Venue: Communications of the ACM (1985)

The CIRRUS banking network makes coast-to-coast automatic banking transactions possible. The system will soon be able to handle international currency transactions and point-of-sale transactions in stores.
Evaluating two massively parallel machines
Authors: Karen A. Frenkel
Venue: Communications of the ACM (1986)

Two radically different parallel computers prompt a debate about the best parallel architectures and may mark the commercial viability of parallelism on the supercomputer scale.
Profiles in computing: Brian K. Reid: a graphics tale of a hacker tracker
Authors: Karen A. Frenkel
Venue: Communications of the ACM (1987)

"When the Securities Exchange Commission was created by Franklin Roosevelt, he was trying to fix a lot of problems on Wall Street. There were various Ivan Boesky-type crimes being committed on the stock market, and Roosevelt wanted to create a regulatory agency that would keep it in line. He wanted to hire a sheriff to police Wall Street. What he did was he hired the person who was absolutely, unarguably, the biggest criminal on Wall Street&mdash;the person who was guilty of the most crimes. And he put him in charge of the Securities Exchange Commission, figuring that that person, being the most successful Wall Street bandit, knew all the tricks and could police his friends. And that person did a really good job of cleaning up Wall Street actually, because he did know all the tricks." "In a certain sense, I got my start in the computer business by bending the rules, or not knowing what the rules were. I was extremely good at penetrating everyone's computer security when I was a kid. And, because of my tremendous knowledge in this area, I have frequently been called in to help catch people who break in. . . ."
Distributed algorithms for load balancing in very large homogeneous systems
Authors: S. H. Hosseini, B. E. Litow, M. I. Malkawi, K. Vairavan
Venue: Proceedings of the 1987 Fall Joint Computer Conference on Exploring technology: today and tomorrow (1987)

In order to improve the performance of a system it is necessary to balance the loads among the processors in the system. We propose distributed load balancing algorithms for very large systems with possibly thousands of processors. The proposed algorithms are truly distributed, i.e., there does not exist any central controller to provide control, coordination, or mediation among the processors. Processors, with the use of local knowledge and interaction with their neighbors, maintain global balance in the system. The way processors are paired to exchange their loads will have an impact on the performance of the system. We have shown that an effective pairing of processors is possible with the use of the concepts of edge-coloring and node-coloring from graph theory. The proposed algorithms are truly dynamic and adaptable to instantaneous changes in the system. Their correct operation does not depend on any fixed-threshold level. They provide a fair service to every job regardless of its source of delivery to the system.
Prefetching in realtime database applications
Authors: H. Wedekind, George Zoerntlein
Venue: ACM SIGMOD Record (1986)

In this paper a method is proposed how to achieve response times of main memory database systems without keeping the whole database in main memory. The method was originally developed for real-time systems in manufacturing automation, but it is applicable in environments where canned transactions interact with databases rather than people performing free transactions. The main idea is to preanalyse canned transactions in order to extract knowledge about their local access behaviour. This knowledge is used by the runtime system of the database when the transaction is started. Concepts for modules doing the preanalysis and the runtime tasks are described in detail. Furthermore a database architecture is developed incorporating these new components.
A view of the origins and development of Prolog
Authors: Jacques Cohen
Venue: Communications of the ACM (1988)

Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve.
MELDing data flow and object-oriented programming
Authors: Gail E. Kaiser, David Garlan
Venue: ACM SIGPLAN Notices (1987)

MELD combines concepts from data flow and object-oriented programming languages in a unique approach to tool reusability. MELD provides three units of abstraction &mdash; equations, classes and features &mdash; that together allow sufficient options for granularity and encapsulation to support the implementation of reusable tools and the composition of existing tools in parallel (i.e., interleaved) as well as in series.
A differential compiler for computer animation
Authors: Michel J. Denber, Paul M. Turner
Venue: Proceedings of the 13th annual conference on Computer graphics and interactive techniques (1986)

A program for the real-time display of computer animation on a bit-mapped raster display is presented. The differential compiler performs temporal domain image data compression using frame replenishment coding on successive frames of animation stored in memory as bitmaps and saves only the differences. A small run-time interpreter then retrieves and displays the differences in real-time to create the animated effect. This results in a significant reduction in storage requirements, and allows animation on general purpose computers which would otherwise be too slow or have insufficient memory. Frame creation is both device and method independent. An animation environment supports interactive editing capabilities, reconstructing any arbitrary desired frame for later modification. Frames can be added, modified, or deleted, and the animated sequence can be viewed at any point during the session. The compiler is automatically called as needed; its operation is transparent to the user. The compiler is described in detail, both in terms of data compression and the requirements of interactive animation editing.
Practical data-swapping: the first steps
Authors: Steven P. Reiss
Venue: ACM Transactions on Database Systems (TODS) (1984)

The problem of statistical database confidentiality in releasing microdata is addressed through the use of approximate data-swapping. Here, a portion of the microdata is replaced with a database that has been selected with approximately the same statistics. The result guarantees the confidentiality of the original data, while providing microdata with accurate statistics. Methods for achieving such transformations are considered and analyzed through simulation.
Fractals with turtle graphics: a CS2 programming exercise for introducing recursion
Authors: Ivan B. Liss, Thomas C. McMillan
Venue: ACM SIGCSE Bulletin (1987)

This paper describes a programming exercise developed and used in CS2 classes to help introduce recursive programming. Providing a set of primitives which comprise a graphics system allows the students to focus on top down design and the nature of recursion, rather than on implementation details. The exercise entails drawing approximations of fractals by using the graphics primitives which are provided. The exercise was positively received by the students and provided a basis on which to discuss top down design and the desirability of hiding implementation details.
Line-Drawing Interpretation: Straight Lines and Conic Sections
Authors: Vishvjit S. Nalwa
Venue: IEEE Transactions on Pattern Analysis and Machine Intelligence (1988)

Line drawings of man-made scenes often exhibit instances of straight lines and conic sections, i.e. ellipses, parabolas, and hyperbolas. Constraints imposed on the scene by such instances are investigated, under the assumption of general viewpoint, i.e. the mapping of the viewed surface onto the line drawing is stable under perturbation of the viewpoint within some open set. Both orthographic and perspective projection are considered. The viewed surfaces are assumed to be piecewise C/sup 3/. It is shown that straight lines and conic sections in line drawings are projections of scene edges which are also straight lines and conic sections, respectively. It is also shown that scene events which project onto straight lines or conic sections cannot be combinations of view-point-independent and viewpoint-dependent edges. Further, continuous-surface-normal depth discontinuities which project onto straight lines can be locally described by developable surfaces, and those which project onto conic sections can be locally described by nondevelopable quadric surfaces. Each of these quadric surfaces is determined up to four degrees-of-freedom by its projection.
A note on a paper by M. Mignotte
Authors: Alkiviadis G. Akritas
Venue: ACM SIGSAM Bulletin (1987)

In his paper "An Inequality About Factors of Polynomials" [1] M. Mignotte proved the following sharp inequality about the product of some roots of a polynomial. (This inequality was then used to bound the coefficients of the factors of a polynomial.)
An Implementation of Mixed-Radix Conversion for Residue Number Applications
Authors: N. B. Chakraborti, John S. Soundararajan, A. L. Reddy
Venue: IEEE Transactions on Computers (1986)

A method of residue number system (RNS) conversion to mixed-radix (MR) representation is presented. This method is found to be cost-effective and efficient, particularly for moduli size 4/5 bits. A comparison of conversion times and hardware necessary for RNS conversion to MR digits based on different methods is also presented.
An efficient algorithm to determine the image of a parallelepiped under a linear transformation
Authors: V Visvanathan, L S Milor
Venue: Proceedings of the second annual symposium on Computational geometry (1986)

An efficient algorithm to determine the image of a parallelepiped under a linear transformation is presented. The work was motivated by certain problems in the testing of analog integrated circuits. The method is based on specifying the boundary hyperplanes that define the image polytope and is of polynomial complexity in n (the dimension of the parallelepiped), for a fixed value of the dimension of the range of the linear transformation. The algorithm has been implemented using library routines from LINPACK.
Solution of large, dense symmetric generalized eigenvalue problems using secondary storage
Authors: Roger G. Grimes, Horst D. Simon
Venue: ACM Transactions on Mathematical Software (TOMS) (1988)

This paper describes a new implementation of algorithms for solving large, dense symmetric eigen-problems AX = BX&Lgr;, where the matrices A and B are too large to fit in the central memory of the computer. Here A is assumed to be symmetric, and B symmetric positive definite. A combination of block Cholesky and block Householder transformations are used to reduce the problem to a symmetric banded eigenproblem whose eigenvalues can be computed in central memory. Inverse iteration is applied to the banded matrix to compute selected eigenvectors, which are then transformed back to eigenvectors of the original problem. This method is especially suitable for the solution of large eigenproblems arising in quantum physics, using a vector supercomputer with fast secondary storage device such as the Cray X-MP with SSD. Some numerical results demonstrate the efficiency of the new implementation.
Linear hashing with separators&mdash;a dynamic hashing scheme achieving one-access
Authors: Per-Ake Larson
Venue: ACM Transactions on Database Systems (TODS) (1988)

A new dynamic hashing scheme is presented. Its most outstanding feature is that any record can be retrieved in exactly one disk access. This is achieved by using a small amount of supplemental internal storage that stores enough information to uniquely determine the current location of any record. The amount of internal storage required is small: typically one byte for each page of the file. The necessary address computation, insertion, and expansion algorithms are presented and the performance is studied by means of simulation. The new method is the first practical method offering one-access retrieval for large dynamic files.
A formal protocol conversion method
Authors: K Okumura
Venue: Proceedings of the ACM SIGCOMM conference on Communications architectures protocols (1986)

The need for the protocol conversion has been recognized with the proliferation of heterogeneous networks. From a formal viewpoint, we regard that problem as generating a protocol which satisfies the properties of the conversion. In this paper, we prove that, one can determine whether a converter exists, for some protocol classes, given protocols in the form of communicating finite automata, Moreover, we give a construction method for such a converter for those classes, and derive an upper bound of the computational complexity of the construction algorithm.
Covering a simple orthogonal polygon with a minimum number of orthogonally convex polygons
Authors: R. A. Reckhow, J. Culberson
Venue: Proceedings of the third annual symposium on Computational geometry (1987)

The problem of covering a polygon with convex polygons has proven to be very difficult, even when restricted to the class of orthogonal polygons using orthogonally convex covers. We develop a method of analysis based on dent diagrams for orthogonal polygons, and are able to show that Keil's &Ogr;(n2) algorithm for covering horizontally convex polygons is optimal, but can be improved to &Ogr;(n) for counting the number of polygons required for a minimal cover. We also give an optimal &Ogr;(n2) algorithm for covering another subclass of orthogonal polygons. Finally, we develop a method of signatures which can be used to obtain polynomial time algorithms for an even larger class of orthogonal polygons.
The definition, editing, and contouring of surfaces for the analysis of field problems
Authors: Robert R. Dickinson, Richard H. Bartels
Venue: ACM SIGCHI Bulletin (1986)

This paper reports on an interactive system for manipulating a tensor-product B-spline approximation to field data for applications in which contours are of interest. The features of the system are: an interpolation technique for approximating fields defined from scattered or gridded data by tensor-product B-splines, an interactive display providing control-vertex manipulation of the resulting B-spline approximation, and a contouring algorithm that is designed specifically for B-spline surfaces.
The relationship of MIS steering committees to size of firm and formalization of MIS planning
Authors: William J. Doll, Golamreza Torkzadeh
Venue: Communications of the ACM (1987)

Top-level management and directors of management information systems (MIS) have been urged to oversee information systems (IS) development efforts using MIS steering committees. Although such committees have been shown to assist with planning problems facing the MIS director, little is known about just how such committees relate to the planning process. Drawing on organizational theory literature, a conceptual model is presented that relates firm size and MIS steering committees to four IS planning practices. The results of this survey of 456 MIS directors suggest that use of an MIS steering committee is associated with more formalized and systematic MIS planning. However, some of these relationships are stronger in large firms.
A parallel processor architecture for graphics arithmetic operations
Authors: John G. Torborg
Venue: Proceedings of the 14th annual conference on Computer graphics and interactive techniques (1987)

Interactive 3D graphics applications require significant arithmetic processing to handle complex models, particularly if realistic rendering techniques are used. Current semiconductor technology cannot provide the necessary performance without some form of multi-processing.This paper describes a graphics processor architecture which can be configured with an arbitrary number of identical processors operating in parallel. Each of the parallel processors can be programmed identically as if it were a single processor system, substantially simplifying software development and allowing complex rendering functions to take advantage of the multiple processors. The architecture described is able to achieve extremely high performance while allowing the price/performance of the system to be optimized for a given application.Techniques are described for handling graphics command distribution, sequencing of commands which must be processed in order, parallel processing of graphics primitive picking, and handling inquiry (read-back) commands.
PROUST: Knowledge-Based Program Understanding
Authors: W. L. Johnson, Elliot Soloway
Venue: IEEE Transactions on Software Engineering (1985)

This paper describes a program called PROUST which does on-line analysis and understanding of Pascal written by novice programmers. PROUST takes as input a program and a nonalgorithmic description of the program requirements, and finds the most likely mapping between the requirements and the code. This mapping is in essence a reconstruction of the design and implementation steps that the programmer went through in writing the program. A knowledge base of programming plans and strategies, together with common bugs associated with them, is used in constructing this mapping. Bugs are discovered in the process of relating plans to the code; PROUST can therefore give deep explanations of program bugs by relating the buggy code to its underlying intentions.
FLIC&mdash;a functional language intermediate code
Authors: S. L. Payton Jones
Venue: ACM SIGPLAN Notices (1988)

FLIC is a Functional Language Intermediate Code, intended to provide a common intermediate language between diverse implementations of functional languages, including parallel ones. This paper gives a formal definition of FLIC's syntax and semantics, in the hope that its existence may encourage greater exchange of programs and benchmarks between research groups.
Scheduling Tasks with Resource Requirements in Hard Real-Time Systems
Authors: W. Zhao, K. Ramamritham, J. A. Stankovic
Venue: IEEE Transactions on Software Engineering (1987)

This paper describes a heuristic approach for solving the problem of dynamically scheduling tasks in a real-time system where tasks have deadlines and general resource requirements. The crux of our approach lies in the heuristic function used to select the task to be scheduled next. The heuristic function is composed of three weighted factors. These factors explicitly consider information about real-time constraints of tasks and their utilization of resources. Simulation studies show that the weights for the various factors in the heuristic function have to be fine-tuned in order to obtain a degree of success in the range of 75-88 percent of that obtained via exhaustive search. However, modifying the approach to use limited backtracking improves the degree of success substantially to as high as 99.5 percent. This improvement is observed even when the initial set of weights are not tailored for a particular set of tasks. Simulation studies also show that in most cases the schedule determined by the heuristic algorithm is optimal or close to optimal.
Modular architecture for high performance implementation of FFT algorithm
Authors: K. Sapiecha, R. Jarocki
Venue: ACM SIGARCH Computer Architecture News (1986)

The paper presents two new versions of the FFT algorithm. Based on these versions a new VLSI oriented architecture for implementing of the FFT algorithm is introduced. It consists of a homogenous structure of processing elements. The structure has a performance equal to 1/tB transforms per second, where tB is the time needed for execution of a single butterfly computation.Besides high performance the architecture is modular and makes it possible to design a system which performs the DFT of any size with constant performance and without any extra circuitry. Moreover, the system can provide a built-in self test.
Fast, small, and static combinatorial CMOS circuits
Authors: B. P. Serlet
Venue: Proceedings of the 24th ACM/IEEE Design Automation Conference (1987)

We present ALPS, a new way to generate layout from Boolean equations. We use an original tree-structured representation of arbitrary Boolean expressions, more compact than classic disjunctive form, allowing fast symbolic manipulation and natural mapping onto silicon. This implementation of ALPS produces static CMOS layout using a cascode-switch style. We present measurements done on fabricated circuits. For a large class of functions, particularly semi-regular control logic, VLSI layout generated by ALPS compares favorably in speed and area to PLAS and Standard-Cell designs.
Transportability to other languages: the natural language processing project in the AI program at MCC
Authors: Jonathan Slocum, Carol F. Justus
Venue: ACM Transactions on Information Systems (TOIS) (1985)

We discuss a recently launched, long-term project in natural language processing, the primary concern of which is that natural language applications be transportable among human languages. In particular, we seek to develop system tools and linguistic processing techniques that are themselves language-independent to the maximum extent practical. In this paper we discuss our project goals and outline our intended approach, address some cross-linguistic requirements, and then present some new linguistic data that we feel support our approach.