Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!news.musoftware.de!wum.musoftware.de!news.ripco.com!rahul.net!wasp.rahul.net!rahul.net!news.misty.com!news.iecc.com!nerds-end From: vincent_belliard Newsgroups: comp.compilers Subject: where to take an object address? Date: Tue, 13 Sep 2011 09:23:45 -0700 (PDT) Organization: Compilers Central Lines: 22 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-09-015@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: gal.iecc.com 1316148648 52409 64.57.183.58 (16 Sep 2011 04:50:48 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 16 Sep 2011 04:50:48 +0000 (UTC) Keywords: code, design, OOP, question Posted-Date: 16 Sep 2011 00:50:48 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: x330-a1.tempe.blueboxinc.net comp.compilers:265 Hello, In many languages, when you allocate an object, the first byte of the object is the first byte allocated. However, when the object carries virtual information (for example a pointer on a virtual table), the first byte of the object data is not the first byte allocated. In Entity (http://code.google.com/p/entity-language), the object address is in the middle of the object. That means that the object address is between the virtual data and the object data. With this, a reference on an object or the reference on the data have the same value. As with other object oriented languages you can extend classes (adding some field) but you can also extend the virtual part. You can find a documentation of this here: http://code.google.com/p/entity-language/wiki/objects_addresses Vincent Belliard