[squeak-dev] High language to express low level code

David T. Lewis lewis at mail.msen.com
Tue Apr 2 11:53:40 UTC 2019


On Tue, Apr 02, 2019 at 06:03:20AM +0000, pierre misse wrote:
> Hello,
> 
> I'm currently trying to create a "high" level language to that aims to express low level concepts through transpilation to C.
> 
> I have a limited experience building such programs, and thought people who build virtual machines would be the right group of people to ask what they need in low level programing!
> I've also made some research, and stumbled Slang, on which i found little documentation (probably because i didn't find the right combination of words).
> 
> So if you have a bit of time to share, i'd love to know:
> 
>   *   What you kind of concepts you need
>   *   What's not required, but interesting
>   *   What you'd wish to hide from C to be taken care of by the transpiler
> 
> Thank you in advance.
> 
> Regards,
> Pierre Misse.

Hi Pierre,

The term "Slang" refers to the subset of the Smalltalk language and
objects that can directly translated to C (or other language, such
as Javascript). It is not really a language in itself, rather it is
a part of the existing Smalltalk environment in Squeak. For various
reasons, the "slang" extensions are now maintained separately from
the core of Squeak, but conceptually (and in early Squeak releases),
the C translation capability should be considered an integral part
of Squeak, as described in this original paper:

 http://www.vpri.org/pdf/tr1997001_backto.pdf

The actual "slang" translator consists of a set of TMethod and
TParseNode classes that are used to map the parse tree for a
Smalltalk method into translated C code, along with a CCodeGenerator
class that coordinates the translation process.

The Smalltalk to C (or Javascript) capability is not intended to
be a general purpose languange. The general purpose language in
this case is of course Smalltalk itself, and the slang translator
serves as an optimizer to translate the virtual machine (which is
written primarily in Smalltalk) into C to produce a high performance
runtime.

Dave



More information about the Squeak-dev mailing list