Topic: orthogonal extension and cartesian products

topics > computer science > programming > Group: goals for a programming system

program representation
extensible languages
functional programming
general vs. specific purpose systems
language flexibility
maps and rings
minimal language systems


Cartesian product spaces cover the largest space given a set of independent basis vectors. In programming languages, the corresponding idea is to define a few independent concepts which when interrelated in all combinations produce a full language. ALGOL 68 is the best example but the result does not match the needs of the programming community. When orthogonal extension is successful, a small amount of additional work produces a large result. For instance you would like to provide arrays as an orthogonal extension to a non-array language. Orthogonal extension means simple documentation, ease of understanding, and powerful syntax. Orthogonal extensions have been used with assembly language (names orthogonal to machine code), micro-coded ALU's, and meta operators. (cbb 5/80)
Subtopic: orthogonal features up

Quote: independent languages features should be orthogonal, i.e., controlled independently [»maclBJ_1987]
Quote: three perpendiculars from an origin determine the three dimensions of length, breadth, and height with three unique, shortest lines [»galiG_1632]
QuoteRef: mckeWM_1966 ;; the power of each feature should be available to all features--eg i/o language is usually very limited compared to processing
Quote: Algol68 is based on a small set of orthogonal, generalized concepts [»schwRL1_1979]
Quote: orthogonality -- hardware designers have learned more sense; but language designers are clever programmers and have not [»hoarCA_1974]

Subtopic: numeric constraints up

Quote: zero, one, and infinity are the only reasonable numbers in program language design [»maclBJ_1987]

Subtopic: meta operations up

Quote: meta operators provide almost any semantic ability without changing the simple syntax of Red languages [»backJ_1972]

Subtopic: micro coding up

Quote: Zebra used micro-coding with each bit controlling a switch; great flexibility [»bellCG_1971, OK]

Subtopic: orthogonal extension difficult up

Quote: an orthogonal extension to a language normally requires surgery on its underlying guts [»stanTA6_1975]
Quote: most programming languages are full of special cases and exceptions [»reinJ11_1971]

Subtopic: functionally rich vs. orthogonal up

Quote: a functionally rich system is not orthogonal; there are multiple ways to achieve a result

Related Topics up

Group: program representation   (25 topics, 659 quotes)
Topic: extensible languages (71 items)
Topic: functional programming (45 items)
Topic: general vs. specific purpose systems (11 items)
Topic: language flexibility (34 items)
Topic: maps and rings (15 items)
Topic: minimal language systems
(12 items)

Updated barberCB 10/04
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.