port Whitewater Actor to Squeak ?

Lynn McGuire winsim at winsim.com
Fri May 3 14:51:30 UTC 2002


Hi Goran,

My application is a desktop data storage and display program.
The data display is through dialogs.

I have investigated Dolphin.  It is a FINE product !  But it requires
that I convert my syntax to Smalltalk.

I guess I may be asking if the Actor compiler can be easily moved
on top of the Squeak VM.  Would Squeak easily extend itself to
to having another byte compiler added to it ?

Actor is just Smalltalk with a procedural syntax.  Actor has a byte
compiler that produces an image file.  The Actor runtime engine is
totally controlled by the image file (the bytecode collection).  All
staticWindows resources are bound to the Actor engine by a linker.

BTW, here is an example of Actor Syntax (a dialog class):


/* View a DataDescriptor */!!

inherit(XDialog, #ViewDD, #(className /* symbol of datagroup class */
ddName /* symbol of datadescriptor */
), 2, nil)!!

now(class(ViewDD))!!

now(ViewDD)!!

/*Stamp 1992/01/02 14:43 rdm ViewDD:command */
Def command(self, wP, lP)
{
  select
    case wP = 1 cand high(lP)=BN_CLICKED is
      end(self,1);
    endCase;
  endSelect;
}

!!

/*Stamp 1992/01/02 15:28 rdm ViewDD:initDialog */
Def initDialog(self, wP, lP | aDD, temp)
{
  setText(self, asString(className)+":- "+"Viewing DataDescriptor");
  setItemText(self,101,asString(ddName));
  aDD:=descriptors(Classes[className])[ddName];
  setItemText(self,102,asString(getLabel(aDD)));
  setItemText(self,103,asString(canBeInput(aDD)));
  setItemText(self,104,asString(canBeOutput(aDD)));
  setItemText(self,105,asString(isVector(aDD)));
  setItemText(self,106,asString(getDataType(aDD)));
  setItemText(self,107,asString(getUnitsClass(aDD)));
  setItemText(self,108,asString(getUnitsArgs(aDD)));
  setItemText(self,109,asString(getDefaultValue(aDD)));
  if temp:=getValueRange(aDD)
  then
    setItemText(self,110,asString(temp[0]));
    setItemText(self,129,asString(temp[1]));
  endif;
  if temp:=getSizeRange(aDD)
  then
    setItemText(self,111,asString(temp[0]));
    setItemText(self,130,asString(temp[1]));
  endif;
  do ( getOptionList(aDD),
    { using (string)
      addCBText(self, 112, string);
    });
  setCBSel(self,112,0);
  setItemText(self,113,asString(getDlgClass(aDD)));
  setItemText(self,114,asString(getCtrlId(aDD)));
  setItemText(self,115,asString(getHelpKey(aDD)));
  setItemText(self,116,asString(getDepList(aDD)));
}

!!

/*Stamp 1992/01/02 14:08 rdm ViewDD:init */
/*......................................................................
 *
 *  initializes the className and ddName variables
 */

Def init(self, cName, dName)
{
  className := cName;
  ddName := dName;
}

!!


Thanks,
Lynn McGuire

----- Original Message -----
From: <goran.hultgren at bluefish.se>
To: <squeak-dev at lists.squeakfoundation.org>
Sent: Friday, May 03, 2002 4:15 AM
Subject: Re: port Whitewater Actor to Squeak ?


> "Lynn McGuire" <winsim at winsim.com> wrote:
> > Hi,
> >
> > I have a commerical application that is partly coded in the old
> > Whitewater Actor language.  I am looking for a Win32 place to
> > port the Actor code to.  The Actor programming environment is
> > a Win16 application and is a pure OOP, typeless, GC'd language
> > that is a descendent of Smalltalk and Pascal (and maybe a few
> > others) with a Smalltalk like class library.  Whitewater sold
> > Actor to Symantec in 1992 and Actor was allowed to die on
> > the vine.  There are still quite a few users of Actor since it was
> > such a good environment.
> >
> > Questions:
> > 1. Can Squeak be used to produce a commercial product ?
>
> IMHO Yes. But you need to be more specific in your question. What do you
> need?
>
> For example do you need to build Win32 UIs? In that case you might be
> better off with Dolphin Smalltalk.
> Currently there is nothing really available for building UIs using an
> external library (like win32, gtk+, Qt, Motif etc) in Squeak.
> Or do you need multimedia, interactive graphics, networking, ultra
> crossplatform? Squeak has all that and more.
>
> But as UI-kit Morphic might of course fit! It depends on your
> application. Morphic is much nicer in all the technical aspects (I
> think) but lacks in "looks" and "missing widgets". But soon I think the
> community has the muscles to remedy that and come up with a set of nice
> looking widgets.
>
> > 2. Would anyone know if porting Actor on top of Squeak
> >     might be feasible ?  How to start such an effort ?  I do have
> >     the complete source code for Actor including the Win16
> >     assembly for the forth kernel.
>
> Hmmm. I know too little about Actor to tell. But an alternative would
> perhaps be to write an Actor->Squeak converter? One advantage of such an
> approach would be (I am guessing):
>
> 1. In moving over the code to a Smalltalk dialect like Squeak you can
> more easily move to any of the other Smalltalks.
> 2. Having your app directly "on top" of Squeak means that you don't need
> to maintain an Actor-layer.
>
> regards, Göran
>
> PS. A couple of years ago I was in a small project where we built a
> "BASIC"-like clone interpreter on top of VisualWorks together with some
> neat tools, among other things we built a terminal-screen-forms->VW
> UI-converter which actually converted those ugly terminal forms into
> pretty nice VW UIs which then could be further massaged using VW. The
> tool could autoconvert the old systems into a VW+Oracle combo and then
> you could develop the system further using either VW Smalltalk or the
> "BASIC"-clone. DS
>
> > Thanks,
> > Lynn McGuire
>
> regards, Göran
>
>





More information about the Squeak-dev mailing list