Transpiling Slang Methods to C Functions: An Example of Static Polymorphism for Smalltalk VM Objects

Authors:
Tom Braun, Marcel Taeumel, Eliot Miranda, Robert Hirschfeld
Published:
In VMIL '23: 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages. October 18, 2023.
Abstract:

The OpenSmalltalk-VM is written in a subset of Smalltalk which gets transpiled to C. Developing the VM in Smalltalk allows to use the Smalltalk developer tooling and brings a fast feedback cycle. However, transpiling to C requires mapping Smalltalk constructs, i.e., object-oriented concepts, to C, which sometimes requires developers to use a different design than they would use when developing purely in Smalltalk. We describe a pragmatic extension for static polymorphism in Slang, our experience using it as well as the shortcomings of the new approach. While our solution extends the concepts developers can express in Slang, which reduces the burden of finding alternatives to well-known design patterns and by enabling the use of such patterns the modularity, it further complicates a fragile, already complicated system. While our extension solves the task it was designed for, it needs further enhancements, as does Slang itself in terms of understandability in the field.

BibTeX:
@inproceedings{braun2023,
  title = {{Transpiling Slang Methods to C Functions: An Example of Static Polymorphism for Smalltalk VM Objects}},
  author = {Tom Braun and Marcel Taeumel and Eliot Miranda and Robert Hirschfeld},
  booktitle = {VMIL '23: 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages},
  year = 2023,
  doi = {10.1145/3623507.3623548},
}