Browse Prior Art Database

Structured Editor Support for Modularity and Data Abstraction

IP.com Disclosure Number: IPCOM000128278D
Original Publication Date: 1985-Dec-31
Included in the Prior Art Database: 2005-Sep-15
Document File: 5 page(s) / 22K

Publishing Venue

Software Patent Institute

Related People

Michael Caplinger: AUTHOR [+3]

Abstract

Until now, language facilities for data abstraction and modularity have involved extensions to the declaratory syntax of the languages. Batch compiler technology forces the separation of the editing of this syntax from its being checked by the compiler, making programming more difficult. We discuss an alternate method of adding such features in a language-based structured editor. Rather than adding syntax to the language, we simply use the editor to restrict uses of names. In order to specify the restrictions, we provide a language-independent notion of names and scopes in our abstract syntax tree.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 24% of the total text.

Page 1 of 5

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

Structured Editor Support for Modularity and Data Abstraction*

Michael Caplinger

Rice COUP TR85-11

January 1985

Department of Computer Science Rice University P.O. Box 1892 Houston TX 77251-1892

*This research has been supported in part by National Science Foundation grants MCS- 8104006 and MCS-8121884 and by an MM Graduate Fellowship.

Abstract

Until now, language facilities for data abstraction and modularity have involved extensions to the declaratory syntax of the languages. Batch compiler technology forces the separation of the editing of this syntax from its being checked by the compiler, making programming more difficult. We discuss an alternate method of adding such features in a language-based structured editor. Rather than adding syntax to the language, we simply use the editor to restrict uses of names. In order to specify the restrictions, we provide a language-independent notion of names and scopes in our abstract syntax tree.

1. Introduction

Increasing difficulties in organizing large programming projects have led to the design of programming language features to aid program development. Perhaps the most popular innova- tion has been the introduction of languages such as Ada[21, Modula 2[101, Euclid[6], and Mesa[7]. These languages possess some concept of a module or package to promote modularity and data abstraction.

Such languages certainly solve many problems, but they introduce new ones themselves. The worst is their ever-increasing concentration on syntax, and resulting syntactic complexity. The need for syntax is largely caused by the mode in which compilers currently operate, forcing a philosophy of use where the compiler is an adversary to be overcome, rather than an aid to be used in program development.

The use of structured editors (SEs) offers a possible solution to these problems. In this paper we describe a system to support modularity and data abstraction in a largely language- independent way within such an editor.

2. Programs as Textual Entities

Rice University Page 1 Dec 31, 1985

Page 2 of 5

Structured Editor Support for Modularity and Data Abstraction

Until recently, most languages were designed from the start to be processed by the computer in textual form. Even though programmers were usually able to visualize the underlying struc-ture of a purely syntactic representation, errors were inevitable, and a large part of any compiler had to, concern itself with error checking and reporting. The result was the familiar "edit-compile" cycle, where editing was seen as being distinct from compilation. Often,. a lot of time

'This research has been supported in part by National Science Foundation grants MCS- 8104006 and MCS-8121894, and by an 113M Graduate FeRowship. are composing, but the system is not going to confirm that belief until we try to compile. Using a structured editor to compose our function can be quite different. With such a syst...