Groups | Search | Server Info | Login | Register


Groups > comp.compilers > #168

Re: How to handle qualified identifiers such as x.y in a Pascal-like language

From noitalmost <noitalmost@cox.net>
Newsgroups comp.compilers
Subject Re: How to handle qualified identifiers such as x.y in a Pascal-like language
Date 2011-06-23 12:43 -0400
Organization Compilers Central
Message-ID <11-06-042@comp.compilers> (permalink)
References <11-06-037@comp.compilers>

Show all headers | View raw


On Monday, June 20, 2011 03:43:24 pm John wrote:
>> Is this a reasonable way to approach the problem?
> [Pretty much.  The standard way to handle references to an enclosing
> scope is with a display, the calling procedure passes the enclosing
> stack frame addresses as hidden parameters.  If your language doesn't
> allow variable sized declarations or recursion, P.x will be at a fixed
> distance below the current stack frame so you can address it directly,
> but in a more general case, you need the display.  See any 1970s
> compiler text for details. -John]

My language does allow recursion, so my approach won't work as
written. So the AST node for an Ident should have a field for
enclosing scope levels, not stack levels?

I looked at Aho's description of displays. Currently, my interpreter
is using a more abstract stack. It's a stack of pointers, so the first
declared variable in a scope goes at frame offset 0, the second at
offset 1, etc. I was thinking of dedicating offset 0 to be a pointer
to all the bookkeeping info, such as enclosing scope pointers. Will
this work as my language matures, or are there some glaring gotchas?
[You more or less need a static place to pick up a pointer to the
stack frame for the current invocation of each lexically enclosing
routine. I don't see any reason that pointer to the display in a fixed
place wouldn't work. It's covered in detail in any compiler text
written when people still worried about compiling Pascal. -John]

Back to comp.compilers | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

How to handle qualified identifiers such as x.y in a Pascal-like language noitalmost <noitalmost@cox.net> - 2011-06-20 15:43 -0400
  Re: How to handle qualified identifiers such as x.y in a Pascal-like language torbenm@diku.dk (Torben Ægidius Mogensen) - 2011-06-22 10:57 +0200
  Re: How to handle qualified identifiers such as x.y in a Pascal-like language Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2011-06-22 11:47 +0100
    Re: How to handle qualified identifiers such as x.y in a Pascal-like language George Neuner <gneuner2@comcast.net> - 2011-06-24 18:13 -0400
      Re: How to handle qualified identifiers such as x.y in a Pascal-like language BGB <cr88192@hotmail.com> - 2011-06-29 12:31 -0700
        Re: How to handle qualified identifiers such as x.y in a Pascal-like language BGB <cr88192@hotmail.com> - 2011-07-01 12:46 -0700
        Re: How to handle qualified identifiers such as x.y in a Pascal-like language anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-07-02 17:13 +0000
          Re: How to handle qualified identifiers such as x.y in a Pascal-like language BGB <cr88192@hotmail.com> - 2011-07-03 13:14 -0700
            Re: How to handle qualified identifiers such as x.y in a Pascal-like language torbenm@diku.dk (Torben Ægidius Mogensen) - 2011-07-07 10:27 +0200
            Re: How to handle qualified identifiers such as x.y in a Pascal-like language BGB <cr88192@hotmail.com> - 2011-07-07 04:14 -0700
        Re: How to handle qualified identifiers such as x.y in a Pascal-like language George Neuner <gneuner2@comcast.net> - 2011-07-02 16:58 -0400
  Re: How to handle qualified identifiers such as x.y in a Pascal-like language Gene <gene.ressler@gmail.com> - 2011-06-22 19:21 -0700
    Re: How to handle qualified identifiers such as x.y in a Pascal-like language Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2011-06-24 07:56 +0100
      Re: How to handle qualified identifiers such as x.y in a Pascal-like language Gene <gene.ressler@gmail.com> - 2011-06-24 19:19 -0700
        Re: How to handle qualified identifiers such as x.y in a Pascal-like language Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2011-06-25 11:55 +0100
          Re: How to handle qualified identifiers such as x.y in a Pascal-like language noitalmost <noitalmost@cox.net> - 2011-06-29 13:13 -0400
    Re: How to handle qualified identifiers such as x.y in a Pascal-like language "[Linux Magazine]" <uu3kw29sb7@snkmail.com> - 2011-06-24 13:58 +0200
      Re: How to handle qualified identifiers such as x.y in a Pascal-like language George Neuner <gneuner2@comcast.net> - 2011-06-25 17:11 -0400
  Re: How to handle qualified identifiers such as x.y in a Pascal-like language noitalmost <noitalmost@cox.net> - 2011-06-23 12:43 -0400
    Re: How to handle qualified identifiers such as x.y in a Pascal-like language Tony Finch <dot@dotat.at> - 2011-06-29 18:55 +0100
    Re: How to handle qualified identifiers such as x.y in a Pascal-like language BGB <cr88192@hotmail.com> - 2011-06-29 15:51 -0700

csiph-web