119 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

    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

    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

    Generation of file processing programs based on JSP

    Get PDF
    This paper describes the generation of file processing programmes within the TUBA environment. Program structures are derived from data structures according to the JSP method. Expressions describing output data are specified in user-system dialogues. The program specifications are stored in the dictionary. Complete executable programs can be generated from these specifications

    Generating Data Flow Programs From Nonprocedural Specifications

    Get PDF
    Data flow is a mode of parallel computation in which parallelism in a program can be exploited at the fine grained as well as macro level. A data flow computer executes a data dependency graph rather than the program counter controlled sequence of instructions executed by conventional machines. Nonprocedural languages appear to be especially appropriate high level languages for data flow computers. Nonprocedural languages have only two statement forms: data description and assertion. The assertions enumerate the relationships among the data. A data dependency graph is also a suitable representation for a nonprocedural language program (or specification). This research is concerned with translating the dependency graph form of a specification to a program graph for a data flow machine. Specifications in the MODEL language are translated into an intermediate form, the data flow template. The template is a language-independent representation of the specification. The template is then translated into a data flow language (Manchester Dataflow) for the Manchester University machine. The translation consists of creating an array graph to represent the specification; generating the data flow program template from the array graph; and translating the template into MaD

    Parallel scheduling of recursively defined arrays

    Get PDF
    A new method of automatic generation of concurrent programs which constructs arrays defined by sets of recursive equations is described. It is assumed that the time of computation of an array element is a linear combination of its indices, and integer programming is used to seek a succession of hyperplanes along which array elements can be computed concurrently. The method can be used to schedule equations involving variable length dependency vectors and mutually recursive arrays. Portions of the work reported here have been implemented in the PS automatic program generation system

    Comparative Study of C, Java, C# and Jython

    Get PDF
    Comparing programming languages is a common topic among programmers and software developers. With the recent changes in programming standards and continual upgrades in hardware design, many new programming languages are being developed, while existing ones are currently going through several enhancements in terms of design and implementation. In this research, we present a comparative study of four programming languages, C, Java, C#, and Jython, with respect to the following criteria: memory consumption, CPU utilization, and execution time. Each test was performed in a distributed system using TCP sockets with 1, 2, 4 and 8 clients, and on a symmetric multiprocessing system
    • …
    corecore