[comp.lang.pascal] Strings in Pascal

neves@ai.cs.wisc.edu (David M. Neves) (06/29/89)

In article <3182@mentor.cc.purdue.edu> ags@mentor.cc.purdue.edu (Dave Seaman) writes:
>
>Nobody mentioned UCSD Pascal, for a very good reason:  UCSD Pascal is as far
>removed from the standard as Turbo is, but in a slightly different direction.
I have a related question.  When people talk about Pascal-style
strings they describe the string type as it exists in UCSD/Turbo
Pascal where the length is kept in the first byte/word of the string.
Did UCSD invent this string representation?  I have been told that
strings are not a part of ANSI Pascal.  Are they a part of any other
standard or extended standard?
-thanks, david
;David Neves, Computer Sciences Department, University of Wisconsin-Madison
;Usenet:  {rutgers,ucbvax}!uwvax!neves
;Arpanet: neves@cs.wisc.edu

chip@hpclisp.HP.COM (Chip Chapin) (06/30/89)

Regarding the following...

>/ acm9@apple.ucsb.edu (Mike O'Brien) /  4:06 pm  Jun 27, 1989 /
>In article <4757@freja.diku.dk> dat0@freja.diku.dk (Dat-0 undervisningsassistent) writes:
>>Since we are about to switch from CP/M-computers to MS-DOS-computers, I was
>>wondering if there exist a truly standard Pascal-compiler running on 
>>MS-DOS-computers on the market. 
>
>I think everyone would agree that Borland International's "Turbo Pascal" 
>is the current standard in MS-DOS.  It compiles faster, and makes faster 
>and tighter EXE files, than any other Pascal on the market.  The vast 
>majority of the people on this newsgroup also seem to use Turbo Pascal.

I believe the poster is requesting information on an ISO-standard Pascal
compiler for MSDOS.  I have no beef with Turbo, and would agree that it is
certainly a de facto standard of sorts, due to large number satisfied
customers.  But it is far from the ISO-standard.  In INFOWORLD tests of 
Pascal compilers last year (Sept 12, 1988), TP4.0 actually scored the LOWEST 
in terms passing the validation test suite (72%) (it also received the
HIGHEST value score, 8.2).

Included in the comparisons were Pascal compilers from Metaware,
Microsoft, and Oregon Software.  Here are some overall scores from the
article:

	Compiler		Validation	ReportCard (10 == best)
	=======			==========	==========	
	Oregon Software
	  Pascal-2.1m		99%		6.6
	 
	Metaware Pascal 2.7	91%		6.0
	 
	Microsoft Pascal 4.0	84%		7.2
	 
	Borland 
	  Turbo Pascal 4.0	72%		8.2

It's interesting to note that the percentage of validation tests passed
seems to be inversely proportional to the overall report card score
assigned by InfoWorld.

The Oregon Software Pascal is reasonably priced at $229.  It's
relatively low overall score is mostly due to InfoWorld's heavy
weighting of the programming environment provided and obscures the fact
that its ratings were mostly VeryGood and Excellent (Pascal-2 uses the
traditional edit-compile-link-[run/debug] cycle rather than a snazy
integrated scheme like Turbo).  It includes a number of Turbo-compatible
libraries, and is InfoWorld's compiler of choice for users that "need to
write programs that will run on systems other than MS-DOS".  Since
Pascal standardization is a much greater issue in Europe than in the
USA, it would be my personal recommendation as well.

	Oregon Software
	695 S.W. Macadam Ave., Suite 200
	Portland, OR  97219
	800/874-8501, or 503/245-2202


Disclaimer: My comments are not the official opinion of Hewlett Packard.

------------------------------------------------------------
Chip Chapin -- HP Computer Language Lab
uucp:   ... {allegra,decvax,ihnp4,ucbvax} !hplabs!hpda!chip
	or ... chip%hpda@hplabs.hp.com
HPDesk: chip (hpda) /HPUNIX/UX
USMail: 47LZ; 19420 Homestead Ave; Cupertino, CA  95014
Phone:  408/447-5735                     HPTelnet: 1-447-5735
-------------------------------------------------------------

ags@mentor.cc.purdue.edu (Dave Seaman) (06/30/89)

In article <7716@spool.cs.wisc.edu> neves@ai.cs.wisc.edu (David M. Neves) writes:
>In article <3182@mentor.cc.purdue.edu> ags@mentor.cc.purdue.edu (Dave Seaman) writes:
>I have a related question.  When people talk about Pascal-style
>strings they describe the string type as it exists in UCSD/Turbo
>Pascal where the length is kept in the first byte/word of the string.
>Did UCSD invent this string representation?  I have been told that
>strings are not a part of ANSI Pascal.  Are they a part of any other
>standard or extended standard?

"Pascal-style" strings with the length kept in the first byte are indeed not a
part of ANSI Pascal (or ISO, or J&W).  I don't know who did it first, but two
of the early entries were PASCAL/Z (for Z-80 systems) and UCSD Pascal.  A
similar method (with slightly different syntax) was and is used by IBM in their
Pascal/VS (a forerunner of today's VS Pascal) on mainframes.  The idea has
caught on and is now included in most microcomputer implementations of Pascal.

None of this should be confused with conformant arrays (ISO standard, level 1),
which is another matter altogether.

FINEBERG%WUMS.BITNET@uicvm.uic.edu (07/01/89)

  I would also highly recommend Oregon Software's Pascal-2.  I have been
using their software for other systems and have found them extremely
helpfull whenever I had questions or bugs to report.  I do however wonder
what validation test they failed, I have always found that their compiler
would handle every legal Pascal program as defined by Wirth & Jensen.  I
even have been assuming that Pascal-2 is correct and I'd better be damn
sure before I claimed they made a mistake when I run into problems.

>    Oregon Software
>    695 S.W. Macadam Ave., Suite 200
>    Portland, OR  97219
>    800/874-8501, or 503/245-2202

        Charlie Fineberg                        BitNet: FINEBERG_C@WUMS
        Washington University School of Medicine
        Department of Anatomy and Neurobiology
        4566 Scott, Box 8108
        St. Louis, MO  63110

soper@xenna.UUCP (Pete Soper,,,) (07/01/89)

From article <20155@adm.BRL.MIL>, by FINEBERG%WUMS.BITNET@uicvm.uic.edu:
> 
>   I would also highly recommend Oregon Software's Pascal-2.  I have been
> using their software for other systems and have found them extremely
> helpfull whenever I had questions or bugs to report.  I do however wonder
> what validation test they failed, I have always found that their compiler
> would handle every legal Pascal program as defined by Wirth & Jensen.  I
> even have been assuming that Pascal-2 is correct and I'd better be damn
> sure before I claimed they made a mistake when I run into problems.

    Keep in mind that validation suites are frequently not static. New,
more rigorous versions are put out. When a new comes out, it may trip up
up existing compilers which are then updated to tighten conformance.
    It would be a mistake to assume a compiler is perfect just because it
passes all the tests of a validation suite. The suites are usually
comprehensive, but are never close to comprehensive enough.
----------------------------------------------------------------------
Pete Soper                                             +1 919 481 3730
arpa: soper@encore.com        uucp: {bu-cs,decvax,necntc}!encore!soper 
Encore Computer Corp, 901 Kildaire Farm Rd, bldg D, Cary, NC 27511 USA

chip@hpclisp.HP.COM (Chip Chapin) (07/04/89)

/ ags@mentor.cc.purdue.edu (Dave Seaman) / 12:38 pm  Jun 29, 1989 /
In article <7716@spool.cs.wisc.edu> neves@ai.cs.wisc.edu (David M. Neves) writes:
>>In article <3182@mentor.cc.purdue.edu> ags@mentor.cc.purdue.edu (Dave Seaman) writes:
>>I have a related question.  When people talk about Pascal-style
>>strings they describe the string type as it exists in UCSD/Turbo
>>Pascal where the length is kept in the first byte/word of the string.
>>Did UCSD invent this string representation?  I have been told that
>>strings are not a part of ANSI Pascal.  Are they a part of any other
>>standard or extended standard?
>
>"Pascal-style" strings with the length kept in the first byte are indeed not a
>part of ANSI Pascal (or ISO, or J&W).  I don't know who did it first, but two
>of the early entries were PASCAL/Z (for Z-80 systems) and UCSD Pascal.  A

UCSD was definitely before Pascal/Z.  The UCSD string representation was
in use at least a year before the release in 1977 of UCSD Pascal for the
PDP-11 (shortly followed by the Z80/8080 release).  I don't remember
seeing any other Z80 or 8080 Pascals until Mike Lehman's Pascal-MT+ in 
1979 or 1980.  I think Pascal/Z followed Pascal-MT+, but I can't be sure.

> ...
>None of this should be confused with conformant arrays (ISO standard, level 1),
>which is another matter altogether.

Interestingly, Oregon Software's current Pascal-2 implementation seems
to implement UCSD-style strings entirely within the standard Pascal
language by using conformant arrays.  Of course conformant arrays
weren't available at UCSD in 1977...

Chip "UCSD '78" Chapin

-------------------------------------------------------------
Chip Chapin -- HP Computer Language Lab
uucp:   ... {allegra,decvax,ihnp4,ucbvax} !hplabs!hpda!chip
	or ... chip%hpda@hplabs.hp.com
HPDesk: chip (hpda) /HPUNIX/UX
USMail: 47LZ; 19420 Homestead Ave; Cupertino, CA  95014
Phone:  408/447-5735                     HPTelnet: 1-447-5735
-------------------------------------------------------------