Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Toward Relaxing Assumptions in Languages and Their Implementations

IP.com Disclosure Number: IPCOM000148074D
Original Publication Date: 1980-Jan-02
Included in the Prior Art Database: 2007-Mar-28
Document File: 20 page(s) / 1M

Publishing Venue

Software Patent Institute

Related People

Shaw, Mary: AUTHOR [+3]

Abstract

Toward Relaxing Assumptions in Languages and Their Implementations Mary Shaw and Wm. A. Wulf Computer Science Department Carnegie Mellon University Pittsburgh, Pa. 2 January 1980 Abstract Language implementors frequently make pre-emptive decisions concerning the exact implementations of language features. These decisions constrain programmers' control over their computations and may tempt them to write involuted code to obtain special (or efficient) effects. In many cases, we can distinguish some properties of a language facility that are essential to the semantics and other properties that are incidental. Recent abstraction techniques emphasize dealing with such disfinctions by separating the properties that are necessary to preserve the semantics from the details for which some decision must be made but many ch~ices are adequate. We suggest here that these abstraction techniques can be applied fo the probiem of pre-emptive language decisions by specifying the essential properties of. kngu.ages Cacilities in a skeleton base language and defining interfaces that will accept a variety of implementations that differ in other details.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 7% of the total text.

Page 1 of 20

Toward Relaxing Assumptions

in

Languages and Their Implementations

Mary Shaw and Wm. A. Wulf

Computer Science Department

Carnegie Mellon University
Pittsburgh, Pa.

2 January 1980

Abstract

Language implementors frequently make pre-emptive decisions concerning the exact implementations of language features. These decisions constrain programmers' control over their computations and may tempt them to write involuted code to obtain special (or efficient) effects. In many cases, we can distinguish some properties of a language facility that are essential to the semantics and other properties that are incidental. Recent abstraction techniques emphasize dealing with such disfinctions by separating the properties that are necessary to preserve the semantics from the details for which some decision must be made but many ch~ices are adequate. We suggest here that these abstraction techniques can be applied fo the probiem of pre-emptive language decisions by specifying the essential properties of. kngu.ages Cacilities in a skeleton base language and defining interfaces that will accept a variety of implementations that differ in other details.

This'research was sponsored by the National Science Foundation under Grant MCS77-03883

and by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 3597, monitored by the Air Farce Avionics Laboratory Under Contract F33615-78-C-1551.

t

  The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the National Science Foundation, the Defense Advanced Research Projects Agency, or the US Government

[This page contains 1 picture or other non-text object]

Page 2 of 20

[This page contains 1 picture or other non-text object]

Page 3 of 20

1. Introduction


Traditionally, the designers and implementors of programming languages have made a

number of decisions about the nature and representation of various language features that the authors feel are unnecessarily pre-emptive. For example, such decisions are commonly made about arrays: most languages support only rectangular arrays, and each implementation generally uses some particular representation, such as row-major order, for all arrays. Neither of these choices is logically necessary: a language could, for example, pergit triangular arrays or arrays in which each row has a different length, and there are many possible representations even for simple rectangular arrays.

  In many, even most, situations, the kinds of language and implementation decisions to which we refer are beneficial. The programmer usually doesn't care what representation is chosen for arrays, for example, and the default decisions have been refined through long experience to yield representations that are broadly acceptable. Unfortunately, preci...