[Self-interest] Self implementation in Python

sin-ack sin-ack at protonmail.com
Tue May 17 17:31:33 UTC 2022


Hey everyone,

This looks pretty nice. Playing around with it a little, it was
really cool seeing the original Self VM files load. I tried to
get a mirror via `object asMirror', but it seems like `_Mirror'
isn't implemented just yet. :)

Your AST parsing looks pretty well done. It actually looks like
my first attempt at a Self interpreter, only with less memory
management stuff :) I'm curious to know whether you would want
to switch to a bytecode interpreter in the future or keep it as
a pure AST interpreter for ease of understanding.

As far as I can tell memory management/GC is a non-goal to keep
the interpreter fully portable. Is this correct?

I checked out the GUI and it's already pretty nice as it is.
Buttons could benefit from being less... large :), but it's
already really usable (and more of a GUI than I came up with).

Also, do you intend to maintain full compatibility with the
original Self and its Transporter system, or are you willing
to improve upon it later down the line?

Hoping you decide to continue this project and looking forward
to further developments!

------- Original Message -------
On Tuesday, May 17th, 2022 at 6:40 AM, Luke McNeil <lukemcneil61 at gmail.com> wrote:


> Hey everyone!
>
>
>
> We’re a team of student engineers from Rose-Hulman Institute of Technology that’s been working on a Python implementation of Self for the past academic year. We began developing this system since the Self virtual machine is currently unable to be easily run on most modern operating systems (without setting up a virtual machine to emulate older 32-bit operating systems).
>
>
>
> Our system is designed to parse and interpret Self inputs in a similar manner to the Self environment and virtual machine. The system comes with its own GUI framework to demonstrate its features that is extensible by users, and the framework itself serves as a proof-of-concept for implementing Morphic-related features in the future. The interpreter’s implementation is bootstrapped, meaning that higher-level features like lists and strings are directly imported from their respective Self modules, which we file out from the original Self system.
>
>
>
> We hope that this project will serve not only as a useful educational tool for introducing engineers to alternative programming paradigms, but also as a convenient environment for Self development. If you’re interested in exploring our system further, we’ve prepared a video demo for your convenience (here). You can also visit our repository on GitHub below. We welcome your thoughts and feedback!
>
> https://github.com/pinneyja/self-interpreter
>
>
>
> Thanks,
>
> Rose-Hulman Self Interpreter Team
>
> (Nathaniel Blanco, Achintya Gupta, Luke McNeil, Jacob Pinney)


More information about the Self-interest mailing list