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@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@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 ~ m...@livecode.com ~ http://www.livecode.com/ >> LiveCode: Everyone can create apps >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@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@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode