Group: Thesa programming system

topics > computer science > Group: programming

data types in Thesa
implementation of Thesa data objects
managing a Thesa database
primitive data types for Thesa
Thesa as a database of modules
Thesa compiler and loader
Thesa data model
Thesa data structures
Thesa's primitive operations
Thesa's user interface
using pointers in Thesa
entries related to compiling
goals for a programming system
program representation

defensive programming
non-constraining system
pidgin and creole languages
pointer machines
programming with natural language
test Thesa's primitives
understanding systems


In Thesa, programmers work with a database of description where each description has a label, a definition and an encoded meaning. Any of the descriptions can be executed, assembled, renamed, or modified. The label is the syntax of a description while the meaning is its semantics. A description's meaning is assembled from its definition by expansion semantics of referenced descriptions.

The database defines a language whose words are defined by other words, i.e. descriptions, in the database. A reference to a description is an application of the description's meaning to the reference's arguments. Thus Thesa is an applicative system with expansion semantics instead of reduction or state transition semantics. In Thesa a description's meaning is assembled when the description is defined. This is different than mathematics where a definition is just for simplifying proofs. With notecards Thesa can be used as a manual design technique. (cbb 5/80)

Subtopic: abstraction up

Topic: abstraction
Quote: the central idea of Thesa is abstraction, i.e., the ability to refer to anything by name [»cbb_1973, OK]
Quote: a natural language for very large numbers [»cbb_1990, OK]
Quote: have ten orders of magnitude between program execution in hours and instruction execution in a microsecond; must have intermediate levels [»dijkEW10_1972]
Quote: the distinction between application and system is arbitrary in Cedar [»swinDC7_1985]
Quote: Thesa provides an environment where a name is understood in separate languages; computational/numbers and recognition/words [»cbb_1980, OK]
Quote: naming provides a pidgin language for design and a file system for data storage [»cbb_1990, OK]
Note: a modern programming language is really a large language and a large API; Thesa separates the language from everything else [»cbb_1990, OK]

Subtopic: depot ID up

Note: natural IDS -- 64-bit DepotID, world-wide unique with owner; 64-bit ItemID, unique within DepotID; formats with language codes [»cbb_2000, OK]
Note: a version of a depot is at a location, undergoing a sequence of revisions; a local ID exists at a location [»cbb_2000, OK]

Subtopic: goals up

Group: goals for a programming system
The main goals of a programming system are efficiency, simplicity, and reliability.

Subtopic: flexibility up

Topic: non-constraining system
Topic: design for change
Topic: incremental development
Topic: open systems
Topic: error safe systems
Topic: software portability
Topic: reusable programming
Topic: resourceful, redundant systems for reliability
The key idea in Thesa is incremental programming. Everything is incremental: database, development, testing, specification, implementation, code generation, and grammar.
Quote: flexibility is a fundamental consideration of language design; it should be planned for from the start [»halpMI1_1968]
Quote: it is often easier to replicate software than to integrate it into a new system [»winoT7_1979]
Quote: common subroutines from bottom-up design are reused; those from top-down design are for optimization [»jackMA_1975]
Quote: program in Forth by writing small pieces which are readily tested [»bailGV8_1977]
Quote: exploratory development environments provide rapid turnaround for building large applications by iterative evolution [»goldA_1986]

Subtopic: extensible up

Topic: extensible languages
Topic: language flexibility
Quote: goal of extensible languages was to extend a base language into a natural representation for data, operations, and control of an application
Quote: language extensibility is the graceful enhancement of a base language; unlike compilation's extreme transformation [»elsoM_1973]
Quote: full extensibility is impossible because there is nothing to build on [»browPJ_1974]
Quote: PPL failed as an extensible language because the base language was preserved in the extensions [»stanTA12_1971]
Quote: lesson of extensible languages: no simple statement to an unknowledgeable computer can alter its behavior in major ways [»stanTA12_1971]
Quote: an orthogonal extension to a language normally requires surgery on its underlying guts [»stanTA6_1975]
Quote: users need a large amount of effort and knowledge to extend a language significantly [»stanTA12_1971]
Quote: original goal for ML was a natural-like language for all computer interaction [»spooCR4_1986]
Quote: the true contraction of reference is machine code; a language should be an expansion of reference; unlike VHLLs [»cbb_1980, OK]

