scispace - formally typeset
Search or ask a question

Showing papers on "Parser combinator published in 1978"


Journal ArticleDOI
TL;DR: It is proposed that the human sentence parsing device assigns phrase structure to word strings in two steps, and the assumption that the units which are shunted from the first stage to the second stage are defined by their length, rather than by their syntactic type explains the effects of constituent length on perceptual complexity in center embedded sentences.

1,155 citations


Journal ArticleDOI
TL;DR: This paper describes error-correcting parsers for context-free and context-sensitive languages with substitution, insertion and deletion errors with weighted Levenshtein metric.
Abstract: This paper describes error-correcting parsers for context-free and context-sensitive languages with substitution, insertion and deletion errors. Furthermore, it is shown that the ability of the proposed parsers can be expressed in terms of the weighted Levenshtein metric.

45 citations


Journal ArticleDOI
TL;DR: The proposed approach for determining the minimum, maximum, and average times to parse sentences acceptable by a deterministic parser is described by using a specific grammar that defines simple arithmetic expressions and applied to the analyses of parsers for a simple programming language.
Abstract: This paper describes an approach for determining the minimum, maximum, and average times to parse sentences acceptable by a deterministic parser. These quantities are presented in the form of symbolic formulas, called time-formulas. The variables in these formulas represent not only the length of the input string but also the time to perform elementary operations such as pushing, popping, subscripting, iterating, etc. By binding to the variables actual numerical values corresponding to a given compiler-machine configuration, one can determine the execution time for that configuration. Time-formulas are derived by examining the grammar rules and the program representing the algorithm one wishes to analyze. The approach is described by using a specific grammar that defines simple arithmetic expressions. Two deterministic parsers are analyzed: a top-down recursive descent LL(1) parser, and a bottom-up SLR(1) parser. The paper provides estimates for the relative efficiencies of the two parsers. The estimates applicable to a specific machine, the PDP-10, are presented and substantiated by benchmarks. Finally, the paper illustrates the proposed approach by applying it to the analyses of parsers for a simple programming language.

20 citations


01 Nov 1978
TL;DR: A new type of natural language parser that uses an integrated conception of inferences, scripts, plans, and other knowledge to aid in the parse and does not attempt to parse everything it sees.
Abstract: : A new type of natural language parser is presented. The idea behind this parser is to map input sentences into the deepest form of the representation of their meaning and inferences, as is appropriate. The parser is not distinct from an entire understanding system. It uses an integrated conception of inferences, scripts, plans, and other knowledge to aid in the parse. Furthermore, it does not attempt to parse everything it sees. Rather it determines what is most interesting and concentrates on that, ignoring the rest. (Author)

15 citations


01 Jun 1978
TL;DR: An interface system which allows a human user to communicate with an automatic programming system in an English dialogue and an interpreter which represents Reader's output in a form that can be used by a computer program without linguistic knowledge is described.
Abstract: : This paper is about communicating with computers in English In particular, it describes an interface system which allows a human user to communicate with an automatic programming system in an English dialogue The interface consists of two parts The first is a parser called Reader Reader was designed to facilitate writing English grammars which are nearly deterministic in that they consider a very small number of parse paths during the processing of a sentence This efficiency is primarily derived from using a single parse structure to represent more than one syntactic interpretation of the input sentence The second part of the interface is an interpreter which represents Reader's output in a form that can be used by a computer program without linguistic knowledge The Interpreter is responsible for asking questions of the user, processing the user's replies, building a representation of the program the user's replies describe, and supplying the parser with any of the contextual information or general knowledge it needs while parsing

12 citations


Book ChapterDOI
17 Jul 1978
TL;DR: It is shown that a simple deterministic grammar can be constructed which covers the simple chain grammar and a new type of parse is introduced which differs from the left and right parses which are common for the usual one pass no back-tracking parsing algorithms.
Abstract: A method is presented for obtaining a simple deterministic pushdown transducer which acts as a parser for simple chain grammars. It is shown that a simple deterministic grammar can be constructed which covers the simple chain grammar. To obtain both the simple deterministic pushdown transducer and the cover result, a new type of parse is introduced which differs from the left and right parses which are common for the usual one pass no back-tracking parsing algorithms. For the simple chain grammars this parse, the so-called left part parse, follows from a simple left part property which is satisfied by the grammatical trees of simple chain grammars.

