shaffer@operations.dccs.upenn.edu (Earl Shaffer) (07/20/87)
What is "Scheme"? What does it look like (LISP, C, ?)? Why would a school want to use it as intro language for the "intro" class? ============================================================================== Earl Shaffer - University of Pennsylvania - Data Communications Department "Time was invented so that everything wouldn't happen at once." Steven Wright ==============================================================================
willc@tekchips.TEK.COM (Will Clinger) (07/22/87)
In article <1493@super.upenn.edu.upenn.edu> shaffer@operations.dccs.upenn.edu.UUCP (Earl Shaffer) writes: >What is "Scheme"? What does it look like (LISP, C, ?)? >Why would a school want to use it as intro language for the >"intro" class? Scheme's surface syntax looks like Lisp. From the "Revised^3 Report on the Algorithmic Language Scheme" (December 1986 SIGPLAN Notices): Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.... ....Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today. From Abelson & Sussman, "Structure and Interpretation of Computer Programs", MIT Press, 1985: In teaching our material we use [Scheme]. We never formally teach the language.... We just use it, and students pick it up in a few days. This is one great advantage of Lisp-like languages: They have...almost no syntactic structure.... After a short time we forget about syntactic details...and get on with the real issues---figuring out what we want to compute, how we will decompose problems into manageable parts, and how we will work on the parts. Another advantage of [Scheme] is that it supports (but does not enforce) more of the large-scale strategies for decomposition of programs than any other language we know. We can make procedural and data abstractions, we can use higher-order functions to capture common patterns of usage, we can model local state using assignment and data mutation, we can link parts of a program with streams and delayed evaluation, and we can easily implement embedded languages. All of this is embedded in an interactive environment with excellent support for incremental program design, construction, testing, and debugging.... Scheme...is an attempt to bring together the power and elegance of Lisp and Algol. From Lisp we take the metalinguistic power that derives from the simple syntax, the uniform representation of programs as data objects, and the garbage-collected heap-allocated data. From Algol we take lexical scoping and block structure, which are gifts from the pioneers of programming-language design who were on the Algol committee.... The Abelson & Sussman(s) book is itself an excellent reason for using Scheme in an introductory computer science class. Several fine implementations are now available, including PC Scheme, MacScheme, Chez Scheme (VAX Unix), T3 (various workstation-class machines), MIT Scheme (an interpreter written in portable C), and Scheme48 (an interpreter written in portable Scheme). Scheme is simple, powerful, fun. Peace, William Clinger Tektronix Computer Research Lab
bpendlet@esunix.UUCP (Bob Pendleton) (07/27/87)
in article <1493@super.upenn.edu.upenn.edu>, shaffer@operations.dccs.upenn.edu (Earl Shaffer) says: > > What is "Scheme"? What does it look like (LISP, C, ?)? Scheme is a lexically scoped dialect of LISP. A truely elegant language. Like great poetry it is worth studying for its structure as well as its content. > Why would a school want to use it as intro language for the > "intro" class? My guess would be that the people setting up the class have read "Structure and Interpretation of Computer Programs" by Abelson and Sussman. I hope I got that right, I'm working from memory, my copy is at home. All the examples in the book are in Scheme. If they haven't read it, they should. It is a GREAT book. But then I'm biased, the intro says nice things about someone I respect a great deal. To extend my guess to the tip of the limb :-), it sounds like someone wants to teach some computer science in an intro class. Not a bad idea that! Bob Pendleton -- Bob Pendleton @ Evans & Sutherland UUCP Address: {decvax,ucbvax,ihnp4,allegra}!decwrl!esunix!bpendlet Alternate: {ihnp4,seismo}!utah-cs!utah-gr!uplherc!esunix!bpendlet I am solely responsible for what I say!b