BETA (programming language)

Tool by Kristen Nygaard (1993)

Kristen Nygaard, the author of the first object-oriented language (SIMULA), went on to develop an interesting early OOP language called BETA.

One of the unusual features of BETA is that it generalises the concept of both “class” and “function/procedure” under the idea of “pattern”. This seems a little similar to Smalltalk-72 where classes were just functions that could create new instances of themselves.

This paper tells the story of the development of BETA: a programming language with just one abstraction mechanism, instead of one abstraction mechanism for each kind of program element (classes, types, procedures, functions, etc.). The paper explains how this single abstraction mechanism, the pattern, came about and how it was designed to be so powerful that it covered the other mechanisms.

The BETA project was started in 1976 and was originally supposed to be completed in a year or two. For many reasons, it evolved into an almost lifelong activity involving Nygaard, the authors of this paper and many others. The BETA project became an endeavor for discussing issues related to programming languages, programming and informatics in general.

Additional Resources


  • suggesters: natecull
  • curators: natecull

I remember looking at Beta many years ago, and concluding that its “pattern” abstraction is very similar to patterns in term rewriting. In a term rewriting system, you can just write foo(bar) and consider it a piece of data, or you can add rewrite rules that effectively turn foo into a function.