Related articles |
---|
classes, stack and vm's alex@toomuchspace.com (Alexander Cohen) (2004-09-08) |
From: | Alexander Cohen <alex@toomuchspace.com> |
Newsgroups: | comp.compilers |
Date: | 8 Sep 2004 00:06:17 -0400 |
Organization: | Compilers Central |
Keywords: | architecture |
Posted-Date: | 08 Sep 2004 00:06:17 EDT |
Hi, im trying to learn a bit about virtual machines and how they
interact with the stack and the symbol list. Im a bit stuck on a
problem.
I have 1 stack and 1 symbol list. I have objects that can be created
and when created, they all have members and functions stored in the
object itself. The members are stored as an internal symbol list to
the object.
So lets say i want to call 1 of the functions of an object with a few
parameters like this:
obj2 = object.DoThis(par1)
And its defined like so:
obj2 object::DoThis(par1)
{
return new obj2
}
lets say <object> is already on the top of the stack, its also in the
symbol list since its a valid instance of an object. I need to pop it
off, then push <par1> onto the stack. Then i can jump to
<object::DoThis> and it will pop the stack to get the first parameter.
Where should this be stored? Should i add it <object>s symbol list so
it can be used thoughout the function? Should i put it in a temp symbol
list? Should i have a local and a global symbol list. I would go
through the locals, and if i dont find the symbol i need, go through
the global one.
Is there any tutorial on something like anywhere? I feel like there are
just a few things i need to grasp a bit better.
thanks
--
Alexander Cohen
Return to the
comp.compilers page.
Search the
comp.compilers archives again.