Skip to content

David Mason - Zag Smalltalk

Photo of Tim Mackinnon
Hosted By
Tim M. and Giovanni C.
David Mason - Zag Smalltalk

Details

Dave Mason has been a professor of Computer Science at Toronto Metropolitan University (previously known as Ryerson) for 41 years. He has done research on operating systems, software reliability and programming languages. Current research is mostly around Smalltalk and other dynamic languages. If forced to program very low level projects such as virtual machines, he is willing to use Zig or Rust, but for any other purpose, he insists on using higher productivity languages - primarily Smalltalk.

Zag Smalltalk is a principle-based Smalltalk VM. "Principled" means that the only 3 operations are: message send, assignment, and return.

  1. it is designed from the ground up to use multi-processing, to leverage multi-core systems.
  2. There is no special-casing of methods like `ifTrue:ifFalse` or `whileTrue:`, although of course some methods are implemented by primitive methods. It does aggressive inlining of methods and blocks.
  3. “Source” code is maintained as ASTs.
  4. Compiled code runs in a dual form of threaded code and JIT’ed machine code that seamlessly interoperate.
  5. It has a partially-copying and partially-non-moving garbage collector.
  6. It keeps many more values as immediate, including symbols.
  7. It uses a single-level dispatch mechanism to implement Smalltalk dispatch semantics

The research question is, "Can this be made fast enough to be competitive?” Preliminary results are encouraging.

Photo of UK Smalltalk User Group group
UK Smalltalk User Group
See more events