1,464 research outputs found

    Type determination in an optimizing compiler for APL

    Get PDF
    This was produced from a copy of a document sent to us for microfilming. While the most advanced technological means to photograph and reproduce this document have been used, the quality is heavily dependent upon the quality of the material submitted. The following explanation of techniques is provided to help you understand markings or notations which may appear on this reproduction. 1. The sign or "target " for pages apparently lacking from the document photographed is "Missing Page(s)". If it was possible to obtain the missing page(s) or section, they are spliced into the film along with adjacent pages. This may have necessitated cutting through an image and duplicating adjacent pages to assure you of complete continuity. 2. When an image on the film is obliterated with a round black mark it is an indication that the film inspector noticed either blurred copy because of movement during exposure, or dupUcate copy. Unless we meant to delete copyrighted materials that should not have been filmed, you will find

    Automatic parallelization of array-oriented programs for a multi-core machine

    Get PDF
    Abstract We present the work on automatic parallelization of array-oriented programs for multi-core machines. Source programs written in standard APL are translated by a parallelizing APL-to-C compiler into parallelized C code, i.e. C mixed with OpenMP directives. We describe techniques such as virtual operations and datapartitioning used to effectively exploit parallelism structured around array-primitives. We present runtime performance data, showing the speedup of the resulting parallelized code, using different numbers of threads and different problem sizes, on a 4-core machine, for several examples

    Eurostat News Q3-1984

    Get PDF

    Kawa|compiling dynamic languages to the Java VM

    Get PDF
    Many are interested in Java for its portable bytecodes and extensive libraries, but prefer a different language, especially for scripting. People have implemented other languages using an interpreter (which is slow), or by translating into Java source (with poor responsiveness for eval). Kawa uses an interpreter only for “simple” expressions; all non-trivial expressions (such as function definitions) are compiled into Java bytecodes, which are emitted into an in-memory byte array. This can be saved for later, or quickly loaded using the Java ClassLoader. Kawa is intended to be a framework that supports multiple source languages. Currently, it only supports Scheme, which is a lexically-scoped language in the Lisp family. The Kawa dialect of Scheme implements almost all of the current Scheme standard (R5RS), with a number of extensions, and is written in a efficient objectoriented style. It includes the full “numeric tower”, with complex numbers, exact infinite-precision rational arithmetic, and units. A number of extensions provide access to Java primitives, and some Java methods provide convenient access to Scheme. Since all Java objects are Scheme values and vice versa, this makes for a very powerful hybrid Java/Scheme environment. An implementation of ECMAScript (the standardized “core ” of JavaScript) is under construction. Other languages, including Emacs Lisp, are also being considered

    Форма представления функциональных программ для автоматического параллельного выполнения

    Get PDF
    Automatic parallelizing is one of the important tasks in the parallel computing. Many solutions designed for imperative programming languages, but there are only partial solutions for functional ones. This notice propose an inner representation form of functional programs, which allows building a data dependency graph and partially optimizing it. Analysis of built graph determines program parts to be computed in multiple threads.Автоматическое распараллеливание, одна из важных задач параллельных вычислений, достаточно развито для императивных языков, но имеет частичное решение для функциональных. Предлагается внутренняя форма представления функциональных программ, позволяющая построить и частично оптимизировать граф зависимостей данных программы. На основе полученного графа программно определяются части программы, которые могут быть выполнены параллельно
    corecore