ppxscal/embedding_network huggingface dataset:
Synthesis of ML programs in the system Coq
Authors: Christine Paulin-Mohring, Benjamin Werner
Venue: Journal of Symbolic Computation (1993)

The system Coq (Dowek et al., 1991) is an environment for proof development based on the Calculus of Constructions (Coquand, 1985) (Coquand and Huet, 1985) enhanced with inductive definitions (Coquand and Paulin-Mohring, 1990). From a constructive proof formalized in Coq, one extracts a functional program which can be compiled and executed in ML. This paper describes how to obtain ML programs from proofs in Coq. The methods are illustrated with the example of a propositional tautology checker. We study the specification of the problem, the development of the proof and the extraction of the executable ML program. Part of the example is the development of a normalization function for IF-expressions, whose termination has been studied in several formalisms (Leszczylowski, 1981) (Paulson, 1986) (Dybjer, 1990). We show that the total program using primitive recursive functionals obtained out of a structural proof of termination leads to an (at first) surprisingly efficient algorithm. We explain also how to introduce a fixpoint and get the usual recursive program. Optimizations which are necessary in order to obtain efficient programs from proofs will be explained. We also justify the properties of the final ML program with respect to the initial specification.
Programmable syntax macros
Authors: Daniel Weise, Roger Crew
Venue: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation (1993)

Lisp has shown that a programmable syntax macro system acts as an adjunct to the compiler that gives the programmer important and powerful abstraction facilities not provided by the language. Unlike simple token substitution macros, such as are provided by CPP (the C preprocessor), syntax macros operate on Abstract Syntax Trees (ASTs). Programmable syntax macro systems have not yet been developed for syntactically rich languages such as C because rich concrete syntax requires the manual construction of syntactically valid program fragments, which is a tedious, difficult, and error prone process. Also, using two languages, one for writing the program, and one for writing macros, is another source of complexity. This research solves these problems by having the macro language be a minimal extension of the programming language, by introducing explicit code template operators into the macro language, and by using a type system to guarantee, at macro definition time, that all macros and macro functions only produce syntactically valid program fragments. The code template operators make the language context sensitive, which requires changes to the parser. The parser must perform type analysis in order to parse macro definitions, or to parse user code that invokes macros.
CLAP: an object-oriented programming system for distributed memory parallel machines
Authors: Jocelyn Desbiens, Martin Lavoie, Stéphane Pouzyreff, Pierre Raymond, Tahar Tamazouzt, Michel Toulouse
Venue: ACM SIGPLAN OOPS Messenger (1994)

The Agha and Hewitt Actor model [1,3,4] is a natural extension of the object paradigm as we know it to the field of parallel programming. The model respects the primary principles of object-oriented programming, i.e. abstraction of data and encapsulation, making object-oriented programming a good tool for the programming of parallel computers. We describes one Actor model implementation on a distributed memory parallel machine: the CLAP actor language. We explain why the Actor model can express, on distributed memory parallel machines, the natural parallelism of applications and offer other properties useful for programming this type of machine. We then discuss the implementation, currently in its final phase, of the Actor model on a distributed memory parallel machine.
The complexity of propositional closed world reasoning and circumscription
Authors: Marco Cadoli, Maurizio Lenzerini
Venue: Journal of Computer and System Sciences (1994)

Closed world reasoning is a common nonmonotonic technique that allows for dealing with negative information in knowledge and data bases. Several forms of closed world reasoning have been proposed in the literature, ranging from the closed world assumption, introduced in the context of data bases, to the extended closed world assumption, which is equivalent to circumscription. The aim of this paper is to present a detailed analysis of the computational complexity of the different forms of closed world reasoning for various fragments of propositional logic. Such an analysis allows us to draw a complete picture of the boundary between tractability and intractability of such a form of nonmonotonic reasoning. We also discuss how to use our results in order to characterize the computational complexity of other nonmonotonic reasoning problems, namely nonmonotonic inheritance, diagnosis, and default reasoning.
Differential logic programming
Authors: A. Bossi, M. Bugliesi, M. Gabbrielli, G. Levi, M. C. Meo
Venue: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (1993)

In this paper we define a compositional semantics for a generalized composition operator on logic programs. Static and dynamic inheritance as well as composition by union of clauses can all be obtained by specializing the general operator. The semantics is based on the notion of differential programs, logic programs annotated with declarations that establish the programs' external interfaces.
Extraction of massive instruction level parallelism
Authors: Augustus K. Uht
Venue: ACM SIGARCH Computer Architecture News (1993)

