Squeak: tools for generating machine code

Mark Guzdial guzdial at cc.gatech.edu
Mon Jan 4 17:17:26 UTC 1999


I'm digging into it now.  I'm making up the class assignments for the
quarter today, in fact.

Mark

>Paul --
>
>All this sounds very interesting. What do you say Mark?
>
>Cheers to all,
>
>Alan
>
>----
>
>At 7:32 PM -0000 1/2/99, Paul Fernhout wrote:
>>=== FORWARDED MESSAGE from Norman Ramsey <nr at cs.virginia.edu> ====
>>
>> > Perhaps Squeak
>> > might be able to leverage this work for native code generation (and
>>to
>> > make Squeak independent of C).
>> >
>> > http://www.cs.virginia.edu/~nr/toolkit/
>> > "The New Jersey Machine-Code Toolkit...
>> > This work is in ML, but why not Squeak?
>>
>>I would be happy to work with some Smalltalk programmers to arrange
>>for the Toolkit to be able to emit Smalltalk.  A complete
>>re-implementation of the Toolkit in Smalltalk or Squeak is not really
>>necessary, and it may not represent the best possible use of
>>programmers' time...
>>
>> > I'm not sure what the licensing terms are for these works.
>>
>>Free for any purpose.
>>
>>Norman Ramsey
>>
>>===================== END FORWARDED MESSAGE ==================
>>
>>Squeakers -
>>
>>Norman Ramsey <nr at cs.virginia.edu> asked me to forward the above
>>message to the list for him (since he's not on it).
>>
>>Some more background:
>>The The New Jersey Machine-Code Toolkit he and Mary Fernández developed
>>is a very large effort and consists of code, data, and several hundred
>>of pages of documentation. It includes specifications for MIPS, SPARC,
>>Alpha, PPC, and Pentium processors. There are extensive tools with
>>source to take those specifications to generate code (right now in C and
>>Modula-3) for machine language interpreters, disassemblers, and more.
>>The toolkit is written in a combination of Icon and Standard ML.
>>
>>I've spent the morning looking through this work and there is a lot
>>there. Rather than rewrite the tool that takes the specifications and
>>generates code from them in Squeak, Norman proposes adding support to
>>the toolkit to generate Smalltalk, which could then be used directly in
>>various Squeak tools.
>>
>>They write in their manual (Page 2):
>>> The toolkit currently has rudimentary support for multiple languages. >
>>>For decoding applications, this support actually works;
>>> we use it both for C and for Modula-3. The support for encoding
>>> applications is only partly in place; there are lots of little C-isms
>>> lurking around the declarations of encoding procedures and the
>>> results of typed constructors, and there is only one version of
>>> the toolkit's library, which is written in C.
>>> We would be pleased to try to support users interested in other
>>> languages. We would probably ask such users to develop the library
>>> support, since that is a fairly straightforward and separable task.
>>> We would tackle the details of making the generator
>>> truly support multiple languages.
>>
>>I probably won't have much time in the near future to help with this
>>(being tied up right now with Embedded Squeak), but perhaps someone else
>>on the list does?
>>
>>To start small, it could be a great learning experience (maybe for one
>>of Mark Guzdial's CS students?) to help Norman modify the toolkit to
>>create a CPU simulator in Smalltalk like the one described here:
>>http://www.cs.virginia.edu/~nr/toolkit/examples/xs/xs.html
>>as well as Squeak GUI tools for assembly / dissassembly for it.
>>
>>Another fun application of the toolkit once that worked would be giving
>>Squeak a disassembler as a "telescope" for looking at the computing
>>world around it (as well as a "microscope" for examining its own VM
>>code). From there it might be a short(?) step to having Squeak assemble
>>(and run) its own machine code for those platforms.
>>
>>-Paul Fernhout
>>Kurtz-Fernhout Software
>>=========================================================
>>Developers of custom software and educational simulations
>>Creators of the GPL Garden with Insight(TM) garden simulator
>>http://www.kurtz-fernhout.com/squeak


--------------------------
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280
(404) 894-5618 : Fax (404) 894-0673 : guzdial at cc.gatech.edu
http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html





More information about the Squeak-dev mailing list