[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Low-level vs. High-level programming (was My First Computer)



"Michael Pender" <mpender@hotmail.com> writes:
> Apple Pascal was a half-baked implementation of the language that offered
> very limited system access.

I'm not sure what you mean by "half-baked" and "very limited system access".
Apple Pascal was a port of UCSD Pascal, and generally offered *more*
capabilities and system access than standard Pascal as defined in
_Pascal User Manual and Report_ by Jensen and Wirth.


> It was a compiled Fortran program that
> inherited all of the limitations of the Fortran language, as well as those
> of Pascal.

The compiler was itself written in Pascal, and was derived from the
Zurich P2 Portable Compiler.  I don't have the source code for Apple
Pascal, but below I've attached the first few lines of the compiler
source code (file COMPA.TXT) from UCSD Pascal release I.3.



(*$U-*)
PROGRAM PASCALSYSTEM;

(************************************************)
(*                                              *)
(*        UCSD  PASCAL  COMPILER                *)
(*                                              *)
(*    BASED ON ZURICH P2 PORTABLE               *)
(*    COMPILER, EXTENSIVLY                      *)
(*    MODIFIED BY ROGER T. SUMNER               *)
(*    1976..1977                                *)
(*                                              *)
(*    INSTITUTE FOR INFORMATION SYSTEMS         *)
(*    UC SAN DIEGO, LA JOLLA, CA                *)
(*                                              *)
(*    KENNETH L. BOWLES, DIRECTOR               *)
(*                                              *)
(*    THIS SOFTWARE IS THE PROPERTY OF THE      *)
(*  REGENTS OF THE UNIVERSITY OF CALIFORNIA.    *)
(*                                              *)
(************************************************)

TYPE PHYLE = FILE;
     INFOREC = RECORD
		 WORKSYM,WORKCODE: ^PHYLE;
		 ERRSYM,ERRBLK,ERRNUM: INTEGER;
		 STUPID: BOOLEAN
	       END;

PROGRAM PROCEDURE USERPROGRAM;
BEGIN END (*USERPROGRAM*) ;

PROGRAM PROCEDURE COMPILER(VAR USERINFO: INFOREC);

CONST DISPLIMIT = 12; MAXLEVEL = 8; MAXADDR = 28000;