Mario wrote:
> James, Antero or Ivan could supply more details.
I think that most of the papers (certainly a majority) are new. To
whet your appetite, here is the table of contents. The book is with
the publisher --- I'll let you know when it is availible.
Foreword vii
David Ungar
Preface ix
Contributors xv
Introduction xix
PART I : Concepts and History 1
Classes vs. Prototypes: Some Philosophical and Historical Observations 3
Antero Taivalsaari
Classifying Prototype-based Programming Languages 7
Christophe Dony and Jacques Malenfant and Daniel Bardou
The Stripetalk Papers: Understandability as a Language Design Issue
in Object-Oriented Programming Systems 47
Thomas R.G. Green and Alan Borning and Tim O'Shea and
Moina Minoughan and Randall B. Smith
Classes versus Prototypes in Object-Oriented Languages 63
Alan Borning
PART II : Languages 75
Programming as an Experience: The Inspiration for Self 77
Randall B. Smith and David Ungar
NewtonScript: Prototypes on the Palm 109
Walter R. Smith
The Prototype-Instance Object Systems in Amulet and Garnet 141
Brad A. Myers and Rich McDaniel and Rob Miller and
Brad Vander Zanden and Dario Giuse and David Kosbie and
Andrew Mickish
Omega: Statically Typed Prototypes 177
Gunther Blaschek
PART II : Research and Applications 197
Self includes: Smalltalk 199
Mario Wolczko
Using Prototypes for Program Restructuring 217
Ivan Moore
Prototype-Based Programming for Abstract Program Visualisation 231
James Noble
Agora: The Scheme of Object-Orientation,
or, the Simplest MOP in the World 247
Wolfgang De Meuter
Afterword 273
Dave Thomas
Bibliography 281
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
> I just started a Linux/i386 port of Self 4.0.
BZ! Keep at it; please let us know when you have a working port.
>
> Next, I wrapped the GNU assembler into the Self kind of object
> oriented shell, in order to generate i386 code. This already
> compiles. I already changed about 30% of NIC to generate i386
> code.
>
Woohoo! Will you have the linux self available from a web site? How can
we get your port when finished?
thx, Doug Auclair
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
nobody(a)nowhere.org (Mario) wrote:
>
> Jecel wrote:
> > I think Mario's Smalltalk simply ignores cascades.
>
> No, it handles them, using blocks.
> A revised version of the paper I presented at the prototypes workshop
> at OOPSLA (96?) ("Smalltalk includes: self")
> is to appear in the forthcoming (imminent?) book on prototype-
> based programming edited by Noble, Taivalsaari and Moore, and contains
> details of the various transformations.
Ooops - I reread the smalltalk.ps document and saw that cascades
aren't mentioned at all. I guess I was thinking of non-lifo blocks,
but I see that even they are supported (though not transparently).
Will this book be the proceedings of the workshop or will it be
something new? In either case, I look forward to reading it.
-- Jecel
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
Gordon(a)Cichon.de wrote:
> I am so terribly fed up with C++, I really would like to
> write real programs in a better programming language.
> Fortunately, the source code of Self is publicly available :-)
Good choice!
> I just started a Linux/i386 port of Self 4.0.
This is an interesting trend. In the mid 90s, there were several people
working on Self-like languages - Self itself was considered to be some
kind of ideal that could not be reached by mere mortals, or like a good
idea that could be greatly improved upon, depending on the particular
group. Now, almost four years after the release of Self 4.0, the
language seems both good enough and implementable so that there are
at least six groups working to port it!
> I still have some doubts whether I understand the Sparc stack
> frame right. I was not able to obtain a Sparc documentation on
> the web, and I still do not understand, when and where Sparc
> saves its register windows on the stack. Especially, there are
> 24 entries reserved on the stack for the register window while
> there are only 16 registers saved to my knowledge (8 incoming
> + 8 local). Is anybody out there who could help me with the
> details of Sparc register window architecture?
The Sparc references that Jochen Schneider gave will probably really
help, here. But, just to give you a hint, the SAVE instruction
switches to the next register window after a call while the RESTORE
instruction switches back to the previous window before a return.
But the number of register windows is limited (and varies between
different Sparc implementations), so either a SAVE or RESTORE
instruction might cause a trap indicating an invalid window. The
trap will save the registers of some other window to the actual
memory stack and mark this window as valid so the SAVE can work.
So the code for moving registers to/from memory is hidden in the
trap.
"grepping" through the source code, I didn't find any references to
24 reserved entries.
> I think, it is also going to be hard work to change SIC to
> a two-address machine with little registers. It would be nice
> to switch off SIC completely until NIC runs. Unfortunately
> the ´SIC_COMPILER´ define does not work well for this purpose
> and leaves a lot undefined symbols especially in recompiler.c.
> Well, I think that even a not register optimized SIC that does
> inlining would still be nice to run Self on i386.
You can leave the SIC in but set things up so that it is never
invoked. Hmmm... I can't seem to find out how you would do that
(_PrintOptionPrimitives didn't help at all).
Given the speed of current Intel machines, Self would probably run
acceptably even with only the NIC. And while it is true that the
SIC was designed with lots of registers in mind, I am sure that it
could be adapted to the x86 since the gcc was too.
Some background for those reading this who aren't familiar with the
Self implementation: all code is compiled to native Sparc machine
language the first time it is invoked by the Non Inlining Compiler
(NIC). This compiler embeds some counters in this code, and if it
is detected that this method is critical to system performance, then
it is recompiled by the slower (but better) Simple Inlining Compiler
(SIC). This allows the system to remain highly interactive while still
generating high quality code where it matters most. There are a lot
of papers about this.
-- Jecel
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
> Since the Self license allows modification and redistribution of
> the Self code (please correct me if I�m wrong), I intend to put
> the stuff under GPL.
>
I urge you to go to www.opensource.com and check out the other
licenses besides the GPL.
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
That would be way cool, Self on a PC. Keep up the good work, Gordon!
Another project done by an angry programmer ...
By the way, there is a repository of technical information on SPARC CPUs
under http://www.csn.net/~bediger/sparc.tech.links.html. One of the
reports seems to talk about register windows.
Jochen
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
Hi all,
I am so terribly fed up with C++, I really would like to
write real programs in a better programming language.
Fortunately, the source code of Self is publicly available :-)
I just started a Linux/i386 port of Self 4.0.
After some problems generating the include file stuff, I am
able to compile the stuff under Linux. (The signal stack stuff
is not going to work until Kernel 2.2, though). First, I did
not care about the Sparc code generation stuff. The Self parser
seemed to work then, and the system also survived the initial
scavenge. I got through to the Self VM prompt. The Self parser
complained about syntax errors, and as soon as I entered correct
Self expressions, it started to generate Sparc code.
Next, I wrapped the GNU assembler into the Self kind of object
oriented shell, in order to generate i386 code. This already
compiles. I already changed about 30% of NIC to generate i386
code.
I still have some doubts whether I understand the Sparc stack
frame right. I was not able to obtain a Sparc documentation on
the web, and I still do not understand, when and where Sparc
saves its register windows on the stack. Especially, there are
24 entries reserved on the stack for the register window while
there are only 16 registers saved to my knowledge (8 incoming
+ 8 local). Is anybody out there who could help me with the
details of Sparc register window architecture?
I think, it is also going to be hard work to change SIC to
a two-address machine with little registers. It would be nice
to switch off SIC completely until NIC runs. Unfortunately
the ŽSIC_COMPILERŽ define does not work well for this purpose
and leaves a lot undefined symbols especially in recompiler.c.
Well, I think that even a not register optimized SIC that does
inlining would still be nice to run Self on i386.
Since the Self license allows modification and redistribution of
the Self code (please correct me if IŽm wrong), I intend to put
the stuff under GPL.
Gordon.
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com
Dru Nelson wrote:
>Where is a good reference on Self maps?
I used the paper Chambers, Ungar and Lee, "An Efficient Implementation of
SELF, [...]", 1991. Another source might be the source code of the VM
itself.
>Also, the grammar talk and implementation talk has been
>interesting. Keep it up.
Thanks. I was already fearing that Jeccel and I were the only subscribers.
Now I know where're at least three :-)
bye
--
Stefan Matthias Aust // Are you ready to discover the twilight zone?
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com