Topic: data types in Thesa
Topic: implementation of Thesa data objects
Topic: managing a Thesa database
Topic: primitive data types for Thesa
Topic: Thesa as a database of modules
Topic: Thesa compiler and loader
Topic: Thesa data model
Topic: Thesa data structures
Topic: Thesa's primitive operations
Topic: Thesa's user interface
Topic: using pointers in Thesa
ThesaGroup: entries related to compiling
ThesaGroup: Thesa
Group: goals for a programming system
Group: program representation
Group: systems
Topic: defensive programming
Topic: efficiency
Topic: non-constraining system
Topic: pidgin and creole languages
Topic: pointer machines
Topic: programming with natural language
ThesaTest: test Thesa's primitives
Topic: understanding systems
| |
Summary
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
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
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
Group: goals for a programming system
The main goals of a programming system are efficiency, simplicity, and reliability.
| Subtopic: flexibility
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
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
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
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
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
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
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
Quote: presenting Echokey took too much time without getting users; maybe sell it inexpensively to end users [»cbb_1980, OK]
| Subtopic: history
Note: initial conversion of Thesa's editor to Windows [»cbb_1990, OK]
|
Group: Thesa programming system
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
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)
|