hyper lisp, the programming language that does not exist, yet exist

hyper lisp is the front end programming language used to create scripts in magix.  it does execute, and it does a lot of interesting things, however, at the core of it, hyper lisp does not exist.  hyper lisp has no syntax, and no keywords.  the language does not exist, and i can scientifically prove it, yet you can still use hyper lisp for all these interesting things, even though it has no existence

to understand why, you must understand the node structure, which is the ‘syntax’ of hyper lisp

there are many ways to view a node, you can render it as json, c#, or ‘code’.  the code view of the node, is a tree structured view, textually represented.  this allows for easy reading of the node structure, for the human eye.  so the ‘syntax’ you are reading, and writing, when creating hyper lisp, does not exist.  in fact, when you are opening what’s referred to as a new ‘scope’ in other programming languages, you are only adding up child node(s) to a tree structure in hyper lisp

you are not writing text, you are manipulating a tree structure, represented as text.  hence there exists no ‘code’ or ‘syntax’ in hyper lisp, only trees.  and you can just as easily write your ‘code’ as a json expression or c# node manipulation code, or any other ways you wish.  as long as you build the correct tree structure.  hence, no syntax, and you can easily add your own syntax

in addition, the nodes themselves are not keywords, as they would have been in a traditional programming language.  the nodes are actually active events in themselves.  when you say [if] in hyper lisp, that transforms into the “magix.execute.if” active event, with all the child nodes as parameters.  so not even the keywords themselves even exist in hyper lisp, they are just active events

this means that you can easily add your own keywords to hyper lisp, or remove existing ones, or override existing keywords to point to new implementations, and so on.  so the very programming language does not exist, even though both you and me are in fact using it, every day

this might sound weird to oop’ers, but yes, you can polymorphistically override the [if] keyword in hyper lisp.  also such that it executes on another server than your original source of execution.  100% transparently, during run time, without even having to take down your server, or even write code

this makes hyper lisp extremely agile, and one can easily perceive different servers, partitioning up different keywords, working together with the parsing of ‘one piece of code’, as if ‘one’.  or, how different servers could speak different dialects, still be able to communicate semantically, sending code back and forth to each other.  either by mapping to its own dialect, transforming the tree structure, or by finding the smallest common denominator

it is even easy to perceive, how two different servers, could participate together with each other, to execute the same piece of code, by overriding active events such that the code would ‘bounce back and forth’, until it was done executing

it is also easily perceived, how different domain dialects, inevitably will surface.  stock traders might need keywords such as [sum] and [avg], while others would need stuff such as [matrix-multiply]

below are two screenshots, that shows how the [for-each] keyword maps to the active event called “magix.execute.for-each”.  this is a c# active event, but you could also write keywords in hyper lisp

mml-editor-screenshot1

mml-editor-screenshot2

funny how something that does not exist, can still be so darn useful … ;)

ZimZalaBim – Magix

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s