The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: tfb@tfeb.org (tfb@tfeb.org)
Subject: [TUHS] Happy birthday, Niklaus Wirth!
Date: Fri, 16 Feb 2018 20:13:24 +0000	[thread overview]
Message-ID: <056F188D-E6E5-4B8F-9BD1-30FAA6E4EDDD@tfeb.org> (raw)
In-Reply-To: <20180216133512.24B19156E811@mail.bitblocks.com>

On 16 Feb 2018, at 13:34, Bakul Shah <bakul at bitblocks.com> wrote:
> 
> At any rate Algol's not having
> full lexical scoping does not mean one can simply reject the
> idea of being influenced by it. Often at the start there is
> lots of fumbling before people get it right. May be someone
> should ask Steele?

Yes, I certainly did not mean to imply that Scheme was not influenced by Algol: sorry if my message read that way.  What I was arguing against was that Scheme just somehow imported some concepts from Algol into Lisp: it *did* do that, but it also invented (or, at least, implemented in a practical, standardised language) a bunch of new concepts which were *not* present in Algol.

You are right of course that someone should ask Steele &co.

> And no, I do not think first class continuations automatically
> follow from lexical scoping.

I think they don't either, but I think that's because we've been talking about two things under one name: scope and extent.  What Scheme did was to say that it was going to be a language with lexical scope and indefinite extent, and it was going to take that seriously.  Most languages, even ones which purport to be lexically scoped, are usually both not entirely lexically scoped, and only take the indefinite extent thing seriously in sufficiently easy cases if they are.  An example of that is Common Lisp (I'm picking CL because CL is my favourite programming language which I've used for a very long time, so I think I'm allowed to be rude about it without causing offence).

CL has lexical scope and indefinite extent for variable and function bindings, so it has closures, for instance.  But it has dynamic scope and definite extent for condition handlers, for instance, as well as catch tags.  And finally it has lexical scope but definite extent for block names and go tags.

Scheme has lexical scope and indefinite extent for everything, and takes the attitude that if that makes it hard to implement then fine.  And I think that *that* was the new thing that Scheme did.  Whether the people designing Scheme knew that at the beginning (and whether their attitude was that rigorous from the beginning) I don't know.

(Of course, Scheme also made other Lisp people realise that lexical scope and mostly-indefinite-extent was a better approach than the older dynamic-scope-except-that-compiled-code-is-mostly-lexical horridness.  And I think all the Scheme implementations I've used have some mechanism of adding dynamic scope / definite extent for various things, because that's the obviously right scope for, say, condition handlers.)

I think this may be off-topic for this list, although I'm enjoying talking about it.

--tim

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180216/81591cbc/attachment.html>


  parent reply	other threads:[~2018-02-16 20:13 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-14 21:06 Dave Horsfall
2018-02-14 21:12 ` Clem Cole
2018-02-14 22:15   ` George Michaelson
2018-02-14 23:37   ` Dave Horsfall
2018-02-14 21:24 ` Toby Thain
2018-02-16  0:01   ` Dave Horsfall
2018-02-16  0:51     ` Dan Cross
2018-02-16  1:06       ` Clem cole
2018-02-16  3:10         ` Toby Thain
2018-02-16 13:36           ` Clem Cole
2018-02-16  1:18       ` Larry McVoy
2018-02-16  1:55         ` George Michaelson
2018-02-16  1:56         ` Lawrence Stewart
2018-02-16  2:38           ` Dan Cross
2018-02-16  2:41             ` Larry McVoy
2018-02-16  2:51               ` Dan Cross
2018-02-16  2:56                 ` George Michaelson
2018-02-16  2:51               ` [TUHS] Clueless programmers - was " Toby Thain
2018-02-16  2:55                 ` Larry McVoy
2018-02-16 10:26               ` [TUHS] " Tim Bradshaw
2018-02-16  1:25       ` Ian Zimmerman
2018-04-24  0:59         ` Ian Zimmerman
2018-04-24  3:26           ` Dave Horsfall
2018-04-24  4:31           ` Dan Stromberg
2018-04-24 13:42             ` Clem Cole
2018-02-16  2:09       ` Bakul Shah
2018-02-16  2:31         ` Toby Thain
2018-02-16 10:01         ` Tim Bradshaw
2018-02-16 12:10           ` Bakul Shah
2018-02-16 12:37             ` tfb
2018-02-16 13:34               ` Bakul Shah
2018-02-16 14:07                 ` Bakul Shah
2018-02-16 20:13                 ` tfb [this message]
2018-02-16  3:17       ` Dan Stromberg
2018-02-14 23:19 ` Greg 'groggy' Lehey
2018-02-14 23:31   ` Dave Horsfall
2018-02-15 17:32     ` Steffen Nurpmeso
2018-02-15 19:18       ` Ian Zimmerman
2018-02-15 20:56         ` Steffen Nurpmeso
2018-02-15 21:31         ` Jeremy C. Reed
2018-02-15  2:30 ` Nemo
2018-02-16  2:19 Noel Chiappa
2018-02-16  2:48 ` Larry McVoy
2018-02-16  4:19   ` Steve Nickolas
2018-02-16 11:27   ` Tim Bradshaw
2018-02-16 15:45     ` Nemo
     [not found] <mailman.1.1518746401.1018.tuhs@minnie.tuhs.org>
2018-02-16  2:40 ` Paul McJones
2018-02-16 13:42 Noel Chiappa
2018-02-16 21:02 ` Tim Bradshaw
     [not found] <mailman.22.1518790085.20342.tuhs@minnie.tuhs.org>
2018-02-16 17:40 ` Paul McJones
2018-02-16 19:24   ` Bakul Shah
2018-02-18 20:50 Norman Wilson
2018-02-19  0:28 ` Dave Horsfall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=056F188D-E6E5-4B8F-9BD1-30FAA6E4EDDD@tfeb.org \
    --to=tfb@tfeb.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).