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