ppxscal/embedding_network huggingface dataset:
Design of a distributed object manager for the Smalltalk-80 system
Authors: Dominique Decouchant
Venue: Conference proceedings on Object-oriented programming systems, languages and applications (1986)

This paper describes the design of a distributed object manager which allows several Smalltalk-80 systems to share objects over a local-area network. This object manager is based on the following principles: location transparency and uniform object naming, unique object representation and use of symbolic links for remote access, possibility of object migration and distributed garbage collection. A version of the object manager has been implemented and is currently being integrated on a two nodes configuration.
Flight Simulators for Under $100000
Authors: Michael J. Zyda, Robert B. McGhee, Ron S. Ross, Douglas B. Smith, Dale G. Streyle
Venue: IEEE Computer Graphics and Applications (1988)

To demonstrate the feasibility and practicability of designing and building low-cost flight simulators, a prototype system was developed to model the performance of a new US Army remotely piloted missile system. The flight simulator displays a dynamic, three-dimensional, out-the-window view of the terrain in real time while responding to operator input from the command and control system. A description is given of the hardware, software, and database implementations. The system capabilities and limitations are examined. The total development cost is an order of magnitude less than that of the sophisticated systems currently in use.
Once more, with meaning
Authors: Scott Luebking
Venue: ACM SIGCHI Bulletin (1988)

Many programmers would not approve of a programming statement like:float search_table[10]because using an explicit constant; for example, "10", can create trouble. One common problem occurs when a programmer changes the size of the table in the declaration, but forgets to change terminating values for loops searching the table. As a result, an inconsistency has been introduced into the program. To avoid these inconsistencies, many programmers prefer a statement like:float search_table [MAX_BOOKS]where the size of the table is specified by a symbolic constant. To change the size, only the value assigned to the symbolic constant is changed, but no inconsistency is introduced into the program. In addition, a symbol has more meaning than just a constant; for example,"10" versus MAX_BOOKS.
An experiment in technology transfer: PAISLey specification of requirements for an undersea lightwave cable system
Authors: E.F. Berliner, P. Zave
Venue: Proceedings of the 9th international conference on Software Engineering (1987)

From May to October 1985 members of the Undersea Systems Laboratory and the Computer Technology Research Laboratory of AT T Bell Laboratories worked together to apply the executable specification language PAISLey to requirements for the &ldquo;SL&rdquo; communications system. This paper describes our experiences and answers three questions based on the results of the experiment: Can SL requirements be specified formally in PAISLey? Can members of the SL project learn to read and write specifications in PAISLey? How would the use of PAISLey affect the productivity of the software-development team and the quality of the resulting software?
The complexity of searching a graph
Authors: N. Megiddo, S. L. Hakimi, M. R. Garey, D. S. Johnson, C. H. Papadimitriou
Venue: Journal of the ACM (JACM) (1988)

T. Parsons originally proposed and studied the following pursuit-evasion problem on graphs: Members of a team of searchers traverse the edges of a graph G in pursuit of a fugitive, who moves along the edges of the graph with complete knowledge of the locations of the pursuers. What is the smallest number s(G) of searchers that will suffice for guaranteeing capture of the fugitive? It is shown that determining whether s(G) &le; K, for a given integer K, is NP-complete for general graphs but can be solved in linear time for trees. We also provide a structural characterization of those graphs G with s(G) &le; K for K = 1, 2, 3.
A relational information resource dictionary system
Authors: Daniel R Dolk, Robert A. Kirsch,  II
Venue: Communications of the ACM (1987)

A relational implementation of IRDS using SQL demonstrates how the flexibility of the relational environment enhances the extensibility of the IRDS while at the same time providing more powerful dictionary capabilities than are typically found in relational systems.
CommonLoops: merging Lisp and object-oriented programming
Authors: Daniel G. Bobrow, Kenneth Kahn, Gregor Kiczales, Larry Masinter, Mark Stefik, Frank Zdybel
Venue: ACM SIGPLAN Notices (1986)

CommonLoops blends object-oriented programming smoothly and tightly with the procedure-oriented design of Lisp. Functions and methods are combined in a more general abstraction. Message passing is invoked via normal Lisp function call. Methods are viewed as partial descriptions of procedures. Lisp data types are integrated with object classes. With these integrations, it is easy to incrementally move a program between the procedure and object-oriented styles.One of the most important properties of CommonLoops is its extensive use of meta-objects. We discuss three kinds of meta-objects: objects for classes, objects for methods, and objects for discriminators. We argue that these meta-objects make practical both efficient implementation and experimentation with new ideas for object-oriented programming.CommonLoops' small kernel is powerful enough to implement the major object-oriented systems in use today.
DITROFF/FFORTID, an adaptation of the UNIX/DITROFF for formatting bidirectional text
Authors: Cary Buchman, Daniel M. Berry, Jakob Gonczarowski
Venue: ACM Transactions on Information Systems (TOIS) (1985)

