I don't think the approaches are that much different, except the design choice to build the compiler in Smalltalk versus C# offers the ability to support both a scripting model and an image-based model. It also makes the AST available as Smalltalk objects in addition to .NET reflection. I haven't seen much about what the DLR does outside of a scripting context but it seems to me you would need wrappers for all the hosted objects. The scripting model model is necessary in any case, if you want to allow fileins.

In my opinion the Smalltalk image and the .NET application domain are very similar concepts, although existing .NET tools don't emphasize that much. The DLR seems to address that, but it shouldn't matter what language it's written in. If there are MS scripting services that are already built in C# it should be straightforward for them to call .NET objects written in Smalltalk.

Smalltalk's incremental approach is much more flexible, and I think this is why most people don't do "scripting" in Smalltalk. IMHO, the best approach to support a development community is to build the best possible tools for yourself and make them available to whoever wants to use them. I wouldn't want to second-guess that people want something that I'm not happy with. The more mainstream tools are also 20+ years old and a lot of the reasons they are the way they are is because that's how they've always been, if you know what I mean :-)

Most of the work is done already in #Smalltalk so it makes sense to me to start there. I'm not familiar with the parser generator and tokenizer tools for .NET - do IronPython and IronRuby use some equivalent of yacc and lex (aka bison and flex)? By all accounts the ruby parser is particularly nasty, but the Smalltalk syntax should be much easier to deal with. The SmaCC grammar should be possible to port if you think that's a superior approach.

Steve

2008/8/19 Gary Short <gary@garyshort.org>

The way I envisaged this progressing was to proceed much like they did with IronPython; creating a tokenizer, a parser and an AST. I would also envisage moving away from an image based model to a file based model. I'm sure there are many out there who see this a blasphemy but I always saw this as an impediment to Smalltalk being taken up by the general programming population, even as far back as Smalltalk /V I saw this problem with me fellow devs.

 

As always, comments welcome.

 

Regards,

Gary

http://www.garyshort.org

 

 

From: uksmalltalk-bounces@lists.squeakfoundation.org [mailto:uksmalltalk-bounces@lists.squeakfoundation.org] On Behalf Of Robert Johnson
Sent: 18 August 2008 04:28
To: UK Smalltalk events
Subject: Re: Whats happening with IronSmalltalk ?

 

Sorry I haven't communicated sooner but I am fighting off a cold.

Gary I definitely have time to work on this project starting next week.

I think agree with Steve when he says: "The easiest way to get this up and running would probably be to have a look at SmaCC and #Smalltalk"

Why reinvent the wheel when there is a working model to create a baseline for an IronSmalltalk implementation. I have been in contact with one of the authors of #Smalltalk and he was great about answering a few questions.  Tomorrow I am going to take another look at the #Smaltalk code and implementation.

I'm open to any other Ideas that you and Steve ma have.

Robert



On Sat, Aug 16, 2008 at 12:15 PM, Steve Wart <steve.wart@gmail.com> wrote:

I took a look at the latest snapshots of the IronRuby code from svn://rubyforge.org/var/svn/ironruby but I wasn't able to build it this time.

There's an in-depth article about the DLR and IronPython at http://msdn.microsoft.com/en-us/magazine/cc163344.aspx. Python builds nicely and you can execute sample scripts but the code seems to have been refactored quite a bit since then and the tutorial is now quite hard to follow. The source is at http://www.codeplex.com/IronPython - you will need to install TortoiseSVN and a thing called SvnBridge to get the latest code from Microsoft. The license is BSD-compatible.

Both these projects and the underlying DLR seem to assume that dynamic languages are scripting languages. I think that this is not entirely consistent with the way Smalltalk works, but I suppose there's no reason you couldn't build a Smalltalk compiler that works as a scripting language. You would need to do something like this to bootstrap the environment anyhow.

One of the things I like about Smalltalk is that all the tools (e.g. Transcript, Workspace, Code Browsers and Debuggers) are all written in Smalltalk (it's tortoises all the way down!). I think it would be interesting to implement these components in a library that could be loaded into an application domain for development purposes. I don't think that using vim or emacs to develop Smalltalk code would be particularly productive and some native tools would provide a more incremental development environment than Visual Studio.

To get started on a project like this I guess you would need to have a look at building a Smalltalk Language Provider. The easiest way to get this up and running would probably be to have a look at SmaCC and #Smalltalk - I think the parsing and code generation would be much the same whether you're targeting the CLR or the DLR.

A key milestone might be to have something that's self hosting. If the DLR was packaged as a DLL instead of a project dependency, then you could write the compiler in Smalltalk instead of C#.

The code is here http://www.refactory.com/Software/SharpSmalltalk/ - I think it's already self-hosting on the CLR. I believe that John Brant discussed some of the conceptual differences between Smalltalk and .NET on comp.lang.smalltalk a few years ago.

Steve



On Fri, Aug 15, 2008 at 7:06 AM, Steve Wart <steve.wart@gmail.com> wrote:

Could be interesting. I'm not using Windows much anymore but my PC should be here in a couple of weeks. I managed to build IronRuby from source at one point. Based on what I've read on various blogs it sounds like it should be possible to extract the DLR from that, but maybe your contacts in MS can point us at a DLR-specific svn repository ;-)

I suggest we set up a google or yahoo group to drive into the details. Anyone who's interested in helping or lurking can follow along there.

Cheers,
Steve

2008/8/15 Gary Short <gary@garyshort.org>

Hello Robert,

 

With regard to IronSmalltalk, I started it up just after I came back from the MVP summit in Seattle, I'd been talking to the dynamic languages team out there and got really fired up about the idea. As normal, right after I posted about it I got swamped with work and so, to date, it has gone nowhere. However, coincidentally, I am now in a position to start working on it again. I'm in the process of getting my head around the DLR and the ANSI Smalltalk spec so, as yet, no actual code has been written, but I'm going to be getting to that soon (for some definition of soon <grin>). As for do I need help? Hell yeah! LOL, are you (or anybody else) interested?

 

Regards,

Gary

http://www.garyshort.org

MVP C#

 

From: uksmalltalk-bounces@lists.squeakfoundation.org [mailto:uksmalltalk-bounces@lists.squeakfoundation.org] On Behalf Of Robert Johnson
Sent: 14 August 2008 13:30
To: uksmalltalk@lists.squeakfoundation.org
Subject: Whats happening with IronSmalltalk ?

 

In May there was some discussion between Gary Short and Steve Wart about the creating an IronSmalltalk implementation. Is someone currently working on IronSmalltalk ? If so do they need any help?

Robert Johnson

 

No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 270.6.3/1610 - Release Date: 13/08/2008 16:14

 

No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 270.6.3/1612 - Release Date: 14/08/2008 18:03

 

_______________________________________________
uksmalltalk mailing list
uksmalltalk@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk

 

 


_______________________________________________
uksmalltalk mailing list
uksmalltalk@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk

 

 

No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 270.6.4/1617 - Release Date: 17/08/2008 12:58


No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 270.6.5/1619 - Release Date: 18/08/2008 17:39


_______________________________________________
uksmalltalk mailing list
uksmalltalk@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/uksmalltalk