Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.42!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!feeder.erje.net!news.ripco.com!rahul.net!wasp.rahul.net!rahul.net!news.lightlink.com!news.iecc.com!nerds-end From: Tony Finch Newsgroups: comp.compilers Subject: Re: How to handle qualified identifiers such as x.y in a Pascal-like language Date: 29 Jun 2011 18:55:26 +0100 (BST) Organization: dotat labs Lines: 20 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-07-002@comp.compilers> References: <11-06-037@comp.compilers> <11-06-042@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: gal.iecc.com 1309527844 51528 64.57.183.58 (1 Jul 2011 13:44:04 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 1 Jul 2011 13:44:04 +0000 (UTC) Keywords: storage, symbols Posted-Date: 01 Jul 2011 09:44:03 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Originator: fanf@chiark.greenend.org.uk ([212.13.197.229]) Xref: x330-a1.tempe.blueboxinc.net comp.compilers:178 noitalmost wrote: > >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? The paper on the implementation of Lua 5.0 describes how it deals with references to variables in outer scopes. http://www.lua.org/doc/jucs05.pdf Lua keeps book-keeping information outside the main evaluation stack; there's a parallel stack of procedure invocation records, and function closures are stored on the heap. Tony. -- f.anthony.n.finch http://dotat.at/