I remember that, a few years ago, someone asked a question about Writing a Programming Language in Perl. I was a little bit skeptical at first, but very interested in this subject too. Few years passed by, until me and a friend of mine decided to create a toy-language from scratch without using anything else, but Perl. We wanted it as simple as possible and powerful as much as it can be.
The language that we designed is called Sidef and it strongly follows the object-oriented paradigm.
How simple can a practical programming language be defined? This is the main question that I wanted to answer. A year after the start of the project, I think we have a reasonable answer: objects and methods. This is, I think, the simplest way a programming language can be defined.
The basic definition of Sidef can be summarized as: obj.method(obj1, obj2, ...), with some minor exceptions.
Objects are:
- strings
- files
- numbers
- arrays
- everything else
while methods are functions defined for that kind of object which return other objects.
Perl related features:
- any Sidef script can be compiled to a stand-alone Perl program (-c)
- can load and use Perl modules (both OO and functional)
- can evaluate arbitrary Perl code (Perl.eval("..."))
More info about the language can be found at: