26 research outputs found

    Syntactic analysis of LR(k) languages

    Get PDF
    PhD ThesisA method of syntactic analysis, termed LA(m)LR(k), is discussed theoretically. Knuth's LR(k) algorithm is included as the special case m = k. A simpler variant, SLA(m)LR(k) is also described, which in the case SLA(k)LR(O) is equivalent to the SLR(k) algorithm as defined by DeRemer. Both variants have the LR(k) property of immediate detection of syntactic errors. The case m = 1 k = 0 is examined in detail, when the methods provide a practical parsing technique of greater generality than precedence methods in current use. A formal comparison is made with the weak precedence algorithm. The implementation of an SLA(1)LR(O) parser (SLR) is described, involving numerous space and time optimisations. Of importance is a technique for bypassing unnecessary steps in a syntactic derivation. Direct comparisons are made, primarily with the simple precedence parser of the highly efficient Stanford AlgolW compiler, and confirm the practical feasibility of the SLR parser.The Science Research Council

    Interactive use of a computer in the preparation of structured progams

    Get PDF
    PhD ThesisAn experimental system providing assistance in the task of program construction, validation and description is presented. This system (Pearl) encourages a particular top-down approach to programming such that programs so developed exhibit a multi-level, hierarchical structure. Amongst several tools provided by the system is one ·"hich enables programs to be exercised even though they may be eXercised in terms of abstract operations and data types. The whole system is designed to be used in an interactive environment. Programs are developed by the programmer with appropriate assistance and guidance from the computer. Contemporary programming tools and methods are surveyed and their relevance to the development of high quality software is discussed. In particular attention is given to programming methodologies,design representations and issues of program correctness. The practicality of the system is demonstrated i!l a mmber of examples.Science Research Council

    Development of a methodology for classifying software errors

    Get PDF
    A mathematical formalization of the intuition behind classification of software errors is devised and then extended to a classification discipline: Every classification scheme should have an easily discernible mathematical structure and certain properties of the scheme should be decidable (although whether or not these properties hold is relative to the intended use of the scheme). Classification of errors then becomes an iterative process of generalization from actual errors to terms defining the errors together with adjustment of definitions according to the classification discipline. Alternatively, whenever possible, small scale models may be built to give more substance to the definitions. The classification discipline and the difficulties of definition are illustrated by examples of classification schemes from the literature and a new study of observed errors in published papers of programming methodologies

    An experiment in high-level microprogramming

    Get PDF
    This thesis describes an experiment in developing a true high-level microprogramming language for the Burroughs B1700 series of computers. Available languages for machine description both at a behavioural level and at a microprogramming level are compared and the conclusion drawn that none were suitable for our purpose and that it was necessary to develop a new language which we call SUILVEN. SUILVEN is a true high-level language with no machine-dependent features. It permits the exact specification of the size of abstract machine data areas (via the BITS declaration) and allows the user to associate structure with these data areas (via the TEMPLATE declaration), SUILVEN only permits the use of structured control statements (if-then-else, while-do etc.) - the go to statement is not a feature of the language. SUILVEN is compiled into microcode for the B1700 range of machines. The compiler is written in SNOBOL4 and uses a top-down recursive descent analysis technique, using abstract machines for PASCAL and the locally developed SASL, SUILVEN was compared with other high and low level languages. The conclusions drawn from this comparison were as follows: - (i) SUILVEN was perfectly adequate for describing simple S-machines (ii) SUILVEN lacked certain features for describing higher-level machines (iii) The needs of a machine description language and a microprogram implementation language are different and that it is unrealistic to attempt to combine these in a single language

    IMP as a tool for small operating systems implementation

    Get PDF

    Software Productivity

    Get PDF

    Mathematical Foundations for Structured Programming

    Get PDF

    A bibliography on formal languages and related topics

    Get PDF

    A bibliography on formal languages and related topics

    Get PDF

    A bibliography on formal languages and related topics

    Get PDF
    corecore