Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!mstan!amull From: amull@Morgan.COM (Andrew P. Mullhaupt) Newsgroups: comp.lang.pascal Subject: Re: Runtime dimensioning and Pascal Summary: Procedure parameters supported in Turbo Pascal v. >=5.0 Message-ID: <504@s5.Morgan.COM> Date: 12 Nov 89 17:49:47 GMT References: <6354@merlin.usc.edu> <9686@vax1.cc.lehigh.edu> <1989Nov12.040036.10887@psuvax1.cs.psu.edu> Organization: Morgan Stanley & Co. NY, NY Lines: 32 Turbo Pascal supports procedure and function parameters in all versions >= 5.0. The useful extension procedure and function types is also supported. The failure to support ISO level 1 extensions (conformant array parameters) cannot, strictly speaking be considered a failure to conform to the ISO standard. ANSI only supports ISO level 0, so level 1 support is strictly speaking, and ANSI extension. Borland and Microsoft (following Borland's lead) are off on some tangent to Pascal: Object extensions. While what we probably need are extensible arrays and removal of segmentation restrictions (and no stupid 'huge' keyword nonsense, either!) the big two Pascal vendors seem to be preoccupied with marketing. As far as the dreaded file I/O goes, get real guys. Pascal clearly intends this operating system dependent stuff to be ingored by the standard, and handled by extensions, for the most part. Thus you need to write a collection of primitives for I/O that are implemented for each OS you need. If you write all your code in terms of ISO standrard invocations of your I/O routines, then you can port anything to any OS where you have implemented your primitives. Anyone who has a great stake in multiple machine ports of software should be willing to invest the time to write a few I/O routines and then paste up the appropriate source@c{" in an automated way. I have found that this approach actually can result in efficiency gains, and I've yet to lose anywhere near the time porting Pascal as I have lost porting C. Later, Andrew Mullhaupt