The Artima Developer Community
Sponsored Link

Heron-Centric: Ruminations of a Language Designer
Cat is all about Tuples
by Christopher Diggins
November 11, 2006
Having spent some more time trying to explain Cat, a stack based functional language, I came to an interesting realization: virtually everything could be explained in terms of tuples.


I had been previously explaining the Cat programming languages as a language where every term is a function which maps a pair of stacks to another pair of stacks. I went on to explain the type inference algorithm in terms of tuples, so that I could relate it to existing type theory. Well I just realized that if I model Cat using only tuples and primitives then everything becomes much easier.

Here's what I mean:

This is very interesting, because it means that the syntax and semantics of Cat can be generalized to languages very different than Cat. For example, more than two tuples (stacks), or languages where the data strucutre behaves more like a deque.

Anyway, before I bark up that tree I'd probably best keep focus on the paper I am writing about Cat. I want to submit a technical article to a peer reviewed journal, and I am looking for people to review it for me. Anyone interested in helping me out?

Talk Back!

Have an opinion? Readers have already posted 15 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