Hula - Another Programming Language? (Project Request)
I submitted this project request a few days ago, for the final year of my degree program. It includes a nice summary of Hula so I’ve posted it here. Enjoy!
Proposal
This project will examine the design outlined below and compare it with existing alternatives. A prototype of the Hula programming language will be produced based on this research and used to explore the practical benefits of these decisions.
The final document will detail why another language is desirable, why that language should be Hula, and how the observations embodied therein apply to future language developments.
Summary
Hula is a unique programming language that brings a number of elegant ideas together. These include prototypes, selective inheritance and multiple dispatch. Although it can be described as being object oriented, in practice this may be a stretch because Hula is quite different from other object oriented languages.
Hula extends the notion of multiple dispatch to include properties. To accomplish this Hula uses a refined multiple dispatch. This is applied at the object level and allows multiple dispatch to exist within a classless object oriented system. In this context objects contain nothing and exist only to provide identity.
This makes other identifiers redundant. For this reason properties and behaviours are anonymous in Hula. The languages dispatch mechanism is expected to resolve these appropriately, by analysing each objects identity. This can be very expressive: o name, a plus b plus c, a unless b and even select * from t are conceptually valid.
These anonymous properties and behaviours are referred to as patterns. The objects that compose them are termed subjects.
Hula uses a composite inheritance model, which compliments the refined multiple dispatch eluded to above. In contrast to standard inherence, composite inheritance removes dependency between related objects. This allows them to change independently of one another and enables the selective inheritance of properties and behaviours.
If you have any comments, corrections or contributions please feel free to shout.
2 comments:
Did you hash out the semantics for Hula's dispatch mechanism already? (algorithm, examples, etc.)
Hi Michael,
The dispatch mechanism is pretty much done; the implementation is rather simplistic at this point but it works well enough for such an early prototype.
I'll post some details of how this all works in a few days if there's enough interest. Feel free to contact me via email or IM if you want; I use the username netytan for everything.
Take care,
Mark.
Post a Comment