Strange Loop

2009 - 2023

/

St. Louis, MO

Gershwin: Stack-based, Concatenative Clojure

The Gershwin programming language is a stack-based, concatenative language with a Clojure runtime that targets the JVM. It features a fusion of Clojure datastructures, namespaces and concurrency semantics with an API inspired by the Factor concatenative programming language. With seamless Clojure interop, Gershwin can leverage all the power and reach of the Clojure/JVM ecosystem while also providing the unique features of stack-based, concatenative languages: composition by code concatenation, point-free expressions, data-flow combinators, and simple, powerful code factoring.

This presentation provides an overview of the features and implementation of Gershwin, with explanations of Clojure and Factor topics as they relate to Gershwin's implementation. The presentation media itself will be produced by a Gershwin program, which will be the example codebase used to demonstrate core Gershwin concepts including interactive REPL development, defining new words (functions), quotations, Clojure interop, code organization, and building a Gershwin project.

For more information, refer to the following resources:

Daniel Gregoire

Daniel Gregoire

Daniel Gregoire works primarily in open source web development, with a particular passion for Clojure and alternative JVM languages. With an educational background in linguistics and foreign language, his driving interest in software development hinges on exploring programming language paradigms and modes of expression. When not coding, Daniel enjoys spending time with his family and local church community, studying, and playing the piano.