193 research outputs found

    The Use of Translator Implementation Methods for Writing Nonprocedural Interfaces to Application Software Systems

    Get PDF
    One of the results of advances in computer hardware technology is a wider use of computers in almost all areas of society. There is a need to make it possible for many people to use application software systems that are produced for different areas. For people without data processing backgrounds it would seem wise to use a nonprocedural interface to these systems. The implementation of a nonprocedural interface as a part of an application software system can be facilitated using aspects of the theory and practice of the translator construction for programming languages. The purpose of this paper is to introduce programmers who lack theoretical background and/or practical experience in the area of translator design and implementation to the relevant aspects of its theory and practice

    Exploiting loop level parallelism in nonprocedural dataflow programs

    Get PDF
    Discussed are how loop level parallelism is detected in a nonprocedural dataflow program, and how a procedural program with concurrent loops is scheduled. Also discussed is a program restructuring technique which may be applied to recursive equations so that concurrent loops may be generated for a seemingly iterative computation. A compiler which generates C code for the language described below has been implemented. The scheduling component of the compiler and the restructuring transformation are described

    Reverse Software Engineering

    Get PDF
    The goal of Reverse Software Engineering is the reuse of old outdated programs in developing new systems which have an enhanced functionality and employ modern programming languages and new computer architectures. Mere transliteration of programs from the source language to the object language does not support enhancing the functionality and the use of newer computer architectures. The main concept in this report is to generate a specification of the source programs in an intermediate nonprocedural, mathematically oriented language. This specification is purely descriptive and independent of the notion of the computer. It may serve as the medium for manually improving reliability and expanding functionally. The modified specification can be translated automatically into optimized object programs in the desired new language and for the new platforms. This report juxtaposes and correlates two classes of computer programming languages: procedural vs. nonprocedural. The nonprocedural languages are also called rule based, equational, functional or assertive. Non-procedural languages are noted for the absence of side effects and the freeing of a user from thinking like a computer when composing or studying a procedural language program. Nonprocedural languages are therefore advantageous for software development and maintenance. Non procedural languages use mathematical semantics and therefore are more suitable for analysis of the correctness and for improving the reliability of software. The difference in semantics between the two classes of languages centers on the meaning of variables. In a procedural language a variable may be assigned multiple values, while in a nonprocedural language a variable may assume one and only one value. The latter is the same convention as used in mathematics. The translation algorithm presented in this report consists of renaming variables and expanding the logic and control in the procedural program until each variable is assigned one and only one value. The translation into equations can then be performed directly. The source program and object specification are equivalent in that there is a one to one equality of values of respective variables. The specification that results from these transformations is then further simplified to make it easy to learn and understand it when performing maintenance. The presentation of translation algorithms in this report utilizes FORTRAN as the source language and MODEL as the object language. MODEL is an equational language, where rules are expressed as algebraic equations. MODEL has an effective translation into the object procedural languages PL/1, C and Ada

    Simultaneous Equations in the Model System With an Application to Econometric Modelling

    Get PDF
    This report describes modifications to the MODEL language and processor to facilitate automatic implementation of solution procedures for systems of simultaneous equations. MODEL is a very high level nonprocedural language for specifying computational tasks. The MODEL processor compiles a specification in the MODEL language into a computer program in PL/I . The purpose of the current modifications is to allow users with relatively little programming expertise to solve complex mathematical systems involving sets of simultaneous equations quickly and efficiently using an automatic program generation approach to modelling. The primary application which has motivated these modifications is that of Project LINK, an international econometric model composed of independent constituent country/region models which are linked together into a complex network of simultaneous equations. This report presents the rationale behind these modifications, describes the syntax, semantics, scheduling and code generation of specifications containing simultaneous equations, and illustrates these facilities in applications to two small national models from the LINK system and to a novel linkage mechanism used to simulate trade among the national models

    Benchmarks of programming languages for special purposes in the space station

    Get PDF
    Although Ada is likely to be chosen as the principal programming language for the Space Station, certain needs, such as expert systems and robotics, may be better developed in special languages. The languages, LISP and Prolog, are studied and some benchmarks derived. The mathematical foundations for these languages are reviewed. Likely areas of the space station are sought out where automation and robotics might be applicable. Benchmarks are designed which are functional, mathematical, relational, and expert in nature. The coding will depend on the particular versions of the languages which become available for testing

    Nonprocedural Communication between Users and Application Software

    Get PDF
    This report is a survey of nonprocedural communication between users and application software in interactive data-processing systems. It includes a description of the main features of interactive systems, a classification of the potential users of application software, and a definition of the nonprocedural interface. Nonprocedural languages are classified into a number of broad groups and illustrated with examples. Finally, future trends in user-computer interfaces and possible developments in manager-oriented languages are discussed

    Animation of Z Specifications By Translation to Prolog

    Get PDF
    Yazılım geliştirebilmenin formal metodları o yazılım tanımlamasının geçerliliğine bağlıdır. Böyle bir tanımlama genelde 'Z' gibi bir formal dilde ifade edilir. Ancak, geçerli olması için, 'Z' tanımlaması test edilmeli, bunu yapabilmek için de animasyon yapılabilecek ve icra edilebilecek bir forma transfer edilebilmelidir. 'Z' tanımlamalarının animasyonları için kullanılan dillerden birisi Prolog'dur. Bu makalede 'Z' şemalarını Prolog'a çeviren teknikler açıklanmaktadır.Aym zamanda bu tür bir çevirmenin eksikleri ve belirsizlikleri üzerinde durulacaktır.Formal methods of software development rely on the validation of the specification of the software. Such specification is normally expressed in a formal language such as Z. However, in order to be validated the Z specification must be tested, and to achieve this it has to be transformed into a form that can be executed or animated. Prolog was one of the languages used for animation of Z specifications. This paper explains the techniques used for translating Z schemas into Prolog predicates. It also examines some of this translation shortcomings and unreliable features

    Animation of Z Specifications By Translation to Prolog

    Get PDF
    Yazılım geliştirebilmenin formal metodları o yazılım tanımlamasının geçerliliğine bağlıdır. Böyle bir tanımlama genelde 'Z' gibi bir formal dilde ifade edilir. Ancak, geçerli olması için, 'Z' tanımlaması test edilmeli, bunu yapabilmek için de animasyon yapılabilecek ve icra edilebilecek bir forma transfer edilebilmelidir. 'Z' tanımlamalarının animasyonları için kullanılan dillerden birisi Prolog'dur. Bu makalede 'Z' şemalarını Prolog'a çeviren teknikler açıklanmaktadır.Aym zamanda bu tür bir çevirmenin eksikleri ve belirsizlikleri üzerinde durulacaktır.Formal methods of software development rely on the validation of the specification of the software. Such specification is normally expressed in a formal language such as Z. However, in order to be validated the Z specification must be tested, and to achieve this it has to be transformed into a form that can be executed or animated. Prolog was one of the languages used for animation of Z specifications. This paper explains the techniques used for translating Z schemas into Prolog predicates. It also examines some of this translation shortcomings and unreliable features

    An overview of decision table literature 1982-1995.

    Get PDF
    This report gives an overview of the literature on decision tables over the past 15 years. As much as possible, for each reference, an author supplied abstract, a number of keywords and a classification are provided. In some cases own comments are added. The purpose of these comments is to show where, how and why decision tables are used. The literature is classified according to application area, theoretical versus practical character, year of publication, country or origin (not necessarily country of publication) and the language of the document. After a description of the scope of the interview, classification results and the classification by topic are presented. The main body of the paper is the ordered list of publications with abstract, classification and comments.
    corecore