=== Top of the Swiki === Attachments ===
Papers and Articles
NCITS J20 DRAFT of ANSI Smalltalk Standard revision 1.9
The Squeak community might find Eric Raymond's The Cathedral and the Bazaar essay instructive. Raymond contrasts two different collaborative freeware development models: the GNU model (cathedral), the Linux model (bazaar). He writes about why Linux is succeeding, and what personality traits are needed to build free software in a distributed collaborative environment. -- ElizabethHanesPerry
The top officers at Netscape credit this document with helping them decide to open their development model. -- JeremiahFass
There is now also a second paper Homesteading the Noosphere that discusses the property and ownership customs of the open source culture. This too has implications towards how we decide to manage Squeak development. -- John Dougan
Project DIGITALIS is a Digital Information System for Smalltalk users which contains much information about different Smalltalk systems (including Squeak, ST/MT, VA, VW, ...) as Online Books and Tutorials. Feel free to read or help the author (Cronos) to extend Digitalis. http://www.phaidros.com/DIGITALIS/
A Report on Interpreted Programming Languages by Xiaoli Zhang & Helen Wong
An object meta-level architecture for Smalltalk which features decomposition by logical behaviour as its primary design guideline. Papers on this and related topics by JeffMcAffer are at http://web.yl.is.s.u-tokyo.ac.jp/members/jeff/research/coda.html
FrançoisPachet offers the following knowledge representation systems implemented in Smalltalk. Code and papers at (http://www-laforia.ibp.fr/~fdp/)
- NéOpus: rules and object inferencing
- MusES: tonal music representation
- EpiTalk: generates advice and plan recognition
- BackTalk: constraint satisfaction and objects
Bytesmiths Smalltalk Publications: articles from The Smalltalk Report at http://www.bytesmiths.com/pubs/
Smalltalk language extensions:
Smalltalk history. Interesting papers and sites:
- David M Harland, Hamish I E Gunn, Ian A Pringle, Bruno Beloff; The Rekursiv: An Architecture for Artificial Intelligence; AI / EUROPA Conference September 1986.
- David M Harland, Bruno Beloff; Microcoding an Object-Oriented Instruction Set; ACM/SIGARCH October 1986.
- David M Harland, Bruno Beloff; Objekt: A Persistent Object Store with an Integrated Garbage Collector; ACM/SIGPLAN April 1987.
- http://www.spies.com/aek/alto/index.html Xerox Alto Archive. Downloadable copies of most original Alto documentation; no Smalltalk specific documents.
- Dan Ingall's classic paper "The Smalltalk-76 Programming
System: Design and Implementation" from the Fifth Annual ACM Symposium
on Principles of Programming Languages, January 1978 http://users.ipa.net/~dwighth/smalltalk/St76/Smalltalk76ProgrammingSystem.html
S P A C E W A R Fanatic Life and Symbolic Death Among the Computer Bums
by Stewart Brand http://www.wheels.org/spacewar/stone/rolling_stone.html
This is the famous "Rolling Stone" article about Xerox PARC from 1972
The Xerox "Star": A Retrospective http://www.geocities.com/SiliconValley/Office/7101/retrospect/index.html
Alan Kay: The Computer Revolution Hasn't Happened Yet!
Alan Kay: Software Design, the Future of Programming and the Art of Learning
Educom Review March/April 99
Wired brings together two legendary minds: Alan Kay and Danny Hillis.
Revealing the Elephant: The Use and Misuse of Computers in Education
Alan Kay: Powerful Ideas Need Love Too!
The Way We Were
A bicycle for the mind:
A 1988 paper by Andreas Gündel (then at University of Dortmund) on implementing message sends with access control between distributed Smalltalk systems: http://www.heeg.de/~georg/guendel.htm Yes, we've been doing this kind of stuff long before Java was even thought of...
A 1998 article in Wired magazine about Squeak, including discussion with Alan Kay, Dan Ingalls, Tim Rowledge, and Mark Guzdial. http://www.wired.com/news/technology/0,1282,16833,00.html
Brian Foote, Ralph Johnson; Reflective Facilities in Smalltalk-80 (OOPSLA '89) (http://laputa.isdn.uiuc.edu/ref89/ref89.html)
Most of StephenPope's papers on the DoubleTalk
Simula and Smalltalk: A Social and Political History (http://www.cs.washington.edu/homes/brd/history.html)
[I find this paper to be a bogus politicial interpretation of history from afar. Sort of like a Marxist interpretation of a college football game. Don't waste your time. --Ted Kaehler]
Information of interest and possible value to the future development of Squeak toward the blue plane (Blue plane defined: Place in the Universe). This can include websites, papers, articles, books, research topics, random thoughts.
- The Art of the Metaobject Protocol; Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow, MIT Press, 1991, ISBN 0-262-61074-4.
- Object-Oriented Programming: The CLOS Perspective; Andreas Paepcke ed., MIT Press, 1993, ISBN 0-262-16136-2.
Matthew Fuchs, PhD., now works for Walt Disney Imagineering in the Virtual Reality Lab. Of special interest is his approach to GUI design and programming using a continuation passing style ("contexts" in Smalltalk) to avoid fragmenting programs and logic flow caused by normal event oriented GUI programming. Escaping the event loop: an alternative control structure for multi-threaded GUIs http://cs.nyu.edu/phd_students/fuchs
Metaobject Protocols. Papers and related sites: http://www.parc.xerox.com/spl/projects/mops
Aspect-Oriented Programming: http://www.parc.xerox.com/csl/projects/aop/
Computational Reflection and Meta-level Architectures:
Programming Technology Lab (PROG), Vrije Universiteit Brussel
OO language based on late binding (via message passing), pure (i.e. mixin-based) inheritance and object-based encapsulation. Agora (below) takes a similar approach. (http://progwww.vub.ac.be/pools/lens)
Reflective, prototype based, object oriented programming language, based wholly on message passing. Has a syntax rather like Smalltalk but approaches creating objects, inheritance, etc., very differently. (http://progwww.vub.ac.be/pools/agora)
- Smalltalk: Agora94.
- C++: Agora96.
- Java: Agora98.
- Scheme: Agora-S.
Interesting GUI approaches:
Tunes project, Paris, France. Reviews of Operating Systems, Programming Languages, and very many related concepts. Has over 1,000 links to resources. See DavidManifold
Programming by Example
In computer interfaces, users must often do the same or similar sequences of operations repeatedly, sometimes in different situations. If computers are so good at repetition, why are users the ones who keep repeating things?
"Programming by example", or "programming by demonstration", is a method to teach computers new behavior by demonstrating actions on concrete examples. The system records user actions and generalizes a program that can be used in the original and new examples.
How easy are some SqueakPorts? NetBsdSourceCode
A number of people have discussed the meaning of getSystemAttribute. Here are the suggestions so far:
In a recent posting, John Maloney writes: "Regarding accessing primitives by name, I don't think it is that difficult to use the current integer-numbering scheme, especially if we set up some kind of registry for primitive numbers..."
Those developers interested in writing their own primitives should take a look at Stephen Pope's "Do-it-Yourself Guide to Squeak Primitives" at http://www.create.ucsb.edu/squeak/DIYSqPrims.html.
Some suggestions from the prior generation of implementors may apply to Squeak. Still, their insight is worth noting.
Being so portable, Squeak is sure to run into many platform pecularities:
Delayed Code Generation in a Smalltalk-80 Compiler by Ian Piumarta -- generating native machine code from Smalltalk -- the 68020 is used as an example (note: this paper is in Postscript and cannot be properly viewed or printed by Ghostscript but will print fine on a Postscript printer) http://www-sor.inria.fr/publi/DCG_piumarta-thesis.html
Replication-based garbage collection.
Some representative papers:
- Scott Nettles, James O'Toole, David Pierce, Nicholas Haines; Replication-Based Incremental Copying Collection; September 1992.
- Scott Nettles, James O'Toole; Real-Time Replication-Based Garbage Collection; June 1993.
- Scott Nettles, James O'Toole; Implementing Orthogonal Persistence: A Simple Optimization Based on Replicating Collection; December 1993.
- James O'Toole, Scott Nettles, David Gifford; Concurrent Compacting Garbage Collection of a Persistent Heap; December 1993.
- More: http://www.psrg.lcs.mit.edu/publications.html
Object Systems Group
Bibliography. Large number of online papers covering wide range of OOP topics and issues. Of special interest to Smalltalk VM hackers:
- Jan Vitek, Compact Dispatch Tables for Dynamically Typed Programming Languages.
- Jan Vitek, R. Nigel Horspool, Compacting Dispatch Tables for Dynamically Typed Object Oriented Languages.
- Karel Driesen, Urs Hoelzle, Jan Vitek, Message Dispatch on Pipelined Processors.
- Jan Vitek, R. Nigel Horspool, Taming Message Passing: Efficient method lookup for dynamically typed object-oriented languages.
MaryBeth Rossen and John Carroll
A number of papers on smalltalk garbage collection theory in Visualworks can be found at http://www.smalltalkconsulting.com/papers/papersandpresentations.html
The Behavior of Behavior
An old OOPSLA tutorial that has been requested by a few people.