The ReActor home page

I am back again...

Welcome to my home page, my name is Mikael Aronsson and I am developing a win32 version fo the Actor programming language, Actor was a nice object oriented language that The Whitewater Group created in 80th/90th, it works in the same way as Smalltalk, but with language syntax that look's like Pascal/C code. Actor is still in use today but is in need of an upgrade to 32-bits and thats what all this is about...

The goal with this project is to produce as full 32 bit implementation of the Actor language and class library for Win32

News
I tried to implement ReActor in Visual Studio, but the lack of named labels that are available in gcc made it impossible, and trying to use ordinary C switch interpreter code was no good idea, it runs soooo slooooow, so I am back to gcc again, the current release requires MingW 2.0 to compile.

We have a mailing list that you can join and/or search if you are interested in this project

News 2002-03-14

  1. Updated the website with current information.

This site was last updated November 26 2002

Here you might find a useful class for Actor, it's all public domain

StringBuffer
This is used in the same was as the Java StringBuffer class.

I have worked with some test implementations of Actor and ruled out some solutions, what remains is as follows, it would be difficult to use the original source for Actor because this is in the hands of Symantec and its no easy job trying to get them to release the source code into some kind of free/open source project, the truth is that its not even easy to contact them at all. And without some kind of ok it will be difficult to use the original code, so it has to be done from scratch then.....

I have two solutions I am working on, if there should pop up a solution with Symantec then I belive I will go with the original source code and convert it to 32-bits, but I am not doing any active work on this even though there people looking into this.

Solution one, which is the one most complete is a C solution, everything is done in C including the interpreter, the compiler is a lex/bison thingy and its starting to work pretty ok.

The second solution is a two stage process, a small Forth like interpreter bootstraps the kernel and fires up the Actor environment, which is all done in this Forth like language, I call it rkl (ReActor Kernel Language), it is a mix between standard ANS Forth and the Neon OO model.

The downloads below are the experiment implementations I have worked with, they will be updated when ever they become more complete...

Ohh, before I forget it, ReActor will be free software, it will not be GPL/LGPL because this makes it more difficult/impossible to use it in commercial projects, but please notice that it is possible that the devlopment environment will be GPL/LGPL licensed, I don't know yet, it depnds on some of the tools I use, but the sealed of application and runtime will be freeware that you can do anything you want with.

This is the latest version of ReActor, and it does not depend on anything from the original Actor (except a few class files at the moment), it is 100% C code at the moment but it does requirea gcc compiler to compile. I use mingw32 (using gcc 3.2). The reason for this is that gcc support a special C extension for labels that allow very fast execution of threaded interpreter that is not possible with standard ANSI C.

Please notice that gcc goes with a GNU GPL license but this is just for the compiler, the applications created with the compiler do not need to use this license so there is no problem with that. Same thing with the output from the Bison compiler.

So what can it do.... ?, well not that much but it will start up, load a few classes and popup a display and workspace window (with syntax highlighting), you can execute simple code, but as there are not many classes loaded you cannot do much. But for example print(1+2); works fine but the display window presents the result as the class name Int or Long, this is because there is no print() methods in the Int or Long classes yet. But look in the trace.log file for the result, coercing works to, you can do: print(1+2L) for example.

I have made a few changes to the class files that may upset a few, the reason is to support feature ReActor to C conversion, it also makes it more easy to add new fatures in the future without breaking old code. actconv.exe in the tools directory does the conversion of Actor classes to ReActor classes.

Download source code (273kb)

Please notice that the current source is not useful for anything there are a few important things missing, but if you would like to have a peek at it, please go ahead and download it. It does present a workspace window and an output window and you can type simple expressions in the workspace window, like 5+5 for example, the result (10) in not displayed though in the workspace window yet...

Download source code (526kb)

This is C implementation of ReActor, it is a bootstrap system in C that creates the runtime environment and startsup a compiler in C that compiles the kernel, it does not work yet, it still has a long way to go. It is designed to use a JIT compiler with optimization and a complete language, it's an extended Actor language with namespaces more operators, unicode and lots of other nice features.

Download source code (200kb)

Send e-mail to meSend e-mail to me