The synthesizer generator reference manual
Author(s)
Bibliographic Information
The synthesizer generator reference manual
(Texts and monographs in computer science)
Springer-Verlag, c1989
3rd ed
- : New York
- : Berlin
Available at 14 libraries
  Aomori
  Iwate
  Miyagi
  Akita
  Yamagata
  Fukushima
  Ibaraki
  Tochigi
  Gunma
  Saitama
  Chiba
  Tokyo
  Kanagawa
  Niigata
  Toyama
  Ishikawa
  Fukui
  Yamanashi
  Nagano
  Gifu
  Shizuoka
  Aichi
  Mie
  Shiga
  Kyoto
  Osaka
  Hyogo
  Nara
  Wakayama
  Tottori
  Shimane
  Okayama
  Hiroshima
  Yamaguchi
  Tokushima
  Kagawa
  Ehime
  Kochi
  Fukuoka
  Saga
  Nagasaki
  Kumamoto
  Oita
  Miyazaki
  Kagoshima
  Okinawa
  Korea
  China
  Thailand
  United Kingdom
  Germany
  Switzerland
  France
  Belgium
  Netherlands
  Sweden
  Norway
  United States of America
Note
Bibliography: p. [159]-160
Includes index
Description and Table of Contents
Description
The Synthesizer Generator is a system for automating the implementation of language-based editing environments. The editor designer prepares a specification that includes rules defining a language's context-free abstract syn tax, context-sensitive relationships, display format, and concrete input syntax. From this specification, the Synthesizer Generator creates a display editor for manipulating objects according to these rules [Reps84]. This volume, The Synthesizer Generator Reference Manual, is intended as the defining document of the system. A companion volume, The Synthesizer Gen erator: A System for Constructing Language-Based Editors [Reps88], provides a more tutorial description of the system; it contains numerous examples that illustrate the specification and use of generated editors, as well as chapters that explain important algorithms of the implementation. The Synthesizer Generator is a generalization of our earlier system, the Cor nell Program Synthesizer [Teitelbaum81], which was a programming environ ment for a specific small dialect of PL/I. It featured a display-oriented, syntax directed editor, an incremental compiler, an execution supervisor supporting source-level debugging, and a file system containing syntactically typed pro gram fragments. Whereas PL/I was built into the Cornell Program Synthesizer, the Synthesizer Generator accepts a formal language definition as input. Although originally conceived as a tool for creating Synthesizer-like environments for arbitrary pro gramming languages, the Synthesizer Generator is more broadly useful. Any textual language with a hierarchical phrase structure grammar is a candidate. vi Preface Interactive theorem proving for formal mathematics and logic, for example, has emerged as a particularly suitable application.
Table of Contents
1 Introduction.- 2 Specifying an Editor.- 2.1 Lexical Matters.- 2.2 Phyla, Operators, and Terms.- 2.2.1 Primitive phyla.- 2.2.2 User-defined phyla and operators.- 2.2.3 List phyla, optional phyla, and placeholder terms.- 2.2.4 Predefined non-primitive phyla.- 2.2.5 Root declaration.- 2.3 Attribute Declarations and Attribute Equations.- 2.3.1 Attribute declarations.- 2.3.2 Attribute equations.- 2.3.3 Attribute evaluation schemes.- 2.4 Function Declarations.- 2.5 Expressions.- 2.5.1 Variables.- 2.5.2 Application of functions, operators, and maps.- 2.5.3 Operations on primitive phyla.- 2.5.4 List operations.- 2.5.5 Relational operations.- 2.5.6 Conditional and binding expressions.- 2.5.7 Grouping, sequencing, and precedence.- 2.5.8 Conversion of terms to and from strings.- 2.5.9 Attribution expressions.- 2.6 View and Unparsing Declarations.- 2.6.1 Editing modes.- 2.6.2 Resting places.- 2.6.3 Formatting the display representation.- 2.6.4 Unparsing lists.- 2.6.5 Sparse views.- 2.7 Concrete Input Syntax.- 2.7.1 The text-entry paradigm.- 2.7.2 Entry declarations.- 2.7.3 Parsing declarations.- 2.7.4 Ambiguity and precedence declarations.- 2.7.5 Lexical analysis.- 2.7.6 Examples.- 2.8 Transformation Declarations.- 2.9 Support for Modular Specifications.- 2.10 Option Declarations.- 2.11 Quantified Declarations.- 3 Using an Editor.- 3.1 Getting Into and Out of an Editor.- 3.2 Executing Commands and Transformations.- 3.3 Buffers, Selections, and Files.- 3.4 Creating, Deleting, and Resizing Windows and Panes.- 3.5 Entering and Editing an Object.- 3.6 Changing the Structural Selection by Traversal of the Edited Term.- 3.7 Changing the Character Selection by Traversal of the Text Buffer.- 3.8 Moving the Object With Respect to the Window.- 3.9 Moving the Locator on the Screen.- 3.10 Changing the Selection with the Locator.- 3.11 Structural Editing.- 3.12 Textual Editing.- 3.13 Access to Computed Attributes.- 3.14 Searching.- 3.15 Alternating Unparsing Schemes.- 4 The SSL Debugger.- 5 Interface to C.- 5.1 Foreign and Exported Functions.- 5.2 Base-Type and Primitive-Phylum Definitions.- 5.3 External Stores and External Computers.- 5.4 Defining Additional Commands.- 5.4.1 Defining commands that have no parameters.- 5.4.2 Defining commands that have parameters.- Appendix A A Sample Specification.- Appendix B Invoking the Synthesizer Generator.- Appendix C List of Editor Commands.- Appendix D Keyboards, Displays, Window Systems, and Mice.- D.1 Keyboards.- D.2 Displays and Window Systems.- D.3 Mice.- Appendix E Demonstration Editors.- E.1 Simple Tutorial Editors.- E.2 Editors for Programming Languages.- E.3 Document Editor.- E.4 Graphics Editor.- E.5 Pedagogical Editors.- E.6 Logic and Program-Verification Editors.- Appendix F Syntax of SSL.
by "Nielsen BookData"