DITROFF/FFORTID, a collection of pre- and postprocessors for the UNIX DITROFF (Device Independent Typesetter RunOFF) is described. DITROFF/FFORTID permits formatting of text involving a mixture of languages written from left to right and from right to left, such as English and Hebrew. The programs are table driven or macro-generated to permit them to be used for any languages written from left to right and from right to left so long as fonts with the proper character sets can be mounted on a typesetting device supported by DITROFF. The preprocessors are set up to permit phonetic, unidirectional input of all of the alphabets needed using only the two alphabets (each case counts as an alphabet) available on the input device. These macro-generated preprocessors can be adjusted to the user's pronunciation, the language's rules about a letter's form, depending on its position in the word, and the language of the user's input keyboard. The postprocessor is set up to properly change direction of formatting when the text switches to a language written in a different direction. The collection of programs is also designed to allow use of any of DITROFF's preprocessors, such as PIC, EQN, TBL, and the various device drivers.
The Trillium user interface design environment
Authors: D. A. Henderson,  Jr.
Venue: ACM SIGCHI Bulletin (1986)

Trillium is a computer-based environment for simulating and experimenting with interfaces for simple machines. For the past four years it has been use by Xerox designers for fast prototyping and testing of interfaces for copiers and printers. This paper defines the class of &ldquo;functioning frame&rdquo; interfaces which Trillium is used to design, discusses the major concerns that have driven the design of Trillium, and describes the Trillium mechanisms chosen to satisfy them.
Manhattanville College expert academic advisor--preliminary report
Authors: Edward N. Schwartz
Venue: Issue 103 (Jan., 1988) (1988)

In this paper I summarize the experiences of four novice knowledge engineers in the development of an expert academic advising system. We discuss the ideas and techniques behind the system and some of the methods developed and used in implementing the system using a frame-based expert systems shell.
Coherency for multiprocessor virtual address caches
Authors: James R. Goodman
Venue: ACM SIGARCH Computer Architecture News (1987)

A multiprocessor cache memory system is described that supplies data to the processor based on virtual addresses, but maintains consistency in the main memory, both across caches and across virtual address spaces. Pages in the same or different address spaces may be mapped to share a single physical page. The same hardware is used for maintaining consistency both among caches and among virtual addresses. Three different notions of a cache "block" are defined: (1) the unit for transferring data to/from main storage, (2) the unit over which tag information is maintained, and (3) the unit over which consistency is maintained. The relation among these block sizes is explored, and it is shown that they can be optimized independently. It is shown that the use of large address blocks results in low overhead for the virtual address cache.
The Trellis programming environment
Authors: Patrick D. O'Brien, Daniel C. Halbert, Michael F. Kilian
Venue: ACM SIGPLAN Notices (1987)

The Trellis programming environment supports programming in Trellis/Owl, an object-based language with multiple inheritance and compile-time type-checking. Trellis is composed of a number of integrated tools that share a common programming environment database. It is a highly interactive, easy-to-use programming environment, providing various programming aids, incremental compilation, and good debugging support. Trellis is both integrated and open-ended. Trellis was specifically designed to support the object-oriented programming methodology. Thus it provides tools to manage the use of types and inheritance. Trellis takes advantage of the strong-typing features of the Trellis/Owl language to provide more support for the programmer by keeping track of cross-references and inconsistencies in code.
A dynamic programming approach to the test point insertion problem
Authors: B. Krishnamurthy
Venue: Proceedings of the 24th ACM/IEEE Design Automation Conference (1987)

The test point insertion problem is that of selecting t nodes in a combinational network as candidates for inserting observable test points, so as to minimize the number of test vectors needed to detect all single stuck-at faults in the network. In this paper we describe a dynamic programming approach to selecting the test points and provide an algorithm that inserts the test points optimally for fanout-free networks. We further extend this algorithm to general combinational networks with reconvergent fanout. We also analyze the time complexity of the algorithm and show that it runs in &Ogr;(n-t) time, where n is the size of the network and t is the number of test points to be inserted. As a side result we show that we can compute minimal test sets for a restricted class of networks that includes fanout. This extends previous results which were limited to fanout-free networks.
Compiler construction using modern tools
Authors: Robert E. Noonan
Venue: ACM SIGCSE Bulletin (1986)

