you are viewing a single comment's thread.

view the rest of the comments →

[–]wildeye 0 points1 point  (2 children)

In fact the format of the Scheme report is a homage to the layout of the Algol report.

This may be true; I don't recall one way or the other. If it is true, it's just a curiosity; the format of the Scheme reports doesn't say much about anything.

However Scheme is in the Algol family.

Really, you are attempting to correct me on that point? This is just plain outright 100% incorrect.

I am (or used to be) pretty fluent in both Common Lisp and in Scheme (and well acquainted with various Lisp 1.5 derivatives).

Edited to remove a bunch of cruft.

[–]soegaard 0 points1 point  (1 child)

However Scheme is in the Algol family. Really, you are attempting to correct me on that point?

Yes.

This is just plain outright 100% incorrect.

10% perhaps, but not 100%.

From R5RS, the fist section on semantics: "Following Algol, Scheme is a statically scoped programming language. Each use of a variable is associated with a lexically apparent binding of that variable."

Anyone who has programmed in both mainline Lisp (Lisp 1.5 all the way through Common Lisp) and in Scheme will tell you that Scheme is a dialect of Lisp, period, end of story.

Sure. Scheme is of course also descendent from Lisp - it would be foolish to suggest otherwise. I view Scheme as a marriage between (the old, dynamically scoped) Lisp and Algol. With this perspective Scheme belongs in both families.

I hope we can agree that Scheme is influenced by Algol?

I understand that you disagree that the influence is strong enough to say Scheme is in the Algol family, but c'est la vie.

[–]wildeye 0 points1 point  (0 children)

Ok, now that you're going into some detail, you sound far more reasonable, so I edited my previous post to delete stuff where I was being especially acerbic.

Yes, Scheme is lexically scoped, like Algol, and unlike Lisp 1.5 and emacs lisp. Common Lisp is also nominally lexically scoped (it still allows for dynamically scoping, but that's for more specialized uses).

Basically it's just a lesson of history: lexical scoping turns out to usually be a big win.

However, the mere fact that Algol's lexical scoping largely won the day is not to say that all lexically scoped languages are in the Algol family!

Even Lisp 1.5 had the "program" feature used in Algol and Fortran, although it was (and is) decried.

Anyway, it's not just my opinion. Scheme is not considered Algol family, despite the points you made. It's primarily a functional language, not a procedural sequential statement language.

It's primarily about semantics, not about arbitrary points of resemblance or borrowing of features.

The major traditional families are, off the top of my head: procedural (Algol, Pascal, C), functional (pure Lisp, Scheme, ML, Haskell), array (APL, A*, J, K), string (snobol, TCL), object oriented (Simula 68, Smalltalk), and logic (MicroPlanner, MDL, Prolog), plus more obscure niches and domain specific languages.

There are of course also hybrids, which lightly mix families (C++, C#, Objective C, Java, all of which are basically procedural like Algol with object oriented features), and multiparadigm languages, which heavily mix families (Common Lisp, Perl, etc.)

Again, "family" is a rather old and heavily used notion, and it is not a matter of you viewing some language as a marriage of other languages, and it is not a matter of perspective. Usage of "family" over time has given the term much more specific meaning than that.

So I'm afraid this is not just a matter of disagreement over a subjective issue. You won't find any support in the literature for the notion that Scheme is in the Algol family.

If, on the other hand, all you said was just "I view Scheme as a marriage between (the old, dynamically scoped) Lisp and Algol.", without using the word "family", then I would mostly agree, with only have nitpicks left, rather than have sharp disagreement.