RESEND: Programming Languages, part 1

Subject: RESEND: Programming Languages, part 1
From: Richard Mateosian <srm -at- CYBERPASS -dot- NET>
Date: Tue, 27 Jan 1998 14:02:13 -0800

I sent this earlier, but it never appeared on the list -- even though other
things I sent later have appeared. I'm guessing it might have been too
long, so I'm breaking it in half.

************************************************************
>If you want a basic understanding of how computer programs work, then a
>procedural language like Pascal, Basic, or even FORTRAN is a good pick.

I don't think time spent learning these languages will give you much of a
return. There are, however, interesting alternatives. Here are two reviews
excerpted from my October 1997 column in IEEE Micro. The first is in this
message, the second in a following message.


Structure and Interpretation of Computer Programs, 2nd ed.,
Harold Abelson and Gerald Jay Sussman, with Julie Sussman
(MIT, Cambridge, Mass., 1996, 657 pp., ISBN 0-262-01153-0,
(800) 356-0343; $55.00)

All MIT students of electrical engineering or computer science
must take course 6.001, Structure and Interpretation of Computer
Programs. This book is the text for that course. It has an
accompanying website:

http://www-mitpress.mit.edu/sicp

On the website Abelson says:

MIT students regard 6.001 as an extremely challenging,
but highly successful subject, and they are uniformly
impressed by the amount of material they have mastered by
the end of the semester.

I'm sure this must be true. It is the best introductory book on
computer science I've seen. I'm sure that many long-time
practitioners would also benefit from reading it.

Referring to the cover illustration, adapted from a 19th century
French illustration, students call this the wizard book. The
wizard in this case is conjuring a shimmering lowercase Greek
lambda, alluding to the origins of the Lisp computer language in
Church's lambda calculus.

Yes, the book uses Lisp, that strange-looking language with all
those parentheses. More precisely, it uses Scheme Lisp, an
interesting blend of original Lisp with Algol 60. You can obtain
a complete Scheme Lisp programming environment from the
book's website.

At first I thought it was almost sadistic to inflict Lisp on 500
beginning MIT students every year. On reflection, I think it's a
perfect choice. Without a lot of extraneous explanations of
syntax and other issues of programming languages, the authors
can go directly to the basic subject matter of computer
programming. Better than any other computer language, Lisp
allows the authors to teach abstraction, the essential thought
process that all system designers must cultivate.

I remember how much fun I had learning programming in the
early 1960s. I don't think students who start with C++, Java, or
other intricate languages can have fun right away. There is too
much to master before you can do anything interesting. Many
students lose interest and give up. Lisp lets students express
themselves in the new medium right away. If they don't have
fun, it's because they don't like programming.

The book follows a progression embodied in the chapter titles:

Building Abstractions with Procedures; Building
Abstractions with Data; Modularity, Objects, and State;
Metalinguistic Abstraction; and Computing with Register
Machines.

The first three chapters cover the essentials of system design,
using Lisp. The fourth shows how to build new languages or
interpret Lisp in new ways. The final chapter gets down to
hardware, though not the way you might think!

The authors' discussion of modularity, objects, and state fully
integrates the material that occupies separate chapters (or books)
on concurrency in other approaches. This is a major
improvement over the earlier edition.

This book is not for everybody, but it is for a wider audience
than just the elite students of MIT. Every serious computer
scientist needs to understand the material it covers.
********************************************************************

Good luck. ...RM



Richard Mateosian <srm -at- cyberpass -dot- net>
Review Editor, IEEE Micro Berkeley, CA

(C) Copyright 1998. All rights reserved.




Previous by Author: Re: SUMMARY: Full-page Monitor
Next by Author: RESEND: Programming Languages, part 2
Previous by Thread: Job Opening S. CA.
Next by Thread: RESEND: Programming Languages, part 2


What this post helpful? Share it with friends and colleagues:


Sponsored Ads