Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #20617
| From | David Kuehling <dvdkhlng@gmx.de> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Quotations revisited |
| Date | 2013-03-13 10:33 +0100 |
| Message-ID | <874ngf8x0a.fsf@mosquito.pool> (permalink) |
| References | <00808889968435@frunobulax.edu> <50040282.189860346@192.168.0.50> <771c3aa0-0b95-48af-b0fb-c6ae6269a266@googlegroups.com> |
>>>>> "Michael" == Michael L Gassanenko <m_l_g3@yahoo.com> writes: > 1. We need to decide what RECURSE means for quotations: call the > quotation or call the enclosing named definition? Maybe just declare use of RECURSE as an ambiguous condition? > 2. Closures (about which we sort of agreed to speak only > theoretically), resemble CREATE-DOES> definitions in the same way as > quotations resemble colon definitions. Quotations may reside in ROM; > closures will need some RAM. This idea is brilliant. I didn't think Forth could capture the notion of quotations, given its low-level nature, but your approach would nicely match Forth concepts. I don't think that quotations' data necessarily need to reside in RAM. There are scenarios where you just want to have constant data (e.g. compiled via CREATE an , ) associated with a closure. > 2.1. Closures assume run-time creation of execution tokens. Doesn't this creation of execution tokens create a memory leak? > 2.2. As to where the memory for data is allocated, I think, the best > answer is: let the user choose, it may be ALLOCATE or HERE SWAP ALLOT > . > 2.3. To create a closure, we will need to: allocate an area of memory > with some room for the "code field"; fill the "data field" with the > data; bind the closure with the desired behavior (writing to the "code > field"); create an xt for that "code field". In GCC this would be called a "trampoline", i.e. something like : make-trampoline ( xt1 a-addr -- xt2 ) :NONAME POSTPONE LITERAL COMPILE, POSTPONE ; created for every execution token. But how to track that memory? We'd have to provide a new word for freeing the trampoline. FORGET-[DOES>;] ( xt -- ) which cannot be implemented in ANS Forth for a definition of make-trampoline relying on :NONAME . cheers, David -- GnuPG public key: http://dvdkhlng.users.sourceforge.net/dk.gpg Fingerprint: B17A DC95 D293 657B 4205 D016 7DEF 5323 C174 7D40
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Quotations revisited Michael L Gassanenko <m_l_g3@yahoo.com> - 2013-03-13 01:54 -0700
Re: Quotations revisited Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-03-13 04:21 -0500
Re: Quotations revisited Michael L Gassanenko <m_l_g3@yahoo.com> - 2013-03-13 03:36 -0700
Re: Quotations revisited Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-03-13 07:14 -0500
Re: Quotations revisited anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-03-13 11:55 +0000
Re: Quotations revisited Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-03-13 07:20 -0500
Re: Quotations revisited anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-03-13 14:36 +0000
Re: Quotations revisited albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-03-13 13:01 +0000
Re: Quotations revisited anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2013-03-13 14:21 +0000
Re: Quotations revisited David Kuehling <dvdkhlng@gmx.de> - 2013-03-13 10:33 +0100
Re: Quotations revisited Andrew Haley <andrew29@littlepinkcloud.invalid> - 2013-03-13 04:41 -0500
Re: Quotations revisited David Kuehling <dvdkhlng@gmx.de> - 2013-03-13 11:44 +0100
Re: Quotations revisited Lars Brinkhoff <lars.spam@nocrew.org> - 2013-03-13 11:23 +0100
Re: Quotations revisited Bernd Paysan <bernd.paysan@gmx.de> - 2013-03-13 12:52 +0100
Re: Quotations revisited Lars Brinkhoff <lars.spam@nocrew.org> - 2013-03-14 09:47 +0100
Re: Quotations revisited Sieur de Bienville <morrimichael@gmail.com> - 2013-03-14 10:45 -0700
Re: Quotations revisited Lars Brinkhoff <lars.spam@nocrew.org> - 2013-03-14 19:41 +0100
Re: Quotations revisited Sieur de Bienville <morrimichael@gmail.com> - 2013-03-14 12:58 -0700
Re: Quotations revisited Michael L Gassanenko <m_l_g3@yahoo.com> - 2013-03-14 23:09 -0700
csiph-web