using LC as an emulator

Mike Kerner MikeKerner at roadrunner.com
Tue Nov 7 13:57:18 EST 2017


I'll email you offline.

On Tue, Nov 7, 2017 at 1:36 PM, Mark Waddingham via use-livecode <
use-livecode at lists.runrev.com> wrote:

> On 2017-11-07 17:42, Mike Kerner via use-livecode wrote:
>
>> No, the ERP is written in HP BASIC, so I would want to emulate the
>> language, given the breadth and number of programs.  I was thinking about
>> writing wrappers for the various commands and functions of the language,
>> but it won't be easy, no matter what I do.
>>
>
> In this case 'ease' is probably related to the breadth of the language and
> how complex individual commands/functions are - if you have a good
> architecture for the emulator, most of the work will be in recreating that
> functionality, rather than the parsing/execution mechanism.
>
> There are also binary resources that I would have to have recreated such as
>> forms and dialogs, and I would have to take the db schemas and convert
>> them
>> to a modern database, which seems like the least work of this entire silly
>> idea.
>>
>
> From what you've said it doesn't sound like a silly idea at all.
>
> Would it be less work to rewrite it?  I doubt it.  Would it be less effort
>> to cough up for an off-the-self ERP package?  Possibly, but the one piece
>> that is extremely valuable is the payroll piece, because it is so
>> expensive
>> to hire a service or to pay for someone else's payroll software.  For
>> example, look at the time and attendance piece.  I was able to write a
>> timeclock app that runs on a tablet for a tiny fraction of what it would
>> cost to replace the existing timeclocks.  Timekeeping software is also
>> crazy expensive, and payroll is akin to highway robbery.
>>
>
> If it is a system you've been maintaining for 30 years, then I suspect you
> are correct - it won't be less work to rewrite as you'll spend a lot of
> time making things work as they did before... After all, I suspect that
> after 30 years working on it even you can't remember where all the bodies
> are buried!
>
> (I certainly find zombies popping up now and again to bite me in the
> LiveCode engine from things I've done in the past!)
>
> Would it be easier to try to build an emulator in Xojo?  I've thought about
>> it, but before I add yet another development tool to the mix, here, I
>> thought I'd chase this idea, first.
>>
>
> Well I can certainly say that LiveCode is perfectly capable, and indeed
> very good for writing compilers/interpreters because of the way its arrays
> work (copy-on-write in particular), and the ability to pass references to
> array elements to functions. (I've writing a few such things in the last 12
> months - the SVG compiler being the most recent example).
>
> I'd generally recommend using a LiveCode array to represent the source
> structure (after parsing - which will be a tree), and then write a
> recursive evaluator for it, threading through the node which is being
> executed and a mutable context array which contains all the current
> execution state:
>
>   on langExecute @xContext, pNode
>     - dispatch to do what you need to do for node, using state from
> xContext
>   end langExecute
>
> If you can figure out how to map the source language to (essentially) a
> sequence of command invocations, then you can write the each piece of
> functionality provided by the language (i.e. the bits other than variable
> manipulations and control transfer) as a single handler which takes the
> xContext parameter.
>
> Okay, so all the above is a bit vague - but it is just to give an idea of
> how I've found the best way to structure such things in LiveCode.
>
> Warmest Regards,
>
> P.S. Do you have the online links for the reference manuals? I'm
> intrigued...
>
>
> --
> Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
> LiveCode: Everyone can create apps
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



-- 
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
   and did a little diving.
And God said, "This is good."



More information about the use-livecode mailing list