Skip to content
vic

lpil/soup

A simple interpreted language written in Elixir

lpil/soup.json
{
"createdAt": "2016-11-26T11:42:18Z",
"defaultBranch": "master",
"description": "A simple interpreted language written in Elixir",
"fullName": "lpil/soup",
"homepage": "",
"language": "Elixir",
"name": "soup",
"pushedAt": "2017-03-29T13:53:37Z",
"stargazersCount": 26,
"topics": [
"functional",
"interpreter",
"language",
"parser"
],
"updatedAt": "2025-10-16T22:14:38Z",
"url": "https://github.com/lpil/soup"
}

Soup is a simple interpreted language, the runtime for which is written in Elixir.

It looks like this:

let x = 1
let y = 2
let add = |x, y| {
x + y
}
let z = add(x, y)

It’s largely an adaption of the Simple language from the first few chapters of Tom Stuart’s excellent [Understanding Computation][book]. Go grab a copy.

[book] !: http://computationbook.com/

Terminal window
# Compile the interpreter
MIX_ENV=prod mix escript.build
# Run some Souper code!
./soup priv/code/addition.soup