Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

New version of IP Pascal demo available

1 view
Skip to first unread message

Scott Moore

unread,
Jul 22, 2005, 11:15:13 PM7/22/05
to
*****************************************************************************

IP PASCAL

ISO 7185 Compliant Pascal

*****************************************************************************

The IP Pascal demo was updated to version 1.11.00

WHAT IS IT ==================================================================

IP Pascal is a multiplatform ISO 7185 Standard Pascal compiler with a
carefully crafted set of extensions. It will run on Windows/XP, Linux,
Mac OS X, and Sparc Solaris, and is currently being demoed on Windows/XP.

IP features high optimization, an IDE, and a porting platform that allows
full windowed graphical programs to run without change on all supported
platforms, as well as full access to the native APIs on each OS, an included
assembler and linker, and other supporting tools.

IP Pascal is the power of standard ISO 7185 Pascal with industrial strength
extensions for real world applications. Find out more at:

http://www.moorecad.com/ippas

WHAT'S NEW THIS VERSION =====================================================

1. IP Pascal now passes the Pascal Verification Suite, as appeared in PUG
News. This is a very intense test of ISO 7185 compliance.

2. The "update" system procedure was added. Now it is possible to update
individual records in an existing file.

3. "else" clause on "case" statements. Its now possible to have a default
clause on a case statement:

program copy(input, output);

var n: integer;

begin

repeat

write('Enter number: ');
readln(n);
case n of

1: writeln('one');
2: writeln('two');
3: writeln('three');
else writeln('What was that ?')

end

until n < 0

end.

4. Oberon style array declarations. Its possible to declare arrays using a
shorthand notation as in Oberon:

type a = array 10 of integer;

5. The built-in procedure "refer". Refer makes it possible to declare symbols
as unused, so that you can leave reference checking on, but suppress errors
on stub parameters and other similar uses:

program test;

procedure stub(a, b: integer);

begin

refer(a, b)

end;

begin
end.

6. The header file association error was resolved.

7. Automated testing. IP Pascal now has automated test generators. Along with
the Pascal Verification Suite, IP Pascal is now tested to a much higher level
for compliance and reliability.

--
Samiam is Scott A. Moore

Personal web site: http:/www.moorecad.com/scott
My electronics engineering consulting site: http://www.moorecad.com
ISO 7185 Standard Pascal web site: http://www.moorecad.com/standardpascal
Classic Basic Games web site: http://www.moorecad.com/classicbasic
The IP Pascal web site, a high performance, highly portable ISO 7185 Pascal
compiler system: http://www.moorecad.com/ippas

Good does not always win. But good is more patient.

CBFalconer

unread,
Jul 23, 2005, 8:31:05 AM7/23/05
to
Scott Moore wrote:
>
... snip ...

>
> 3. "else" clause on "case" statements. Its now possible to have
> a default clause on a case statement:
... snip ...

Bad idea. The earlier drafts of 7185 specified 'otherwise' for
this purpose, but that was dropped at the last moment. ISO10206
uses 'otherwise'.

'else' for this operation fouls up many parsing schemes. In
particular it fouls extended Pascal compatibility, and it just
isn't needed. You can always guard a case statement.