Our goal is to dramatically increase the performance of uniprocessors through the exploitation of instruction level parallelism, i.e. that parallelism which exists amongst the machine instructions of a program. Speculative execution may help a lot, but, it is argued, both branch prediction and eager execution are insufficient to achieve performances in speedup factors in the tens (with respect to sequential execution), with reasonable hardware costs. A new form of code execution, Disjoint Eager Execution (DEE), is proposed which uses less hardware than pure eager execution, and has more performance than pure branch prediction; DEE is a continuum between branch prediction and eager execution. DEE is shown to be optimal, when processing resources are constrained. Branches are predicted in DEE, but the predictions should be made in parallel in order to obtain high performance. This is not allowed, however, by the use of the standard instruction stream model, the dynamic model (the order is as indicated by the contents of the Program Counter). The use of the static instruction stream is proposed instead. The static instruction stream oreder is the same as the order of the code in memory, and is independent of the execution of branches. It allows reduced branch dependencies, as well. It is argued that a new version, Levo, of an old machine model, CONDEL-2, will be able to attain massive Instruction Level Parallelism.
Reconfigurable technology: an innovative solution for parallel discrete event simulation support
Authors: C. Beaumont, P. Boronat, J. Champeau, J.-M Filloque, B. Pottier
Venue: ACM SIGSIM Simulation Digest (1994)

Accelerating discrete event simulation can be achieved by using parallel architectures. The use of dedicated hardware is a possible alternative in some special domains like logic simulation. However, few studies have focused on general cases. This paper presents an innovative solution using a recent hardware technology called FPGA (Field Programmable Gate Array), that enables dynamic synthesis of application specific hardware. Each node of an MIMD parallel machine is tightly coupled to an FPGA ring. This ring allows us to synthesize application specific global operatorsand control or communication circuits and complements the possibilities of the original machine on a wide application spectrum. We present the first results obtained in the simulation field with an eight node prototype.
Investigations in adaptive distributed simulation
Authors: Donald O. Hamnes, Anand Tripathi
Venue: Proceedings of the eighth workshop on Parallel and distributed simulation (1994)

A new adaptive protocol for distributed discrete event simulation is proposed. This protocol spans the continuum of protocols from conservative to optimistic allowing each process in a distributed simulation to adapt to the specific simulation problem at runtime. An actual implementation of the protocol has been tested on a network of workstations for a closed queueing system. The results are very favorable and the algorithm has outperformed a conservative and an optimistic protocol in some cases.
On optimal processor allocation to support pipelined hash joins
Authors: Ming-Ling Lo, Ming-Syan Syan Chen, C. V. Ravishankar, Philip S. Yu
Venue: Proceedings of the 1993 ACM SIGMOD international conference on Management of data (1993)

In this paper, we develop algorithms to achieve optimal processor allocation for pipelined hash joins in a multiprocessor-based database system. A pipeline of hash joins is composed of several stages, each of which is associated with one join operation. The whole pipeline is executed in two phases: (1) the table-building phase, and (2) the tuple-probing phase. We focus on the problem of allocating processors to the stages of a pipeline to minimize the query execution time. We formulate the processor allocation problem as a two-phase mini-max optimization problem, and develop three optimal allocation schemes under three different constraints. The effectiveness of our problem formulation and solution is verified through a detailed tuple-by-tuple simulation of pipelined hash joins. Our solution scheme is general and applicable to any optimal resource allocation problem formulated as a two-phase mini-max problem.
Noise-Tolerant Occam Algorithms and Their Applications to Learning Decision Trees
Authors: Yasubumi Sakakibara
Venue: Machine Learning (1993)

In the distribution-independent model of concept learning of Valiant, Angluin and Laird have introduced a formal model of noise process, called classification noise process, to study how to compensate for randomly introduced errors, or noise, in classifying the example data. In this article, we investigate the problem of designing efficient learning algorithms in the presence of classification noise. First, we develop a technique of building efficient robust learning algorithms, called noise-tolerant Occam algorithms, and show that using them, one can construct a polynomial-time algorithm for learning a class of Boolean functions in the presence of classification noise. Next, as an instance of such problems of learning in the presence of classification noise, we focus on the learning problem of Boolean functions represented by decision trees. We present a noise-tolerant Occam algorithm for k-DL (the class of decision lists with conjunctive clauses of size at most k at each decision introduced by Rivest) and hence conclude that k-DL is polynomially learnable in the presence of classification noise. Further, we extend the noise-tolerant Occam algorithm for k-DL to one for r-DT (the class of decision trees of rank at most r introduced by Ehrenfeucht and Haussler) and conclude that r-DT is polynomially learnable in the presence of classification noise.
A portable random number generator well suited for the rejection method
Authors: W. Hörmann, G. Derflinger
Venue: ACM Transactions on Mathematical Software (TOMS) (1993)