In this paper we discuss our experiences using a translator writing system in the compiler construction course. We have found that such a system provides a great deal of flexibility to the instructor. Students can easily construct a complete compiler including code generation for a small language. We believe our tools and experiences are transferable to other translator writing systems.
Office automation: end user impact
Authors: Douglas Vogel, James C Wetherbe
Venue: Proceedings of the twenty-first annual conference on Computer personnel research (1985)

Office automation may be the ultimate example of end-user computing in action. It represents the usage of information systems by the principal users of the system's outputs or by their immediate support staffs. The purpose of this paper is to present a model of office automation with a focus on its impact on the end-user. Consideration is given to both macro and micro organizational perspectives. Results of a validation process of the model with focus group of experienced end-users representing twelve large organizations are presented and discussed. Organizational and societal implications are drawn.
A population analysis for hierarchical data structures
Authors: Randal C. Nelson, Hanan Samet
Venue: ACM SIGMOD Record (1987)

A new method termed population analysis is presented for approximating the distribution of node occupancies in hierarchical data structures which store a variable number of geometric data items per node. The basic idea is to describe a dynamic data structure as a set of populations which are permitted to transform into one another according to certain rules. The transformation rules are used to obtain a set of equations describing a population distribution which is stable under insertion of additional information into the structure. These equations can then be solved, either analytically or numerically, to obtain the population distribution. Hierarchical data structures are modeled by letting each population represent the nodes of a given occupancy. A detailed analysis of quadtree data structures for storing point data is presented, and the results are compared to experimental data. Two phenomena referred to as aging and phasing are defined and shown to account for the differences between the experimental results and those predicted by the model. The population technique is compared with statistical methods of analyzing similar data structures.
Assessing the quality of programs: a topic for the CS2 course
Authors: Dean Sanders, Janet Hartman
Venue: Proceedings of the eighteenth SIGCSE technical symposium on Computer science education (1987)

Measuring the quality of programs is commonly discussed at widespread intervals in the computer science curriculum. Because discussions of quality are fragmented, the students do not develop a set of criteria by which they can evaluate the quality of a program. Since an assessment of quality must depend on the specifications that are set forth before the programming begins, it is important for students to be aware of the various criteria by which a program can be evaluated. Various measures of quality can be introduced in the CS2 course. These include evaluating the utilization of resources by a program, evaluating the correctness of the program and examining various human factors associated with program development and maintenance. Students should be provided with activities which allow them to explore and practice using thecriteria for evaluation in each context. Ultimately the development of skills in evaluating program quality will make students more effective programmers.
Overview of concert multilisp: a multiprocessor symbolic computing system
Authors: Robert H. Halstead,  Jr.
Venue: ACM SIGARCH Computer Architecture News (1987)

Multilisp is a parallel programming language derived from the Scheme dialect of Lisp by addition of the future construct. Multilisp has been implemented on Concert, a shared-memory muitiprocessor that uses a novel RingBus interconnection. Concert currently has 28 MC68000 processors, with a design goal of 32 processors. Several application programs have been developed and measured using Concert Multilisp. Experience with these programs has contributed to tuning the Multilisp language design and will ultimately contribute to the design of a parallel architecture streamlined for high performance on Multilisp programs.
An introduction to Trellis/Owl
Authors: Craig Schaffert, Topher Cooper, Bruce Bullis, Mike Kilian, Carrie Wilpolt
Venue: ACM SIGPLAN Notices (1986)

Trellis/Owl is an object-based language incorporating a type hierarchy with multiple inheritance and compile-time type checking. The combination of features in the language facilitates the design, implementation, and evolution of large computer programs. This paper provides an brief introduction to the Trellis/Owl language. It discusses the basic elements of the language, objects, and shows how these are specified and implemented using types, operations, and components. The notion of a type hierarchy is introduced by a discussion of subtyping and inheritance. Other elements of the Trellis/Owl language such as type generators, iterators, and exceptions are briefly presented.
Learning by doing with simulated intelligent help
Authors: John Carroll, Amy Aaronson
Venue: Communications of the ACM (1988)

Intelligent advisory interfaces will afford new approaches to help and training problems, however little is known about the usability of such facilities. This recent study indicates that although intelligent help can support users, there are also specific potential problems.
Affix grammar driven code generation
Authors: Mahadevan Ganapathi, Charles N. Fischer
Venue: ACM Transactions on Programming Languages and Systems (TOPLAS) (1985)

Affix grammars are used to describe the instruction set of a target architecture for purposes of compiler code generation. A code generator is obtained automatically for a compiler using attributed parsing techniques. A compiler built on this model can automatically perform most popular machine-dependent optimizations, including peephole optimizations. Code generators based on this model demonstrate retargetability for the VAX1-11, iAPX2-86, Z-80003, PDP4-11, MC-68000, NS32032, FOM, and IBM-370 architectures.
Synchronized Disk Interleaving
Authors: M Y Kim
Venue: IEEE Transactions on Computers (1986)

