The Artima Developer Community
Sponsored Link

Weblogs Forum
The Relationship Between HeronFront and HeronScript

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Christopher Diggins

Posts: 1215
Nickname: cdiggins
Registered: Feb, 2004

The Relationship Between HeronFront and HeronScript (View in Weblogs)
Posted: Sep 19, 2005 7:35 PM
Reply to this message Reply
File this under 'tooting my own horn'.
Every once in a while I do something that I am particularly proud of. In this instance I am bursting with pride because I am currently using Heron code inside of the HeronScript interpreter. HeronScript is written in C++, but I use the Heron to C++ translator (HeronFront) in order to make functions and objects dynamically accessible to the interpreter.

One big problem with implementing an interpreter is that you have to register low-level types and functions so that they can be called dynamically by the interpreter. With Heron this is relatively trivial because all Heron objects provide a reflective API. C++ classes generated using HeronFront also have these reflective API calls, for instance: object AnyGivenHeronClass::_invoke(char* name, list<object> args). And yes even your basic int classes have these.

This means that if nothing else, Heron would be useful for those who want more dynamicism from their C++ code by generating class hierarchies with reflective API's. Anyway, after spending the last 12 hours hunting down a dangling memory block bug in my C++ code, I will be glad when I am finally able to rid myself of the shackles of C++ for good.

Topic: Automated Serialization using Templates Previous Topic   Next Topic Topic: East of West and West of East: Engaging Other Academic Cultures

Sponsored Links


Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use