All Projects → smarr → SOM

smarr / SOM

Licence: other
SOM - Simple Object Machine

Programming Languages

ANTLR
299 projects
Makefile
30231 projects
shell
77523 projects

SOM - Simple Object Machine

SOM is a minimal Smalltalk dialect used to teach VM construction at the Hasso Plattner Institute. It was originally built at the University of Århus (Denmark) where it was also used for teaching.

Currently, implementations exist for Java (SOM), C (CSOM), C++ (SOM++), and Squeak/Pharo Smalltalk (AweSOM).

A simple SOM Hello World looks like:

Hello = (
  run = (
    'Hello World!' println.
  )
)

This repository contains the standard library of SOM, without an actual SOM implementation. Please see the main project page for links to the VM implementation.

With CSOM, the given example could be executed for instance like: ./CSOM -cp Smalltalk Hello.som

AweSOM can be asked to directly evaluate a given string, for instance like: SOMUniverse new eval: '''Hello World!'' println'.'.

A version of AweSOM is available for Pharo via:

Gofer it
    url: 'http://ss3.gemstone.com/ss/AweSOM';
    package: 'ConfigurationOfAweSOM';
    load.
(Smalltalk at: #ConfigurationOfAweSOM) loadDevelopment

To install it into a recent Squeak, use the following expression:

Installer ss3
    project: 'AweSOM';
    install: 'ConfigurationOfAweSOM'.
(Smalltalk at: #ConfigurationOfAweSOM) perform: #loadDevelopment

Information on previous authors are included in the AUTHORS file. This code is distributed under the MIT License. Please see the LICENSE file for details.

Build Status

Thanks to Travis CI, all commits of this repository are tested. The current build status is: Build Status

The build status of the SOM implementations is as follows:

  • CSOM: CSOM Build Status
  • SOM (Java): SOM Java Build Status
  • PySOM: PySOM Build Status
  • RPySOM: RPySOM Build Status
  • TruffleSOM: TruffleSOM Build Status
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].