The Artima Developer Community
Sponsored Link

Heron-Centric: Ruminations of a Language Designer
Unimperative Reborn as a Concatenative Language
by Christopher Diggins
February 14, 2006
My old programming language project, Unimperative, has been reborn as a "concatenative" programming language in the tradition of Joy.


Over a year ago I posted to my blog about the Unimperative programming language which was a Lisp/Scheme dialect and a subset of C++. I ran into some performance problems and shelved the program until recently. When I learned about the equivalence of concatenative and functional languages, I got very excited and redesigned Unimperative as a concatenative language. Unimperative still retains the property of being pure C++.

A concatenative language is one where every function has a single argument (a stack) and returns a single value (a new stack). This means that a concatenative language is also a pure functional language. Concatenative languages are very easy to implement and optimize, so I am hoping to reuse Unimperative as a target for Heron.

Development is still in its early stages, but an open-source Unimperative library for C++ is available at There is a mailing list at the site for anyone interested in helping out with the design and implementation of the language.

Talk Back!

Have an opinion? Readers have already posted 2 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Christopher Diggins adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at

This weblog entry is Copyright © 2006 Christopher Diggins. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use