A group of disks may be interleaved to speed up data transfers in a manner analogous to the speedup achieved by main memory interleaving. Conventional disks may be used for interleaving by spreading data across disks and by treating multiple disks as if they were a single one. Furthermore, the rotation of the interleaved disks may be synchronized to simplify control and also to optimize performance. In addition, check- sums may be placed on separate check-sum disks in order to improve reliability. In this paper, we study synchronized disk interleaving as a high-performance mass storage system architecture. The advantages and limitations of the proposed disk interleaving scheme are analyzed using the M/G/1 queueing model and compared to the conventional disk access mechanism.
Ray tracing generalized cylinders
Authors: Willem F. Bronsvoort, Fopke Klok
Venue: ACM Transactions on Graphics (TOG) (1985)

An algorithm is presented for ray tracing generalized cylinders, that is, objects defined by sweeping a two-dimensional contour along a three-dimensional trajectory. The contour can be any 'well-behaved' curve in the sense that it is continuous, and that the points where the tangent is horizontal or vertical can be determined, the trajectory can be any spline curve. First a definition is given of generalized cylinders in terms of the Frenet frame of the trajectory. Then the main problem in ray tracing these objects, the computation of the intersection points with a ray, is reduced to the problem of intersecting two two-dimensional curves. This problem is solved by a subdivision algorithm. The three-dimensional normal at the intersection point closest to the eye point, necessary to perform shading, is obtained by transforming the two-dimensional normal at the corresponding intersection point of the two two-dimensional curves. In this way it is possible to obtain highly realistic images for a very broad class of objects.
Queueing Analysis of Fault-Tolerant Computer Systems
Authors: V. F. Nicola, V. G. Kulkarni, K. S. Trivedi
Venue: IEEE Transactions on Software Engineering (1987)

In this paper we consider the queueing analysis of a fault-tolerant computer system. The failure/repair behavior of the server is modeled by an irreducible continuous-time Markov chain. Jobs arrive in a Poisson fashion to the system and are serviced according to FCFS discipline. A failure may cause the loss of the work already done on the job in service, if any; in this case the interrupted job is repeated as soon as the server is ready to deliver service. In addition to the delays due to failures and repairs, jobs suffer delays due to queueing. We present an exact queueing analysig of the system and study the steady-state behavior of the number of jobs in the system. As a numerical example, we consider a system with two processors subject to failures and repairs.
Square-Rooting Algorithms for High-Speed Digital Circuits
Authors: Stanislaw Majerski
Venue: IEEE Transactions on Computers (1985)

Two binary algorithms for the square rooting of a number or of a sum of two numbers are presented. They are based on the classical nonrestoring method. The main difference lies in the replacement of subtractions and additions by a parallel reduction f three summands, which may be positive and negative, to two summands to eliminate the carry propagation. Two of three summands form the successive partial remainder. Their most significant bit triples, sometimes together with a sign bit of the earlier partial remainder, are used to determine digits -1,0, +1 of a redundant square-root notation. These digits are transformed during the square-rooting process into the conventional notation square-root bits which are next used in further square-rooting steps to form the third reduced summands.
The IBM System/370 Vector Architecture: Design Considerations
Authors: Andris Padegs, Brian B. Moore, Ronald M. Smith, Werner Buchholz
Venue: IEEE Transactions on Computers (1988)

The considerations that shaped the architecture of the IBM System/370 Vector Facility are reviewed. The architectural requirements, decisions, and innovations are summarized, and the rationale for the choices that were made is given. Issues related to vector function, performance, compatibility, migration, and integration with the rest of the System/370 architecture are covered.
Multilanguage Parallel Programming of Heterogeneous Machines
Authors: Roberto Bisiani, Alessandro Forin
Venue: IEEE Transactions on Computers (1988)

A system called Agora was designed and implemented that supports the development of multilanguage parallel applications for heterogeneous machines. Agora hinges on two ideas: the first one is that shared memory can be a suitable abstraction to program concurrent, multilanguage modules running on heterogeneous machines. The second idea is that a shared memory abstraction can be efficiently supported across different computer architectures that are not connected by a physical shared memory, e.g., local area network workstations or ensemble machines. Agora has been in use for more than a year. The authors describe the Agora shared memory and its software implementation on both tightly and loosely coupled architectures. Measurements of the current implementation are also included.
Computer anxiety in management: myth or reality?
Authors: Geoffry S. Howard, Robert D. Smith
Venue: Communications of the ACM (1986)

Although many informal surveys in the business press have contended that computer anxiety has a significant adverse impact on managers' willingness to use microcomputers, the problem is neither as extensive nor as severe as once believed.