It's been a while since I had opportunity to write anything, with the added misfortune of a hardware deficit but seemingly still had some backups to recover old older entries. Over the years I've taken a interest in language theory and in particular visual programming. Inspired by Unreal Kismet, CryEngine Flow and BitSquid Flow; I too set out myself of creating a similar environment.
Primarily I just wanted a visual language as I believed they hold a certain productivity value. My initial designs were of a very object-orientated nature. However this approach just never felt right to me. It means you are going to increase post-deserialization time due to v-table fix-ups but it is also takes dexterity to maintain the code hierarchy required.
So what I really wanted to do was design a system a) that reduces post-deserialization times to a bare minimum b) was not inheritance heavy c) small enough to be embeddable. On of the interesting methods that I considered was generating machine code directly. Just like how a compiler generates a executable, data and code can be stored interleaved or disjointed, properly aligned. Additionally the compiler can generate chunks of machine code to evaluate the state machine and much more. I am quite satisfied how far this approach has taken me - just take a look at the videos below or at the project on github https://github.com/phr34k/vdsl.
Primarily I just wanted a visual language as I believed they hold a certain productivity value. My initial designs were of a very object-orientated nature. However this approach just never felt right to me. It means you are going to increase post-deserialization time due to v-table fix-ups but it is also takes dexterity to maintain the code hierarchy required.
So what I really wanted to do was design a system a) that reduces post-deserialization times to a bare minimum b) was not inheritance heavy c) small enough to be embeddable. On of the interesting methods that I considered was generating machine code directly. Just like how a compiler generates a executable, data and code can be stored interleaved or disjointed, properly aligned. Additionally the compiler can generate chunks of machine code to evaluate the state machine and much more. I am quite satisfied how far this approach has taken me - just take a look at the videos below or at the project on github https://github.com/phr34k/vdsl.
Comments
Post a Comment