An object-oriented language Boa
- 07 May 2008
- Programming languages, Software
I have added another language, called Boa, to the Programming Languages Zoo. It is an object-oriented language with the following features:
- integers and booleans as base types,
- first-class functions,
- dynamically typed,
- objects are extensible records with mutable fields,
- there are no classes, instead we can define “prototype” objects and extend them
to create instances.
In many respects the language is a bit like a combination of Python and Javascript, which explains its name. It was interesting to see the students' reaction to the language. The only object-oriented language they knew previously was java, so the lack of classes bothered them. They were amused by the fact that since “everything is an object” we can extend an integer with a function to get an object which behaves both as an integer and as a function (we did not learn about intersection types), like this:
Boa> let x = 42 with (fun x -> x + 1000) x = 42 withBoa> x + 10 52 Boa> x 17 1017 Boa> x x 1042
</pre>
Isn't that cute?
How to comment on this blog:
At present comments are disabled because the relevant script died.
If you comment on this post on Mastodon and
mention
andrejbauer@mathstodon.xyz
, I will
gladly respond.
You are also welcome to contact me directly.
Comments
Did you mean a combination of Python and Lua, because that's what it sounds like, and it would be a closer match, with the snaky reference like Python and the short spelling and sound of Lua. Plus boas are populous in Brazil, the home of Lua.
I mentioned javascript because I thought more people knew that javascript had "objects without classes". I did not actually know where boas came from. Thanks for letting me know.