Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!UCF1VM.BITNET!JIM From: JIM@UCF1VM.BITNET (Jim Ennis) Newsgroups: comp.lang.modula2 Subject: Forwarded mail for Nathan Bohlman Message-ID:Date: 6 Jun 88 21:50:02 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Info-Modula2 Distribution List Organization: The Internet Lines: 67 Hello net, I found this bounced mail at my site. Jim Ennis - JIM@UCF1VM.BITNET >From: Nathan Bohlmann >To: INFO-M2@UCF1VM Greetings all, This is my first time submitting to this list as we are using a very crippled mailer here and I finally found out it doesn't put headers on my outgoing mail. Anyway, that obstacle over, I have a few words to say about the JPI Modula-2 compiler from Jensen and Partners Intl. since that has been a subject of interest lately. I can only say one thing about the system: It's FANTASTIC. I love it. The compiler is FAST, the code produced is very compact and the environment is absoultely great. It comes with a time-sliced scheduler/manager which is used in the demos that come with the compiler and it works very well on my Zenith Z-248 machine. (That's a 80286 machine for those who don't know.) The compiler has a multitude of switches so that you can do just about anything you want to a given program's running environment just by setting a few switches. I have done a bit of crude benchmarking with Turbo C and Turbo Pascal 4.0. What I found agrees with what their ads state. JPI Modula-2 beats them in every respect. I have used the compiler to compile Ken Yap's ZCAT decompressor and found that the language has the bit-shift operators built-in. This leads me to one of the flaws in the language. It has extensions out the kazoo. I do think most of them stay within the spirit of Modula-2 and I do know that most of them are very useful such as the bit-shifting and built-in type-casting which can be accomplished as follows: If Type1 is of type CARDINAL then to get an value of integer type all you need to do is say INTEGER(Type1). That's all there is to it. There are several other extensions which escape me at the moment. These extensions can be very addictive. One thing to keep in mind though is that the base Modula-2 definition is encompassed in this compiler so that 'standard' stuff should run with very few hitches. One thing that threw me for a loop the first time I encountered it though, is that this compiler does its reads funny. Instead of making the different ReadType's procedures with a variable parameter, they made them functions with no parameters that return the type you are reading. It just takes a little getting used to. A comment on the development environment. I was able to convert the neural network simulator that Mitch Wyle posted a while back in one evening. Not bad at all. The compiler automatically checks all of the dependancies in the current module and the compiles the modules needing it. That makes life much easier when working on a project of that size. One final comment. I received today a posting from Albert Meier at the Swiss Standardization Body on type casting. I would like to see the proposal from Pat Terry. Also I would like to suggest that the Standardization Body look at the way type casting is done in the JPI compiler. It works very nicely and is very readable. I would like to see something similar to this in a standard. I will be more than happy to answer any specific questions about the JPI compiler if you mail to me directly. Nathan Bohlmann ACC.NATE@VALPO Disclamer: I don't have any connection to Jensen and Partners Intl. other than being a very satisfied customer. =========================================================================