Up to now, all known efficient portable implementations of linear congruential random number generators with modulus 231 &ndash; 1 have worked only with multipliers that are small compared with the modulus. We show that for nonuniform distributions, the rejection method may generate random numbers of bad qualify if combined with a linear congruential generator with small multiplier. A method is described that works for any multiplier smaller than 230. It uses the decomposition of multiplier and seed in high-order and low-order bits to compute the upper and lower half of the product. The sum of the two halfs gives the product of multiplier and seed modulo 221 &ndash; 1. Coded in ANSI-C and FORTRAN77 the method results in a portable implementation of the linear congruential generator that is as fast or faster than other portable methods.
Object design of modularity, reuse and quality (abstract)
Authors: Douglas Bennett
Venue: Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum) (1992)

Object Design for Modularity, Reuse and Quality Douglas Bennett, Design Ways Turning buzzwords like modularity, reusable components, extensibility, testability, and robustness into reality requires more than just a compiler for an object-oriented language, or even an integrated development environment. These properties must be designed into the software product. This tutorial shows how to make design decisions so the product will do what its users want and so the buzzwords actually show up in the product. The tutorial will work through the steps of a design project, documenting user and producer needs, modeling the thing objects, describing behavior with event response models, and, finally, developing an architecture for the product. Part of each step is evaluating the design against the magic words. The result will be a product structure that is probably very different from conventional software architectures, but one that can be measured against the design criteria. This tutorial teaches the explicit design of software. It uses notations from several existing methods. You may use your own notations, if you wish.
Simple word strings as compound keywords: an indexing and ranking method for Japanese texts
Authors: Yasushi Ogawa, Ayako Bessho, Masako Hirose
Venue: Proceedings of the 16th annual international ACM SIGIR conference on Research and development in information retrieval (1993)

This paper describes a new indexing method for Japanese text databases using the simple keyword string, in which a compound word is treated as a string of simple words, which are the smallest units in Japanese grammar which still maintain their meanings. This method allows retrieved texts to be ranked, according to the similarity of their meaning to the query, without using a control vocabulary or thesaurus. This paper also introduces the keyword feature, which describes the syntactic and semantic characteristics of a word, and results in more precise keyword extraction and text retrieval as well as simple dictionary maintenance.
Sniff (abstract): a pragmatic approach to a C++ programming environment
Authors: Walter R. Bischofberger
Venue: ACM SIGPLAN OOPS Messenger (1993)

Sniff is a pragmatic C++ programming environment which has been implemented during the last fifteen months. Sniff is implemented in C++ with the ET++ application framework. It runs on a large number of UNIX workstations under several window management systems such as OSF-Motif, OpenWindows, and Sunview. Sniff is an open environment providing browsing, cross-referencing, design visualization, documentation, and editing support. It delegates compilation and debugging to any C++ compiler and debugger of choice. Sniff has been in internal use at UBS (Union Bank of Switzerland) since August 1991. Since then several developers have applied Sniff in developing non- trivial software systems as well as in evolving Sniff. Public domain distribution off Sniff will commenced in May 1992. The main goal in developing Sniff was to create an efficient portable C++ programming environment which makes it possible to edit and browse large software systems textually and graphically with a high degree of comfort, without wasting huge amounts of RAM or slowing down in an annoying way. A further goal was to achieve applicable results within one person year.
Distributed Computation of Wave Propagation Models Using PVM
Authors: Richard E. Ewing, Robert C. Sharpley, Derek Mitchum, Patrick O'Leary, James S. Sochacki
Venue: IEEE Parallel Distributed Technology: Systems Technology (1994)

The Parallel Virtual Machine(PVM) allows researchers to connect workstations, mini-supercomputers, or specialty machines to form a relatively inexpensive, powerful, parallel computer. Such hardware is frequently abundant at research locations, so PVM incurs little or no hardware costs. PVM is also flexible: it uses existing communication networks (Ethernet or fiber) and remote procedural libraries; it lets programmers use either C or Fortran; and it can emulate several commercial architectures including hypercubes, meshes, and rings. The authors believe that PVM can compete effectively with traditional supercomputers, and they have demonstrated its computational power and cost-effectiveness by simulating the propagation of seismic waves using an isolated Ethernet ring comprising an IBM RS/6000 550 as the host and six RS/6000 320H machines as the nodes.
A methodology for controlling the size of a test suite
Authors: M. Jean Harrold, Rajiv Gupta, Mary Lou Soffa
Venue: ACM Transactions on Software Engineering and Methodology (TOSEM) (1993)

