[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

This page is part of the web mail archives of SRFI 17 from before July 7th, 2015. The new archives for SRFI 17 contain all messages, not just those from before July 7th, 2015.

*To*: sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx (Michael Sperber [Mr. Preprocessor])*Subject*: Re: time to finish off/up srfi-17*From*: Per Bothner <per@xxxxxxxxxxx>*Date*: 24 Jul 2000 02:07:44 -0700*Cc*: srfi-17@xxxxxxxxxxxxxxxxx*In-reply-to*: Per Bothner's message of "23 Jul 2000 09:55:16 -0700"*References*: <m2bszwipw2.fsf@xxxxxxxxxxx> <s3ittz9mrh.fsf@xxxxxxxxxxx> <14712.51170.306608.256259@xxxxxxxxxxxxxxx> <m2em4nyvh7.fsf@xxxxxxxxxxx> <14712.55799.726952.290395@xxxxxxxxxxxxxxx> <y9lzonai884.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <m23dl0yeff.fsf@xxxxxxxxxxx>*Sender*: bothner@xxxxxxxxxxx*User-agent*: Gnus/5.0803 (Gnus v5.8.3) XEmacs/21.1 (Canyonlands)

Per Bothner <per@xxxxxxxxxxx> writes: > Ok, let's finalize it then. Thanks for your patience. Ooops. Mikael Djurfeldt <mdj@xxxxxxxxxxxxxxx> just mailed me a suggested formal syntax and semantics. I'm just about to go to bed, so I haven't had a chance to more than glance it, but it seems to make sense to edit it in. What do you people more experienced in these things think? I [i.e. Mikael] chose between an intuitive version which cuts pretty deeply into the semantics of Scheme and a more conservative version which was less intuitive. I chose the former because of its clarity. Though, it's worth noting that the change is less deep than it looks like: We basically only add a new applicable type, and most implementations in practise already have several applicable types (several types of procedures, continuations etc). ---------------------------------------------------------------------- Extensions to formal syntax: 1. <generalized assignment> is substituted for <assignment> in the production for <expression>. 2. The following two productions are added: <generalized assignment> --> (set! <access spec> <expression>) <access spec> --> <variable> | <procedure call> ---------------------------------------------------------------------- Extensions to formal semantics: Abstract syntax: 1. A new alternative for `set!' is added to the production for Exp: Exp --> K | ... | (set! (E0 E*) E1) Domain equations: 2. The following equation is added: Fs = L x (E* --> K --> C) x F 3. The equation for E is extended with Fs, i.e. it changes from E = Q + H + R + Ep + Ev + Es + M + F to E = Q + H + R + Ep + Ev + Es + M + F + Fs Semantic functions: 4. The following definition is added: E[[ (set! (E0 E*) E1) ]] = E[[ ((setter E0) E* E1) ]] Auxiliary functions: 5. `applicate' is changed from lambda e e* k . e belongs to F --> (e | F ref 2) e* k, wrong "bad procedure" to lambda e e* k . e belongs to F --> (e | F ref 2) e* k, e belongs to Fs --> (e | Fs ref 2) e* k, wrong "bad procedure" 6. The following functions are added: setter: E* --> K --> C setter = onearg(lambda e k . e belongs to Fs --> send(e | Fs ref 3 in E), wrong "bad procedure with setter") getter-with-setter: E* --> K --> C getter-with-setter = twoarg(lambda e1 e2 k sigma . e1 belongs to F --> (e2 belongs to F --> (new sigma belongs to L --> send(<new sigma, e1 | F ref 2, e2 | F> in E) k (update (new sigma | L) unspecified sigma), wrong "out of memory" sigma), wrong "bad procedure in second argument"), wrong "bad procedure in first argument") -- --Per Bothner per@xxxxxxxxxxx http://www.bothner.com/~per/

**Follow-Ups**:**Re: time to finish off/up srfi-17***From:*Michael Sperber [Mr. Preprocessor]

**References**:**time to finish off/up srfi-17***From:*Per Bothner

**Re: time to finish off/up srfi-17***From:*Michael Livshin

**Re: time to finish off/up srfi-17***From:*Shriram Krishnamurthi

**Re: time to finish off/up srfi-17***From:*Per Bothner

**Re: time to finish off/up srfi-17***From:*Shriram Krishnamurthi

**Re: time to finish off/up srfi-17***From:*Michael Sperber [Mr. Preprocessor]

**Re: time to finish off/up srfi-17***From:*Per Bothner

- Prev by Date:
**Re: time to finish off/up srfi-17** - Next by Date:
**Re: time to finish off/up srfi-17** - Previous by thread:
**Re: time to finish off/up srfi-17** - Next by thread:
**Re: time to finish off/up srfi-17** - Index(es):