Map
Index
Random
Help
Group
th

Group: goals for a programming system

topics > computer science > Group: programming



Topic:
abstraction in programming
Topic:
declarative vs. procedural representation
Topic:
design for change
Topic:
efficiency
Topic:
error safe systems
Topic:
handling complexity
Topic:
incremental development
Topic:
language flexibility
Topic:
localized understanding
Topic:
machine independent programming
Topic:
minimal language systems
Topic:
no need for efficiency
Topic:
non-constraining system
Topic:
orthogonal extension and cartesian products
Topic:
resourceful, redundant systems for reliability
Topic:
reusable programming
Topic:
software portability
Topic:
spatial vs. temporal representation
Topic:
understanding systems
Topic:
uniform language systems
Topic:
vivid representation of programs
Group:
program design
Group:
systems
Group:
Thesa programming system

Topic:
ease of learning
Topic:
ease of use
Topic:
extensible languages
Topic:
hardware vs. software
Topic:
interactive response time
Topic:
open systems
Topic:
program source as truth
Topic:
programming language design
Topic:
software components
Topic:
software tools
Topic:
source-rich system
Topic:
symbolic representation

Summary

The main goals of a programming system are efficiency, simplicity, and reliability. Efficiency covers a broad area because of a system's many clients. Programs should be quick to design, write, execute, test, use, understand, modify, and port. Much of efficiency and reliability comes from simplicity of representation. The representation should be uniform, modular, reusable, self-documenting, and shallowly nested. Since programs simulate reality, the representation should be clearly related to reality. (cbb 12/89)
Subtopic: bugs up

Quote: programming is difficult because it is almost impossible to avoid blunders; main difficulty in using computers [»glenAE2_1953]

Subtopic: throughput vs. learning new things up

Quote: the paramount goal for users is throughput; this conflicts with learning new procedures for doing things [»carrJM_1987]
Quote: a programming language should plan for growth; start small; a pattern for defining patterns for real work [»steeGL10_1998]
Quote: small languages such as Scheme and Pascal are insufficient for today's world of graphical interfaces, mobile code, client/server, multithreaded, and multi-language [»steeGL10_1998]

Subtopic: efficient use, speed, and change up

Quote: rules for a minimalist UI -- no wasted actions, no retyping, automation, defaults; smallest actions do the most useful things; no pop-up menus, no keyboard necessary [»pikeR6_1991a]
Quote: Cedar goal of under five seconds for minor program changes; makes programming think-bound [»teitW3_1985]
QuoteRef: bateD_1976 ;;23 Hunke: minimum human effort to use, min. machine effort to perform, min effort to change, min. perturbation (robustness-even to overwrites)
Quote: users should only pay for what they use; overhead should be minimal [»maclBJ_1987]
Quote: the primary purpose of a programming language is to help the programmer [»hoarCA_1974]
Quote: C++ is a general purpose programming language for enjoyable programming by serious programmers [»stroB_1991]
Quote: a programming language must be useful to the average programmer using an average computer [»stroB_1994]
Quote: most programming is mundane; done on low-powered computers with dated operating systems and tools
Quote: in 30 years, the size of software increased less than 100x while computing power increased 1,000,000x [»holzGJ11_2002]
Quote: should a programming language be small (easy to learn) or large (easy to use)? [»steeGL10_1998]

Subtopic: understanding up

Quote: software characteristics: understand, complete, concise, portable, consistent, maintain, test, use, reliable, structured, efficient [»boehBW_1978]
Quote: Simula designed as a language for system description, understanding, and simulation [»nygaK10_1986]
Quote: a program should be abstract, structured, modular, concise, and verifiable [»chinRS3_1991]
Quote: even though software is correct and efficient, it may be difficult to understand, modify, use, and integrate [»boehBW_1976]
Quote: a programming language should bridge the gap between ideas and computational primitives [»stroB_1994]
Quote: raising the level of programming should be the single most important goal of a language. It has a large effect on productivity

Subtopic: communication up