This paper presents a technique to select a representative set of test cases from a test suite that provides the same coverage as the entire test suite. This selection is performed by identifying, and then eliminating, the redundant and obsolete test cases in the test suite. The representative set replaces the original test suite and thus, potentially produces a smaller test suite. The representative set can also be used to identify those test cases that should be rerun to test the program after it has been changed. Our technique is independent of the testing methodology and only requires an association between a testing requirement and the test cases that satisfy the requirement. We illustrate the technique using the data flow testing methodology. The reduction that is possible with our technique is illustrated by experimental results.
Key Lessons in Achieving Widespread Inspection Use
Authors: Robert B. Grady, Tom Van Slack
Venue: IEEE Software (1994)

Hewlett-Packard has distilled its experience in promoting software inspections into a model of how technology adoption occurs and a metric of where it stands. Its managers know when and how to accelerate efforts to adopt inspections and other best practices. Experience has shown that the return on investment in technology adoption efforts can be huge. At HP, inspection technology was adopted across the entire company in four recognizable stages, which are defined as: experimental, initial guidelines, widespread belief and adoption, and standardization. HP's inspections program has progressed through three of these stages. We address several key questions: What characterizes the four stages? What were the most important lessons learned? What situations led to failure or success? And most important, how can we apply what we learned to speed the adoption of other proven practices? The lessons related will give many who are directly or indirectly responsible for software process improvement more confidence that inspections apply to all software-development organizations.
Content-Based Video Indexing and Retrieval
Authors: Stephen W. Smoliar, HongJiang Zhang
Venue: IEEE MultiMedia (1994)

Video management tools and techniques are based on pixels rather than perceived content. Thus, state-of-the-art video editing systems can easily manipulate such things as time codes and image frames, but they cannot "know," for example, what a basketball is. Our research addresses four areas of content-based video management.
Forwarding database overhead for inter-domain routing
Authors: Yakov Rekhter
Venue: ACM SIGCOMM Computer Communication Review (1993)

The network layer of the current Internet is built around the packet switched architecture. As the Internet grows both in size and diversity of services, providing mechanisms to contain the growth of information that is necessary to correctly perform packet switching becomes one of the crucial issues in the overall Internet architecture. The dominate factor of this issue is the routing data stored in Forwarding Information Bases. This paper analyzes storage overhead associated with the inter-domain component of Forwarding Information Bases and evaluates possible techniques for containing the growth of this overhead.
Use of application characteristics and limited preemption for run-to-completion parallel processor scheduling policies
Authors: Su-Hui Chiang, Rajesh K. Mansharamani, Mary K. Vernon
Venue: Proceedings of the 1994 ACM SIGMETRICS conference on Measurement and modeling of computer systems (1994)

The performance potential of run-to-completion (RTC) parallel processor scheduling policies is investigated by examining whether (1) application execution rate characteristics such as average parallelism (avg) and processor working set (PWS) and/or (2) limited preemption can be used to improve the performance of these policies. We address the first question by comparing policies (previous as well as new) that differ only in whether or not they use execution rate characteristics and by examining a wider range of the workload parameter space than previous studies. We address the second question by comparing a simple two-level queueing policy with RTC scheduling in the second level queue against RTC policies that don't allow any preemption and against dynamic equiallocation(EQ).Using simulation to estimate mean response times we find that for promising RTC policies such as adaptive static partitioning (ASP) and shortest demand first (SDF), a maximum allocation constraint that is for all practical purposes independent of avg and pws provides greater and more consistent improvement in policy performance than using avg or pws. Also, under the assumption that job demand information is unavailable to the scheduler we show that the ASP-max policy outperforms all previous high performance RTC policies for workloads with coefficient of variation in processing requirement greater than one. Furthermore, a two-level queue that allows at most one preemption per job outperforms ASP-max but is not competitive with EQ.
Doubly distorted mirrors
Authors: Cyril U. Orji, Jon A. Solworth
Venue: ACM SIGMOD Record (1993)

Traditional mirrored disk systems provide high reliability by multiplexing disks. Performance is improved with parallel reads and shorter read seeks. However, writes must be performed by both disks, limiting performance. Doubly distorted mirrors increase the number of physical writes per logical write from 2 to 3, but performs logical writes more efficiently. This reduces the cost of a random logical write to 1/3 of the cost of a read. Moreover, much of the write cost can be absorbed in the rotational latency of the reads, performing under certain conditions all the writes for free. Doubly distorted mirrors achieves a 135% performance improvement over traditional mirrors in the TP1 benchmark. Although these techniques require a disk cache for writes, the cache need not be safe nor is recovery time impacted very much.
Modularity and tuning mechanisms in the O2 System
Authors: Fernando Vélez
Venue: Proceedings of the 1993 ACM SIGMOD international conference on Management of data (1993)

The O2 System is a commercial Object-Oriented Database Management System with a complete development environment and a set of user interface tools. In this presentation, we focus on the modularity and application tuning facilities of the system.