using LC as an emulator

Rick Harrison harrison at all-auctions.com
Tue Nov 7 14:05:26 EST 2017


Hi Mike,

It sounds like a lot of work however you do it.
Is creating an emulator really going to be easier
than doing a whole system migration to LiveCode
or some other language?

Good luck with whatever you do!

Rick

> On Nov 7, 2017, at 1:57 PM, Mike Kerner via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> 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."
> _______________________________________________
> 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





More information about the use-livecode mailing list