Raul.Valdes-Perez@B.GP.CS.CMU.EDU.UUCP (02/24/87)
[Forwarded from the CMU bboard by Laws@SRI-STRIPE.]
This posting is the result of the query for metaphors that underlie
programming languages. Everything onward from (14) was compiled from
suggestions. The items upto (13) were the original ideas.
METAPHOR LANGUAGE
1. function application (lambda calculus) Pure Lisp
2. variable assignment Fortran
3. message-passing Smalltalk
4. set manipulation SETL, relational databases
5. modus ponens Prolog
6. array manipulation APL
7. constraints spreadsheets
8. rewriting production systems
9. window manipulation window managers
10. algorithm manipulation (?!) Lenat's dissertation (AI)
11. resolution resolution theorem provers
12. string manipulation SNOBOL
13. states (and transitions)? graphs?
14. List processing is a metaphor for Lisp & IPL-V
15. Does LOGO have a metaphor? [A metaphor for the graphical part of LOGO
is a moving turtle. - RVP]
16. "... metaphors involved in user interactions and the influence they
have on system design. (There is a session on metaphors at the
SIGCHI in April)"
Desktop metaphor
Electronic Book metaphor
Rooms metaphor (a method of organizing windows dealing with a
particular application into a class of windows. e.g. mailroom)
Overlay or transparency metaphor
Hierarchical metaphor
Network metaphor (Zog or Notecards are systems that use this
metaphor)
17. File [stream?] manipulation is a metaphor in UNIX.
18. Patterns in Snobol-4.
19. Type inference ML
Dataflow ID (Arvind)
Concurrent programming CSP, Linda, Multilisp
Structured programming (iffy) Pascal
20. Couple of relevant papers: "The Scientific Community Metaphor" by
Kornfeld & Hewitt, IEEE Trans. on Systems, Man, & Cybernetics Jan 81;
"Metaphor and the Cognitive Representation of Computing Systems" by
Carroll & Thomas, same journal, Mar/Apr 82.