

Bootstrapping a prototype-based object-oriented language in 44 lines of code. - aarongough
http://thingsaaronmade.com/blog/bootstrapping-a-prototype-based-object-oriented-language-in-44-lines-of-code.html

======
petercooper
Seeing OOP implemented in "raw" C is similarly eye opening. As with this
example, you have to do a bit of caretaking, but even the most complex
structures are built from simple ones that nearly all languages support.

Added: This isn't a particularly simple example, but I just found a good
looking PDF on OOP in C that seems worth sharing:
<http://www.planetpdf.com/codecuts/pdfs/ooc.pdf>

~~~
aarongough
That was my thought when I saw it done too... The PDF I linked to at the
bottom of the article shows a full implementation in C which is pretty
awesome. If I remember correctly it's only a couple of hundred lines long.

At the moment I am in the process of writing a VM which provides basic
functions tailor-made for implementing a language this way. Should be
interesting to see how it turns out...

~~~
ekiru
The send macro is a particularly clever bit of the C implementation. It uses
GCC ({ }) compound statement-as-expression macros and static variables to
insert an inline method cache at every place that you send a message to cache
the result of lookup.

------
aarongough
Feedback is warmly welcomed as always. If any of the HN crowd sees issues with
this approach I would love to hear about them before I commit to building this
into my final language...

------
eterps
I'd love to see an example of such a protoype based object oriented language
in x86 Assembly language.

~~~
aarongough
Haha, well it wouldn't be easy, but it is certainly possible.

A good tool to mess with something like that would be 'EaRing', the dynamic
assembler by Zed Shaw: <http://www.zedshaw.com/blog/2009-08-21.html>

