|[6 earlier articles]|
|Re: Language Design firstname.lastname@example.org (Christophe de Dinechin) (2011-07-23)|
|Re: Language Design email@example.com (Oleg Sesov) (2011-07-23)|
|Re: Language Design firstname.lastname@example.org (Gene) (2011-07-26)|
|Re: Language Design email@example.com (tm) (2011-07-27)|
|Re: Language Design firstname.lastname@example.org (Roberto Waltman) (2011-07-28)|
|Re: Language Design email@example.com (firstname.lastname@example.org) (2011-08-04)|
|Re: Language Design email@example.com (2011-08-08)|
|Language design David.Chase@Eng.Sun.COM (1991-09-04)|
|From:||firstname.lastname@example.org (Torben Ęgidius Mogensen)|
|Date:||Mon, 08 Aug 2011 16:11:05 +0200|
|Organization:||SunSITE.dk - Supporting Open source|
|Keywords:||design, Pascal, history|
|Posted-Date:||08 Aug 2011 17:58:46 EDT|
Gene <email@example.com> writes:
> The old Turbo Pascal 2.0 dialect was pretty remarkable. There was a
> version for Z80 (CP/M) and 8086 (MSDOS). I think the whole compiler
> was only 50K or so.
> Pascal is also straightforward to compile, especially if you don't
> allow nested functions/procedures (although Turbo did).
Turbo Pascal used shallow binding, which makes nested procedures
relatively simple to implement, though it made reference parameters
behave in a non-standard way.
With shallow binding, each variable name has its own global memory
address. When you during execution pass a variable declaration, you
stack the current value of the variable and set the new value according
to the declaration. When you exit the scope of the declaration, you
restore the old value from the stack.
IIRC, later versions of Turbo Pascal changed this to be more standard
compliant (i.e., by using deep binding).
Return to the
Search the comp.compilers archives again.