562 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

    Comparing generators for language-based tools

    Get PDF
    The first step in any language development project is the Compiler Generator choice. Nowadays there are many offers, based on translation grammars, attribute grammars or other language specification formalisms. To make up a decision, more factors than just the tool user-friendliness and the processor’s quality should be taken into account. To aid the language developer, we analyze in this paper three Compiler Generators. The traditional and well known YACC, and two more recent ones, LISA and AnTLR-3. The first produces a Syntax-Directed Translator, while the others generate a Semantic-Directed Translator based on attribute evaluation. Moreover both the AG-based generators also produce other Language-based Tools that are mentioned and compared.FC

    An implementation of the HLP

    Get PDF

    Generating flex lexical scanners for perl parse:: Yapp

    Get PDF
    Perl is known for its versatile regular expressions. Nevertheless, using Perl regular expressions for creating fast lexical analyzer is not easy. As an alternative, the authors defend the automated generation of the lexical analyzer in a well known fast application (flex) based on a simple Perl definition in the syntactic analyzer. In this paper we extend the syntax used by Parse::Yapp, one of the most used parser generators for Perl, making the automatic generation of flex lexical scanners possible. We explain how this is performed and conclude with some benchmarks that show the relevance of the approach

    Cracking the 500-Language Problem

    Get PDF

    Parsing Fortran-77 with proprietary extensions

    Full text link
    Far from the latest innovations in software development, many organizations still rely on old code written in "obsolete" programming languages. Because this source code is old and proven it often contributes significantly to the continuing success of these organizations. Yet to keep the applications relevant and running in an evolving environment, they sometimes need to be updated or migrated to new languages or new platforms. One difficulty of working with these "veteran languages" is being able to parse the source code to build a representation of it. Parsing can also allow modern software development tools and IDEs to offer better support to these veteran languages. We initiated a project between our group and the Framatome company to help migrate old Fortran-77 with proprietary extensions (called Esope) into more modern Fortran. In this paper, we explain how we parsed the Esope language with a combination of island grammar and regular parser to build an abstract syntax tree of the code.Comment: Accepted at ICSME'23 Industrial trac

    Lily: A parser generator for LL(1) languages

    Get PDF
    This paper discusses the design and implementation of Lily, a language for generating LL(1) language parsers, originally designed by Dr. Thomas J. Sager of the University of Missouri--Rolla. A method for the automatic generation of parser tables is described which creates small, highly optimized tables, suitable for conversion to minimal perfect hash functions. An implementation of Lily is discussed with attention to design goals, implementation of parser table generation, and table optimization techniques. Proposals are made detailing possibilities for further augmentation of the system. Examples of Lily programs are given as well as a manual for the system
    corecore