Note: want a rich language for expressing program+data, i.e., bits; both programs and data are easy, it is the rich language that is hard [»cbb_1990, OK]
Quote: programming languages are communication media with computers; semantics should be similar [»wirtN1_1966]
Quote: Zuse envisaged a universal language for conversing with computers; Esperanto was too colloquial and Carnap's ideas were too mathematical; need something in between [»zuseK_1984]
Quote: a thought that seems primitive in our minds is not primitive in a programming language [»steeGL10_1998]

Subtopic: simplicity and reliability up

Quote: do not lose information [»cbb_1990, OK]
Quote: a system should be simple, reliable, and honest
Quote: PL360 is a simple, readable, recursive, symbolic machine language for IBM 360 computers; improves program structure and style [»wirtN1_1968]
Quote: design and development are a series of decisions; effect later decisions [»parnDL8_1971]
Quote: Tcl can define a button with a single line. The same button takes 7 lines of code in Java and 25 lines in C++/MFC [»oustJK3_1998]
Quote: it is hard for a program to guarantee uniqueness, data type consistency, and initialization [»stroB_1994]
QuoteRef: wegbB_1971 ;;255 basic ideas- extension mechanisms, sustained variability (i.e. can modify system behavior), bootstrapping, uniformity
Note: a programming language should minimize conditional code; e.g., Turing machines are all conditional [»cbb_1990, OK]

Subtopic: all of the above up

Quote: a design should be well structured, simple, efficient, adequate, flexible, practical, implementable, and standardized [»parnDL8_1985]
Quote: Dylan aimed for interactive development like Lisp or Smalltalk, while generating small, fast programs like static development environments; combine flexibility with efficiency [»dumaJ6_1995]
QuoteRef: dod12_1977 ;;40 general design criteria: generality only as needed, reliability, maintainability (read more important than write), efficiency, simplicity, implementability, machine independence, formal definition.
QuoteRef: rossDT5_1975 ;;17 goals of software engineering: modifiability, efficiency, reliability, understandability
QuoteRef: rossDT5_1975 ;;17 important principles: modular (small independent pieces) abstraction (just essential properties), hiding (making inessential information inaccessible), localization (related items in same place), uniform, complete (all cases), conformability, [p.19] hierarchical decomposition
Note: the goals of a programming system are size, speed, cycle time, and understandability

Subtopic: other goals up

Quote: include freedom from bias among the criteria used to judge a system; helps avoid injustices [»frieB7_1996]
Note: goal is a radical improvement in code generation using a publicly developed database [»cbb_1990, OK]


Group: goals for a programming system up

Topic: abstraction in programming (67 items)
Topic: declarative vs. procedural representation (54 items)
Topic: design for change (76 items)
Topic: efficiency (96 items)
Topic: error safe systems (76 items)
Topic: handling complexity (60 items)
Topic: incremental development (74 items)
Topic: language flexibility (34 items)
Topic: localized understanding (43 items)
Topic: machine independent programming (13 items)
Topic: minimal language systems (12 items)
Topic: no need for efficiency (28 items)
Topic: non-constraining system (25 items)
Topic: orthogonal extension and cartesian products (11 items)
Topic: resourceful, redundant systems for reliability (38 items)
Topic: reusable programming (77 items)
Topic: software portability (43 items)
Topic: spatial vs. temporal representation (21 items)
Topic: understanding systems (48 items)
Topic: uniform language systems (25 items)
Topic: vivid representation of programs
(22 items)

Related Topics up

Group: program design   (13 topics, 454 quotes)
Group: systems   (17 topics, 530 quotes)
Group: Thesa programming system   (11 topics, 561 quotes)

Topic: ease of learning (38 items)
Topic: ease of use (47 items)
Topic: extensible languages (71 items)
Topic: hardware vs. software (15 items)
Topic: interactive response time (32 items)
Topic: open systems (33 items)
Topic: program source as truth (17 items)
Topic: programming language design (53 items)
Topic: software components (11 items)
Topic: software tools (20 items)
Topic: source-rich system (27 items)
Topic: symbolic representation
(26 items)


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