Path: utzoo!mnetor!uunet!nuchat!peter From: peter@nuchat.UUCP (Peter da Silva) Newsgroups: comp.sys.amiga Subject: Re: Anyone seen a good Amiga Pascal lately ? Why not Modula-2? Message-ID: <735@nuchat.UUCP> Date: 5 Mar 88 17:43:42 GMT References: <2605@crash.cts.com> Organization: Public Access - Houston, Tx Lines: 150 In article <2605@crash.cts.com>, haitex@pnet01.cts.com (Wade Bickel) writes: > ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) writes: > > Please enable your SMILEY_FACE bit while reading this posting. Hmmm. Someone didn't... > >In article <405@csvax.liv.ac.uk> sqrkl@csvax.liv.ac.uk writes: > >>Has anyone seen a GOOD Pascal compiler for the Amiga yet ? > > There is no such thing as a GOOD Pascal compiler. This is largely > >because, while C compilers are designed to generate code, Pascal compilers > >are designed to generate error messages. Cute. > I use Benchmark Modula-2. It has advantages and disadvantages > over C. Listing the assets/liabilities of each > C: + Established high level (supposedly :^)) language > for the Amiga. Most source is currently in C. Compared to the other languages that people do systems programming in, C is practically dictatorial about types. Have you looked into BCPL (:-<), PL/M, Bliss, or Assembly (:-/) lately? > + Pre-initialization of data. This is one hell of a biggee. I've seen the gross things people have had to do in Modula to emulate that (like turning off entry code and stuffing the data into a procedure, and then typecasting a procedure to whatever data type they want. > + Register specification. This is mainly due to the low level of most compilers of any kind on micros. The register specification is more of a hint than anything else on big machines these days. + Huge library of decent-quality public domain 'C' source exists, thanks to comp.sources.*. + A good standard library exists that makes porting well behaved and reasonably efficient programs between wildly differing computer architectures commonplace. > - C compilers are buggy. When I first got Manx (v3.20a) > it was buggy and Manx was unresponsive to the problem. > It was over a month before any help was provided, and > the patches supplied were incomplete. As far as I know > there are still problems. I see Manx and Lattice bug > reports regularly. There are hundreds of Benchmark > user's, ever seen a Benchmark bug report? I don't know about Benchmark, but the first modula I was exposed to, on the PC, was a horrible integrated environment that crashed if you tried to import code into their syntax-dependent editor. Also, there are thousands of C users. People also tend to be more critical of 'C' compilers on the net, since they're exposed to so many good ones on their UNIX boxes. > M2: (Benchmark) > > + Integrated Development Environment. This makes using > Benchmark extremely easy. From the editor (modified > gnu-EMACs) just hit F2 to compile the current buffer, > F3 to link, and F4 to execute the file (directly from > the editor). If after compiling a buffer errors were > found, F1 can be used to step through them, and the > system descibes the errors. Every aspect of the Dev. > Environment is good (though of course there is always > room for improvement). I'd put this as a minus for Benchmark, though M2Amiga seems to make good use of the integrated environment the Amiga comes. Neither a plus nor a minus for Modula as a whole. > + Nested comments are allowed in M2. I find this very > useful. Syntactic sugar. Some 'C' compiler allow this, others have a compile-time switch for it. I tend to use preprocessor directives for compilation control, myself. Speaking of compilation control, what does Modula provide? > + M2 includes a statement called "WITH" which supports > record (structure) access. As far as I can tell > no equivalent to this statement exists in C (as avail- > able on the Amiga). This statement leads to both > more readable (in terms of context) source, and more > efficeint code. Now we're getting down to religious differences. Myself, I like: register weird_structure *ptr; ptr = complex expression; ptr->... to WITH complex expression DO END; Mainly because of the semantic confusion that can occur if you're using two different syntaxes for accessing the same data. schooner.masts = 3; and masts = 3; > + Readablility. M2 is much more readable than C. This > is of value to the novices and group efforts. That's a matter of opinion. I find 'C' more readable myself, since I don't have to parse control flow words out of the language. Can't put this one on either side of the balance. > + Benchmark includes a large number of examples. More than comp.sources or even the RKM? Wow, and one minus that's a reference to political problems rather than the languages themselves. Glad to see you're so even handed. There are things I don't like about 'C' myself. I've got M2Amiga sitting here looking very attractive. One day I'll get the time to play with it. > In my opinion Leo, it is not so much the language as the > implementation that makes the difference. Nope, it's the language. > Benchmark is the best piece of software I've seen for the Amiga. I kind of like Intuition myself. > As far as I can tell > there is nothing you can do in C you can't do in M2 (except assign > a "register variable"). C is the only high-level language that provides more than minimal support for large compile-time initialised data structures. There are other advantages, but I'm not interested in debating religious issues (geeze, what a hypocrite) (shut up, Peter)... -- -- a clone of Peter (have you hugged your wolf today) da Silva `-_-' -- normally ...!hoptoad!academ!uhnix1!sugar!peter U -- Disclaimer: These aren't mere opinions... these are *values*.