Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
ApacheConf C++ C Makefile
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Examples Ported PageRank from classic benchmarks
Smalltalk Added support for getting 32bit values from integers
TestSuite Added support for getting 32bit values from integers
.gitignore Added SOMCore.csp (generated by CSOM) to .gitignore
.travis.yml
AUTHORS Import SOM sourcecode
LICENSE Import SOM sourcecode
README.md
codespeed.conf

README.md

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
Something went wrong with that request. Please try again.