Get 20M+ Full-Text Papers For Less Than $1.50/day. Start a 14-Day Trial for You or Your Team.

Learn More →

An executable language definition

An executable language definition A n E x e c u t a b l e Language Definition W. M. Waite Department of Electrical and Computer Engineering University of Colorado Boulder, CO 80309-0425 This paper is an application of the "literate programming" paradigm [8,10] to language definition. It was generated by Eli [3] from a specification. A complete "lint" processor for the language it defines was also generated by Eli from that specification. The generated processor detects and reports invalid tokens, syntax errors, undefined and multiply-defined identifiers, and type errors. In other words, it verifies that a program conforms to the syntax and complete static semantics of the language. When you read this paper, you are reading a complete, formal definition of a language. Nothing is left out, and nothing is left to your imagination. The formalisms used in this definition are context-free grammars, attribute grammars in the style of LIDO [6], and a notation for describing operator overloading. Formal[ definitions of various aspects of the language appear as macros embedded in the natural-language description. These embedded macros are numbered sequentially, and the numbers are used to cross-reference macro definitions and uses. Eli's library has been used to advantage in several places. http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png ACM SIGPLAN Notices Association for Computing Machinery

An executable language definition

ACM SIGPLAN Notices , Volume 28 (2) – Feb 1, 1993

Loading next page...
 
/lp/association-for-computing-machinery/an-executable-language-definition-LPFYYC08Xv

References (12)

Publisher
Association for Computing Machinery
Copyright
Copyright © 1993 by ACM Inc.
ISSN
0362-1340
DOI
10.1145/157352.157354
Publisher site
See Article on Publisher Site

Abstract

A n E x e c u t a b l e Language Definition W. M. Waite Department of Electrical and Computer Engineering University of Colorado Boulder, CO 80309-0425 This paper is an application of the "literate programming" paradigm [8,10] to language definition. It was generated by Eli [3] from a specification. A complete "lint" processor for the language it defines was also generated by Eli from that specification. The generated processor detects and reports invalid tokens, syntax errors, undefined and multiply-defined identifiers, and type errors. In other words, it verifies that a program conforms to the syntax and complete static semantics of the language. When you read this paper, you are reading a complete, formal definition of a language. Nothing is left out, and nothing is left to your imagination. The formalisms used in this definition are context-free grammars, attribute grammars in the style of LIDO [6], and a notation for describing operator overloading. Formal[ definitions of various aspects of the language appear as macros embedded in the natural-language description. These embedded macros are numbered sequentially, and the numbers are used to cross-reference macro definitions and uses. Eli's library has been used to advantage in several places.

Journal

ACM SIGPLAN NoticesAssociation for Computing Machinery

Published: Feb 1, 1993

There are no references for this article.