Re: Good time to buy an HP39GS Message #19 Posted by Tim Wessman on 5 Aug 2012, 10:04 p.m., in response to message #17 by Matt Kernal
Nah, I did not write it. Cyrille wrote the parser/evaluator that is in use now.
Just to be clear, most of the programming language design is based on the programming language found in Bernad's xcas, which is also internally hidden in the 39gII. We didn't really "invent" it, but rather tried to match what was in use there with some minor extensions to support the app structure in use on the calculator. Most people don't realize the nearly all graphing calculators have at least a limited CAS internally to handle things like curve areas, intersection finding and so forth.
In the first version of the calculator ROM that came out, the CAS actually handled parsing of inputs and so on (although it would never return symbolic results to the user). There were some issues with that because a symbolic CAS and numeric system really are two completely different beasts and they don't mesh well in a lot of circumstances.
There was also the chance that it would spit out a symbolic result by mistake and that would cause the calculator to get banned. An example of this would be that the original 38/39 calculators were banned in some places simply for being able to do something like POLYFORM((X+1)^2+1,X) -> X^2+2*X+2. Some places are RIDICULOUSLY sensitive about anything that even remotely resembles a symbolic result.
Later on, Cyrille wrote the excellent parser/evaluator that is in use now. It is strictly numeric and really works exactly as desired with a very, very low memory requirement to run.
The 38/39/40 really are so slow in many places because the coders who did the original 38 did a lot of the UI work in sysRPL code. Things like the list editor can be painful with lots of numbers in them.
While there still are a few areas that could use some tweaking or improvement in the 39gII, I already feel it is a much, much better unit overall compared with the previous unit.
TW
Edited: 5 Aug 2012, 10:07 p.m.
|