Subtopic: thesaurus up

Topic: words defined by words
Quote: a word is in a language if, through that language, we can understand the word [»cbb_1973, OK]
QuoteRef: cbb_1973 ;;4/18/76 Bob Boeri: define the language in terms of itself, like a dictionary
QuoteRef: cbb_1973 ;;3/7/79 Purna is not based on reduction. There is no meaning attached to a sequence other than the sequence itself.
QuoteRef: hehnEC7_1975 ;;28 writes example programs very much like language programs [MERLIN]

Subtopic: efficiency up

Topic: efficiency
Thesa shares FORTRAN's emphasis on production programming in cost-conscious environments. Thesa systems provide local resource efficiency, efficient procedure representation and an efficient user interface, while the user organizes his programs for global efficiency. Instead of providing a general purpose machine, Thesa provides the user a database particularly tuned to his needs. (cbb 5/80)
Quote: flexibility and efficiency are fundamentally in conflict

Subtopic: understanding up

Topic: understanding systems
Topic: localized understanding
Topic: spatial vs. temporal representation
Topic: uniform language systems
Quote: a stable pidgin uses phrase-like formulas for the description of new concepts, e.g., 'smoke eat thing' for 'pipe' [»sebbM_1997]
Quote: understanding: there are many ways to say or do something, but all are the same [»browGS_1972]
Quote: novice users are surprised at the effort needed to get a program to work [»instrumentcontrol]
Quote: a complete language does not depend on other languages for its semantics [»backJ_1973, OK]
Quote: a language should be designed around a single, uniform metaphor [»ingaDH8_1981a]
Quote: a system should be built with a minimum set of unchangeable, generalized parts in a uniform framework [»ingaDH8_1981a]
Quote: ZOG integrates a system by imposing a single, uniform data model: frames [»akscRM5_1984]
Quote: keyword search is not precise and programming languages do not communicate

Subtopic: primitives up

Note: Thesa's programming language is its numeric opcodes; a machine language for high-level languages [»cbb_1990, OK]
Note: Thesa is a high-level representation of assembly language code [»cbb_1990, OK]
Note: opcodes define a language; a portability layer [»cbb_1990, OK]

Subtopic: conditionals up

Note: define conditional statements from conditional gotos using a Branch argument [»cbb_2000, OK]
Note: a branch parameter is a code offset into an activation record [»cbb_2000, OK]

Subtopic: demonstration up

Quote: presenting Echokey took too much time without getting users; maybe sell it inexpensively to end users [»cbb_1980, OK]

Subtopic: history up

Note: initial conversion of Thesa's editor to Windows
[»cbb_1990, OK]

Group: Thesa programming system up

Topic: data types in Thesa (92 items)
Topic: implementation of Thesa data objects (27 items)
Topic: managing a Thesa database (34 items)
Topic: primitive data types for Thesa (82 items)
Topic: Thesa as a database of modules (23 items)
Topic: Thesa compiler and loader (23 items)
Topic: Thesa data model (58 items)
Topic: Thesa data structures (59 items)
Topic: Thesa's primitive operations (45 items)
Topic: Thesa's user interface (8 items)
Topic: using pointers in Thesa
(49 items)

Related Topics up

ThesaGroup: entries related to compiling   (0 topics, 5 quotes)
ThesaGroup: Thesa   (14 topics, 631 quotes)
Group: goals for a programming system   (21 topics, 983 quotes)
Group: program representation   (25 topics, 659 quotes)
Group: systems   (17 topics, 530 quotes)

Topic: defensive programming (22 items)
Topic: efficiency (96 items)
Topic: non-constraining system (25 items)
Topic: pidgin and creole languages (31 items)
Topic: pointer machines (17 items)
Topic: programming with natural language (27 items)
ThesaTest: test Thesa's primitives
Topic: understanding systems
(48 items)

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