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:
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.
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!
Under "status".
> 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
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.
and in ISO Pascal it is just a syntax error.
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.
> 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.