A Language Processor and a Sample Language

<p>This thesis explores shared data in list structures and ambiguity in language processing. Tolerance of ambiguity is necessary to support clear and modular expression. Data sharing is necessary to support ambiguity efficiently. Data sharing is useful also in compiled programs to save memory...

Full description

Bibliographic Details
Main Author: Ayres, Ronald Frederick
Format: Others
Language:en
Published: 1979
Online Access:https://thesis.library.caltech.edu/14389/1/Ayres_RF_1979_thesis.pdf
Ayres, Ronald Frederick (1979) A Language Processor and a Sample Language. Dissertation (Ph.D.), California Institute of Technology. doi:10.7907/r2hy-6x63. https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786 <https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786>
id ndltd-CALTECH-oai-thesis.library.caltech.edu-14389
record_format oai_dc
spelling ndltd-CALTECH-oai-thesis.library.caltech.edu-143892021-10-08T05:01:23Z https://thesis.library.caltech.edu/14389/ A Language Processor and a Sample Language Ayres, Ronald Frederick <p>This thesis explores shared data in list structures and ambiguity in language processing. Tolerance of ambiguity is necessary to support clear and modular expression. Data sharing is necessary to support ambiguity efficiently. Data sharing is useful also in compiled programs to save memory and time.</p> <p>Let us define some terms. A rewrite grammar is a set of replacement rules each of which specifies that a given phrase may be replaced by another given phrase. Each replacement rule expresses a local translation. A parser finds those sequences of replacements that bring a given text to a machine handleable form. Each such sequence represents a meaning or interpretation for the given text. Tolerance of ambiguity or multiple interpretations for a given text is necessary so that subsequent processing can place further constraints upon the input text.</p> <p>This thesis presents a parser which efficiently, handles general-rewrite grammars. To conserve computer time and memory, only essential differences among multiple interpretations are represented and processed. If several interpretations for a given text are valid, the parser yields a meaning which represents the ambiguity as, locally as possible. Even an exponential number of distinct meanings may be represented in a polynomial amount of memory.</p> <p>This thesis also presents a language processing system which supports semantic processing via independent rewrite grammars. Each grammar represents a distinct aspect of the language. A given sequence of grammars becomes a sequence of passes, or process steps. Each pass derives a meaning with respect to one grammar and uses that meaning to generate phrases which will be interpreted by the next pass. Although linguistic specification is usually done with context-free grammars, features of this parser which support general-rewrite grammars are essential for the integration of passes. Not only ambiguity, but also the locality of ambiguity is preserved from one pass to the next. It is necessary to preserve locality of ambiguity in order to avoid explosive computation arising from useless action among independent sets of interpretations.</p> <p>I have implemented a general-purpose programming language called ICL with this system. The fact that ICL's datatypes are processed by a rewrite grammar makes it simple to implement both user-defined datatype coercions and functions known as polymorphic operators whose definitions depend on parameter datatypes. Datatype coercions and Polymorphic operators reduce the amount,of specification required in algorithms to such an extent that a user can often modify declarations and achieve optimizations and changes in concept without modifying his algorithmic specification.</p> <p>ICL includes a simple and safe policy about pointers so that the user can ignore their existence completely if he wishes. ICL automatically maximizes data sharing and minimizes copying by adopting a "copy on write" policy. This policy supports the illusion that each and every reference to a data structure generates a complete copy of that data structure. This same technique is used in the language processor itself to facilitate data sharing among multiple interpretations in ambiguous cases.</p> 1979 Thesis NonPeerReviewed application/pdf en other https://thesis.library.caltech.edu/14389/1/Ayres_RF_1979_thesis.pdf Ayres, Ronald Frederick (1979) A Language Processor and a Sample Language. Dissertation (Ph.D.), California Institute of Technology. doi:10.7907/r2hy-6x63. https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786 <https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786> https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786 CaltechTHESIS:10072021-184918786 10.7907/r2hy-6x63
collection NDLTD
language en
format Others
sources NDLTD
description <p>This thesis explores shared data in list structures and ambiguity in language processing. Tolerance of ambiguity is necessary to support clear and modular expression. Data sharing is necessary to support ambiguity efficiently. Data sharing is useful also in compiled programs to save memory and time.</p> <p>Let us define some terms. A rewrite grammar is a set of replacement rules each of which specifies that a given phrase may be replaced by another given phrase. Each replacement rule expresses a local translation. A parser finds those sequences of replacements that bring a given text to a machine handleable form. Each such sequence represents a meaning or interpretation for the given text. Tolerance of ambiguity or multiple interpretations for a given text is necessary so that subsequent processing can place further constraints upon the input text.</p> <p>This thesis presents a parser which efficiently, handles general-rewrite grammars. To conserve computer time and memory, only essential differences among multiple interpretations are represented and processed. If several interpretations for a given text are valid, the parser yields a meaning which represents the ambiguity as, locally as possible. Even an exponential number of distinct meanings may be represented in a polynomial amount of memory.</p> <p>This thesis also presents a language processing system which supports semantic processing via independent rewrite grammars. Each grammar represents a distinct aspect of the language. A given sequence of grammars becomes a sequence of passes, or process steps. Each pass derives a meaning with respect to one grammar and uses that meaning to generate phrases which will be interpreted by the next pass. Although linguistic specification is usually done with context-free grammars, features of this parser which support general-rewrite grammars are essential for the integration of passes. Not only ambiguity, but also the locality of ambiguity is preserved from one pass to the next. It is necessary to preserve locality of ambiguity in order to avoid explosive computation arising from useless action among independent sets of interpretations.</p> <p>I have implemented a general-purpose programming language called ICL with this system. The fact that ICL's datatypes are processed by a rewrite grammar makes it simple to implement both user-defined datatype coercions and functions known as polymorphic operators whose definitions depend on parameter datatypes. Datatype coercions and Polymorphic operators reduce the amount,of specification required in algorithms to such an extent that a user can often modify declarations and achieve optimizations and changes in concept without modifying his algorithmic specification.</p> <p>ICL includes a simple and safe policy about pointers so that the user can ignore their existence completely if he wishes. ICL automatically maximizes data sharing and minimizes copying by adopting a "copy on write" policy. This policy supports the illusion that each and every reference to a data structure generates a complete copy of that data structure. This same technique is used in the language processor itself to facilitate data sharing among multiple interpretations in ambiguous cases.</p>
author Ayres, Ronald Frederick
spellingShingle Ayres, Ronald Frederick
A Language Processor and a Sample Language
author_facet Ayres, Ronald Frederick
author_sort Ayres, Ronald Frederick
title A Language Processor and a Sample Language
title_short A Language Processor and a Sample Language
title_full A Language Processor and a Sample Language
title_fullStr A Language Processor and a Sample Language
title_full_unstemmed A Language Processor and a Sample Language
title_sort language processor and a sample language
publishDate 1979
url https://thesis.library.caltech.edu/14389/1/Ayres_RF_1979_thesis.pdf
Ayres, Ronald Frederick (1979) A Language Processor and a Sample Language. Dissertation (Ph.D.), California Institute of Technology. doi:10.7907/r2hy-6x63. https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786 <https://resolver.caltech.edu/CaltechTHESIS:10072021-184918786>
work_keys_str_mv AT ayresronaldfrederick alanguageprocessorandasamplelanguage
AT ayresronaldfrederick languageprocessorandasamplelanguage
_version_ 1719487951968141312