--
Chuck F (cbfal...@yahoo.com) (cbfal...@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!

Scott Moore

unread,
Jul 23, 2005, 11:41:01 AM7/23/05
to
CBFalconer wrote:
> Scott Moore wrote:
>
> ... snip ...
>
>>3. "else" clause on "case" statements. Its now possible to have
>> a default clause on a case statement:
>
> ... snip ...
>
> Bad idea. The earlier drafts of 7185 specified 'otherwise' for
> this purpose, but that was dropped at the last moment. ISO10206
> uses 'otherwise'.
>
> 'else' for this operation fouls up many parsing schemes. In
> particular it fouls extended Pascal compatibility, and it just
> isn't needed. You can always guard a case statement.
>
If you are interested, there is a writeup on the reasons why at:

http://www.moorecad.com/ippas

Under "status".

Chris Burrows

unread,
Jul 23, 2005, 9:02:52 PM7/23/05
to
"Scott Moore" <sam...@moorecad.com> wrote in message
news:3Mqdnd-eK7anK3zfRVn->

> 4. Oberon style array declarations. Its possible to declare arrays using a
> shorthand notation as in Oberon:
>
> type a = array 10 of integer;
>

Note that in Oberon this is a zero-based array equivalent to the Pascal

type a = array [0..9] of integer;

whereas in IP Pascal it is defined as a 1-based array equivalent to

type a = array [1..10] of integer

--
Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp

Scott Moore

unread,
Jul 23, 2005, 11:22:42 PM7/23/05
to

Everything stays base 1 in IP. Even file elements are 1..length(f).

I don't really care if a langauge is 1 or 0 based, as long as its consistent.

CBFalconer

unread,
Jul 24, 2005, 12:47:13 AM7/24/05
to
Chris Burrows wrote:
> "Scott Moore" <sam...@moorecad.com> wrote in message
>
>> 4. Oberon style array declarations. Its possible to declare arrays
>> using a shorthand notation as in Oberon:
>>
>> type a = array 10 of integer;
>
> Note that in Oberon this is a zero-based array equivalent to the
> Pascal
>
> type a = array [0..9] of integer;
>
> whereas in IP Pascal it is defined as a 1-based array equivalent to
>
> type a = array [1..10] of integer

and in ISO Pascal it is just a syntax error.

Chris Burrows

unread,
Jul 24, 2005, 4:28:27 AM7/24/05
to
"CBFalconer" <cbfal...@yahoo.com> wrote in message
news:42E20203...@yahoo.com...

>
> 'else' for this operation fouls up many parsing schemes. In
> particular it fouls extended Pascal compatibility, and it just
> isn't needed. You can always guard a case statement.
>

Following the same sort of logic, a Case statement 'just isn't needed'. You
can always implement it as a series of if-then-elses. However, case
statements and associated else / otherwise statements do provide a more
convenient way of clearly expressing some algorithms than the alternative
options. Moreover, the resulting code often can be implemented to perform
more efficiently.

CBFalconer

unread,
Jul 24, 2005, 6:56:59 AM7/24/05
to
Chris Burrows wrote:
> "CBFalconer" <cbfal...@yahoo.com> wrote in message
>>
>> 'else' for this operation fouls up many parsing schemes. In
>> particular it fouls extended Pascal compatibility, and it just
>> isn't needed. You can always guard a case statement.
>
> Following the same sort of logic, a Case statement 'just isn't
> needed'. You can always implement it as a series of if-then-elses.
> However, case statements and associated else / otherwise statements
> do provide a more convenient way of clearly expressing some
> algorithms than the alternative options. Moreover, the resulting
> code often can be implemented to perform more efficiently.

You miss the point. ISO7185 Pascal does not allow an ELSE in case
statements. ISO10206 does, provided it is named OTHERWISE. IP
Pascal claims to be ISO7185 conformant. With this extension it is
not. ISO 7185 programs can be compiled on ISO10206 systems. With
this extension they cannot. Error recovery schemes often depend a
small set of allowable follow symbols - this fouls that up.
OTHERWISE is a workable extension, ELSE is not.

Scott Moore

unread,
Jul 24, 2005, 12:27:05 PM7/24/05
to
CBFalconer wrote:

> You miss the point. ISO7185 Pascal does not allow an ELSE in case
> statements. ISO10206 does, provided it is named OTHERWISE. IP
> Pascal claims to be ISO7185 conformant. With this extension it is
> not. ISO 7185 programs can be compiled on ISO10206 systems. With
> this extension they cannot. Error recovery schemes often depend a
> small set of allowable follow symbols - this fouls that up.
> OTHERWISE is a workable extension, ELSE is not.

IP Pascal is ISO 7185 compliant, but it is not, and won't be,
ISO 10206 compliant.

Having extentions does not make a compiler lose compliance with ISO 7185.
If that were true, ISO 10206 would also be noncompliant with ISO 7185.

0 new messages