4 citations


ReportDOI
01 Jun 1978
TL;DR: This report presents an LALR(1) grammar for ANSI standard FORTRAN, suitable as input to an automatic parser generator, and includes the method for specifying automatic construction of (intermediate-text) structure trees during parsing.
Abstract: : An automatic parser generator is a tool for quickly implementing programming language parsers. Parser generators based upon LR parsing have been built for grammars satisfying the LR(o), SLR(1), and LALR(1) properties. Speed of the resulting parser is comparable to that of a hand coded recursive descent parser. DAVE, an automatic program testing aid, requires a flexible, easy-to-implement parser. This report presents an LALR(1) grammar for ANSI standard FORTRAN, suitable as input to an automatic parser generator. Its use in building DAVE provides a measure of the desired flexibility, since new parsers for FORTRAN dialects may be produced by simply modifying the existing grammar. A powerful meta-language is used to describe the grammar. Its features are summarized, including the method for specifying automatic construction of (intermediate-text) structure trees during parsing. The report concludes with a discussion of some of the more important decisions made during development of the grammar. (Author)

2 citations


01 Dec 1978
TL;DR: This paper deals with actual constructions of programs for experiments in several parsers based on the theoritical results of others that represent on of the most fruitful contributions in computer science.
Abstract: This paper deals with actual constructions of programs for experiments in several parsers based on the theoritical results of others that represent on of the most fruitful contributions in computer science. Specifically the report deals with (1) a general computer representation of grammar (2) a precedence parser generator, (3) a LL (1) parser generator, (4) a practical SLR (1)/LALR (1) parser generator.

2 citations


Journal ArticleDOI
TL;DR: A simple method is described enabling simple precedence parsers to recover from syntax errors with negligible increase in parsing time, space, and complexity of both the parser and its table generator.
Abstract: A simple method is described enabling simple precedence parsers to recover from syntax errors. No attempt to repair errors is made, yet parsing and most semantic processing can continue. The result is a good “first approximation” to syntax error handling with negligible increase in parsing time, space, and complexity of both the parser and its table generator.

2 citations


Proceedings ArticleDOI
13 Apr 1978
TL;DR: An algorithm for generating bounded-context parsers using a modified version of Knuth's algorithms for generating LR(k) parsers is presented and the internal design of a parser generating system capable of constructing the parsing tables for (s,l) bounded- context and LR(1) Parsers is described.
Abstract: In this paper we present an algorithm for generating bounded-context parsers using a modified version of Knuth's algorithm for generating LR(k) parsers. We also describe the internal design of a parser generating system capable of constructing the parsing tables for (s,l) bounded-context and LR(1) parsers. The parser generating system is written in PL/1 and is operational on an IBM-370/165. The data we have collected to date on the performance of the system is encouraging; to build the states of an LR(1) parser for a 488 production grammar for the proposed ANS FORTRAN (SIGPLAN 1976) required 480K bytes of core and 3.5 minutes of CPU time.Our algorithm for generating bounded-context parsers produces a canonical set of parsing tables similar to the "action" and "goto" tables required for canonical LR(k) parsers. A parameter, s, input to the algorithm specifies how many symbols may be used to make a decision in any given state of the parser. If storage is more of a premium than time, the goto-table can be organized in such a way that its size is a function only of the number of states. The algorithm has several advantages over traditional algorithms for bounded-context and precedence parsing. First, the theory is parallel to that for LR(k) parsing and thus makes possible a unified approach to the study of bottom-up parsing. Second, the differences between precedence and bounded-context algorithms are emphasized by the theory and born out in the efficiency of their respective implementations. Finally, the algorithm is "restartable;" that is, if a deterministic parser is not obtained for a given value of "s," much of the information generated for case "s" can be preserved and need not be regenerated for the case "s+1."

1 citations