Complementing the delights of PIL are the progress of version 5.0, which it documents. 5.0 includes co-routines, tail calls, booleans, "weak tables", improvements in exception handling, lexical scoping, and metatables.
Posted to Misc-Books by Chris Rathman on 5/22/04; 3:13:48 PM
Discuss (1 response)
The book, originally published by Springer-Verlag in 1993 is now online.
I haven't read it, but it looks rather intriguing (check, for example, section 5.7 on Probabilistic Programming).
If anyone is more familiar with the book, I'd be glad to hear what you think.
Posted to Misc-Books by Ehud Lamm on 4/28/04; 2:50:21 AM
Discuss (2 responses)
The use of multimedia was a lot of fun for me, and should quickly dispel the myth that IO is difficult in Haskell.
Posted to Misc-Books by andrew cooke on 3/16/04; 11:06:07 AM
Discuss (2 responses)
Steve McConnell is preparing a 2nd edition of Code Complete, and is making draft chapters available online for review.
Even though the book isn't about programming languages as such, quite a few of the issues discussed in the book are influenced by the choice of programming language. Perhaps a few comments from functional programming experts can result in Haskell being mentioned in the book, which undoubtedly is going to be widely read...
Keep in mind, however, that the book is quite introductory and focuses on mainstream techniques.
Posted to Misc-Books by Ehud Lamm on 2/27/04; 11:46:21 AM
Discuss (3 responses)
Computer Science Logo Style is a a three-volume series intended mainly for teenagers and their teachers. These books were recommended here quite a few times.
Posted to Misc-Books by Ehud Lamm on 1/15/04; 2:21:45 PM
Discuss (1 response)
This is the text for my course at Brown, which I supplement with some material that I discuss in the Preface. The course uses Scheme and is interpreter-based, but diverges considerably from EoPL in both style and coverage. In particular, it is part of my continuing attempt to find a happy medium between the interpreter and survey-of-languages schools of teaching programming languages.
I was quite fond of Shriram's previous set of lecture notes, and the lecture notes cum book he produced with Matthias Felleisen.
Posted to Misc-Books by Ehud Lamm on 12/17/03; 5:27:12 AM
Discuss (2 responses)
The book doesn't look all that interesting but some of the papers that I am familiar with are worth reading.
Posted to Misc-Books by Ehud Lamm on 12/7/03; 8:51:24 AM
Discuss
From Bill Clementson: A nice list of Lisp books, annotated with one-line reviews .
Posted to Misc-Books by Ehud Lamm on 8/27/03; 1:12:31 AM
Discuss (1 response)
Posted to Misc-Books by Ehud Lamm on 8/25/03; 6:24:35 AM
Discuss (2 responses)
From a programming language standpoint, I find the genre of Best Practices or Style Guides to be interesting. Some languages have a text that serves the purpose of both defining and setting the style used for the language - K&R comes to mind. My favorite guide would have to be Smalltalk With Style which is an in-depth look at the best practices that have informally cropped up in the Smalltalk world.
Posted to Misc-Books by Chris Rathman on 8/18/03; 8:53:44 AM
Discuss (2 responses)
Dick Gabriel has published his excellent book "Patterns of Software" as
a freely downloadable PDF file on his website http://www.dreamsongs.com/
Posted to Misc-Books by Manuel Simoni on 8/9/03; 10:46:00 AM
Discuss (13 responses)
I give the Little MLer high marks in terms of covering the topics of defining datatypes and signatures, and showing how to manipulate them within functions. Matthias especially concentrates on recursion - both within the datatypes and functions.
On the downside, the author should have stuck with more concrete examples for a little longer - food and pizza are abandoned somewhere in the middle for more abstract X's & Y's. I also had high hopes for the last chapter on Functors - I've had a mental block on this for some time having got stuck in chapter #7 of Paulson's ML for the Working Programmer. The Little MLer has some interesting lessons on Functors, but in the end they leave me more confused than when I started.
Ok, so the point of the book is not so much to teach ML but rather to teach valuable programming lessons. In that area, I think the book succeeds.
Posted to Misc-Books by Chris Rathman on 7/27/03; 2:18:16 PM
Discuss (12 responses)
I haven't seen this book yet, but it sounds very interesting. Seems like something I can use in my code reading workshops. So if anyone read the book, please let us know what you think about it.
Interestingly enough, open source projects don't choose programming languages based on readability. This is one of things Ada fans are really frustrated about...
But, to be fair, open source did change some of the dynamics in the programming language market place. More Python and less Java than you would have predicted a couple of years ago. Is readability part of the explanation?
Posted to Misc-Books by Ehud Lamm on 7/19/03; 1:35:18 AM
Discuss (1 response)
Seems to be the proceedings from this symposium. Looks interesting.
Maybe some of the papers are on-line?
Posted to Misc-Books by andrew cooke on 5/27/03; 1:41:08 PM
Discuss (1 response)
The book describes a way of building concurrent systems by combining sequential processes that run in parallel, and a formal framework for thinking about them. The influence of CSP can clearly be seen in languages like Erlang and Concurrent ML.
Posted to Misc-Books by Luke Gorrie on 4/7/03; 5:54:15 AM
Discuss (4 responses)
A thorough, exhaustively complete treatment of a complex subject. An essential reference for C++ programmers and a lengthy and boring book for anyone else.
I'm currently in the process on finishing Andrei Alexandrescu's Modern C++ Design, and don't have it in me to start reading another C++ templates book, at least not right away.
I must also admit that right now I do not have it in me to read the Slashdot thread that follows this review.
It is worth noting that this book was written by the moderators of comp.lang.c++.moderated so it should be technically accurate.
Posted to Misc-Books by Dan Shappir on 3/22/03; 11:53:45 AM
Discuss (3 responses)
Attached is a formatted version of Crenshaw's Let's build a compiler in doc
format. It's not formatted to the best possible extent, but it's fine for
viewing/printing/converting to html.
(I have absolutely no contribution to it's technical content. I am not
responsible for any errors that might have crept in during formatting.
Infact, i've not yet verified if anything is in proper order).
o All tutor*.txt files have been retained
o Only an excerpt from readme.txt is included
o All part's have heading 1. All subheadings are converted to heading 2.
There are also PDF and compressed PDF versions.
Posted to Misc-Books by Ehud Lamm on 3/17/03; 2:28:37 PM
Discuss (1 response)
The book is now available for free download (registration required).
This book is a systematic account of common server-side Java programming mistakes, their causes and solutions. It covers antipatterns for base Java and J2EE concepts such as Servlets, JSPs, EJBs, enterprise connection models, and scalability.
Better than selling more snake oil.
Posted to Misc-Books by Ehud Lamm on 7/12/02; 4:14:32 AM
Discuss
Posted to Misc-Books by Ehud Lamm on 6/11/02; 7:32:56 AM
Discuss (2 responses)
Ages ago, when this site was so young we only had two contributing editors (thanks Andrew and Chris!), we agreed that it would be ok if very rarely we would mention interesting books, that are not directly related to programming languages, but may interest LtU readers none the less. Well, I decided to mention this book...
As you all know I am a fan of the biology as computation school (I've been head saying that biology departments should be integrated into CS departments ) This book explores several important unconventional computational models many of which are inspired by biology.
The book concentrates on DNA computing, membrane computing, and quantum computing. The approach taken is formal: each computational model is described as a formal system, roughly based on concepts from the relevant physical science. Many theorems are presented, though many are left without proof.
Though the book is quite technical, it is filled with humour and curiosity. Let me quote the last sentence from the book, to give you a taste:
At least from the point of view of funamental research, of general human knowledge, unconventional Computing is already a successful adventure of the spirit.
Why did I decide to mention this book on LtU? First of all, I know there are others interested in biology reading LtU. But mainly it is beacuse I think there are interesting connections between our subject and bio-inspired computing. Many computational models begin with formal language theory, which is also part of the foundations of PL theory. On a higher level, PL design is all about compuational models, and quantum and DNA computing are, of course, important and interesting computational models.
Posted to Misc-Books by Ehud Lamm on 6/4/02; 12:50:23 PM
Discuss
Matrk Watson: This book is currently very much a work in progress!. It is currently about 52 pages in length with a final target length of 150 pages.
An introduction to Common Lisp, by a self-proclaimed enthusiast.
Posted to Misc-Books by Ehud Lamm on 6/1/02; 2:00:12 PM
Discuss
A book draft, based on lecture notes Robert Harper used at CMU, and Andrew Appel used at Princeton University.
The book covers all the usual topics (inductive defintions, concrete and abstract syntax, substitution, type systems, continuations, etc.) Of interest may be the discussion of cost semantics, strict semantics in lazy languages, and the detailed discussion of subtyping.
Most of the book talks about pure languages, and uses MinML.
The presentation is a bit more formal than in most introductory textbooks, and many important ideas are presented and proved as theorems.
Posted to Misc-Books by Ehud Lamm on 5/30/02; 12:49:07 PM
Discuss
I've been meaning to mention this book for quite awhile now. The book is a collection of essays on various language myths . Myths as in 'well established ideas that are not quite correct'. The essays are quite opinionated. To quote the introduction: If they think that the idea is wrong, they have said so. If they think it is based on a false premise, they have said so. If they think that people may not realize where the idea comes from, they have explained this.
To give an idea of the scope of this fairly short book, here are some of the titles from the table of contents: Some Languages are Just Not Good Enough; English spelling is Kattastroffik; Women Talk Too Much; Some Languages Have No Grammer.
Many of the essays deal with social issues related to language (Socio-linguistics). Alas, this results in many repetitions of the same ideas. Some of the essays, so it seems, are more statements of personal conviction than professional discussions of contested issues.
Still, the book is worth checking out if you are interested language. (I particularly enjoyed the essay on Aboriginie languages.)
I wonder how a book similar to this one but focused on programming languages would look like. I agree with the premise given in the introduction that users do not need to have a conscious knowledge of how a system works in order to exploit it. Explanations of the system require the type of knowledge that only the specialist can provide. That's why I think a book like this one only containing essays by programming language specialists, may be quite interesting.
What topics would such a book cover?
1. OOP is best design methodology 2. Static typing reduces programming speed 3. Java/C++/C is the best programming language ever designed. 4. C is faster than Scheme 5. All programming languages are basically the same.
I am waiting to hear suggestions for other chapter titles...
Posted to Misc-Books by Ehud Lamm on 4/22/02; 6:51:44 AM
Discuss (15 responses)
This book is a self-contained introduction to interactive proof in higher-order logic (HOL), using the proof assistant Isabelle2002. It is a tutorial for potential users rather than a monograph for researchers.
It is quite exciting to see how familiar functional programming constructs can be used directly inside a theorem prover. But beware, HOL is not the same as Haskell:
As we have indicated, the requirement for total functions is an essential characteristic of HOL. It is only because of totality that reasoning in HOL is comparatively easy. More generally, the philosophy in HOL is to refrain from asserting arbitrary axioms (such as function definitions whose totality has not been proved) because they quickly lead to inconsistencies. Instead, fixed constructs for introducing types and functions are offered (such as datatype and primrec) which are guaranteed to preserve consistency.
Still it is quite cool to see how much goes into proving that reverse(reverse(lst))=lst. For the detailed proof see chapter 2: Functional Programming in HOL.
Posted to Misc-Books by Ehud Lamm on 4/11/02; 3:57:52 AM
Discuss (1 response)
This is almost off topic, but I stil think it is worth mentioning here.
I think open source and free software (and yes! I didn't capitalize these terms) have had a huge impact on the programming language landscape.
They changed many aspects of programming (e.g., large, distributed teams, communicating solely via email) thus influencing the type of tools people use.
More importantly I think, freely available compilers and IDEs allowed many niche languages to survive, and eventually gain market share.
And there's always Emacs (and Elisp) to talk about...
Posted to Misc-Books by Ehud Lamm on 4/3/02; 1:33:51 AM
Discuss (5 responses)
Just got my copy of this book about programming by demonstration. This is a sequel to Watch What I Do: Programming by Demonstration, edited by Allen Cypher.
Long time LtU reader are probably aware of my fascination with end user programming and PBD. Some of the chapters in this book look esp. interesting.
Chapter 11, Learning repetitive text-editing procedures with SMARTedit, made me think some. The detailed discussion of the version space algebra of possible (learned) programs is quite illuminating. The probabilistic approach to choosing learning outcomes, and using the expected utility measure are, of course, natural in the statistical learning community; their application to PBD is both natural and important. The authors even mention using their system for conveting one XML format to another. Alas, no details are provided.
In chapter 2, Ken Kahn describes ToonTalk.
Posted to Misc-Books by Ehud Lamm on 3/17/02; 1:46:49 PM
Discuss (1 response)
This is identical to the printed version, except that nine diagrams are missing. If you see a blank figure, that's what happened. These unfortunately seem to be lost.
Paul Graham's classic (and out of print) book on Lisp progamming is now online.
Posted to Misc-Books by Ehud Lamm on 2/2/02; 8:11:37 AM
Discuss
This list of links also contains some references to tpics closely related to CS, like algorithms and computation, and cryptography.
Posted to Misc-Books by Ehud Lamm on 12/23/01; 3:53:23 AM
Discuss
I am linking this in beacuse of the discussion about a good book to learn the practical parts of PL theory... Basically this is about what's missing from EOPL2 (and perhaps LiSP).
For my opinion, see previous LtU message.
Posted to Misc-Books by Ehud Lamm on 11/27/01; 5:56:24 AM
Discuss (1 response)
Many examples are provided, most of them with C versions for comparison.
Posted to Misc-Books by Ehud Lamm on 10/6/01; 3:45:07 AM
Discuss
This textbook starts with the fundamentals of programming (e.g. Readability, maintainability, portability and reusability) and goes on to explain advanded programming concepts like inheritance and multitasking.
One of the nice things about the book is the detailed examples (which you can download from the site), including the desing of an OOP spreadsheet.
If you are interested in Ada, want a textbook and not a reference manual, and are looking for something free, this is for you.
Posted to Misc-Books by Ehud Lamm on 9/24/01; 8:10:56 AM
Discuss
via /. story on Knuth's Volume IV Preview Available Online.
Posted to Misc-Books by Chris Rathman on 8/10/01; 7:03:33 AM
Discuss (1 response)
This book grew out of a workshop on Programming by Demonstration that was held at Apple Computer in March, 1992. The workshop was an opportunity for current researchers to discuss their work with the pioneers in the field. David Smith demonstrated a HyperCard simulation of his Pygmalion system, which was the first system for programming by demonstration and the inspiration for the work that has followed. Henry Lieberman ported his classic Tinker system to the Macintosh so that he could give a live demonstration at the workshop. This was followed by classic videos of the early systems, live demonstrations of the newer systems, and open discussion on topics in the field.
End user programming is still a worthy goal in my book, though I don't think it should aim at eliminating the need for programmers. This book (all of it is online) is a great resource.
Posted to Misc-Books by Ehud Lamm on 7/29/01; 11:21:39 AM
Discuss
Posted to Misc-Books by Ehud Lamm on 7/14/01; 8:10:40 AM
Discuss (2 responses)
The code from the book, and other related stuff can be found on the here.
The book is organised by layers: it start with the imperative subset of Java, moves on to procedural code, then to OO, exceptions, and concurrency.
The book covers compilation and the execution of bytecodes as well.
I haven't seen the book, but it looks interesting. Let us know if you have comments!
Posted to Misc-Books by Ehud Lamm on 6/13/01; 4:54:57 AM
Discuss
I found them to be great fun...
Posted to Misc-Books by Ehud Lamm on 5/28/01; 1:09:43 PM
Discuss (1 response)
Since C doesn't get much of a mention here, I thought I'd also take the chance to recommend Expert C Programming by van der Linden.
Personally, I enjoy writing in C - it's a refreshing change to keep things "simple". The merits of high and low level languages are being discussed in a leisurely manner here.
Posted to Misc-Books by andrew cooke on 5/18/01; 12:43:32 AM
Discuss (1 response)
...This book provides a broad and deep view of practical computer programming. [It covers] all major programming concepts and techniques...
Originally announced here (that link includes a request for feedback). This is from the
Oz/Mozart people. Looks impressive (incomplete/draft) - might even be the next "good" book on programming?
Posted to Misc-Books by andrew cooke on 3/16/01; 2:16:22 AM
Discuss
(Naturally, the home pages for both editions are available for some time on our courses page.)
Highly recommended.
Posted to Misc-Books by Ehud Lamm on 3/12/01; 12:24:46 AM
Discuss
Posted to Misc-Books by Ehud Lamm on 3/1/01; 1:30:45 AM
Discuss (1 response)
Roberts, it seems, figured out some basic vocabulary of horses. It also seems he knows the order of gestures in the joining-up process, but I am not sure this should be considered syntax. So did he really discover a language? I am not sure.
Another book that gives an interesting perspective on language is Thinking In Pictures by Temple Grandin. The authoer is an autistic woman, who is a university professor and world wide expert on animal behaviour. The book raises some tough questions on verbal versus other modes of thinking.
Both books are also full of human compassion and feeling. I think they are worth reading.
Posted to Misc-Books by Ehud Lamm on 2/22/01; 1:40:26 PM
Discuss (2 responses)
As this is (1) much more introductory than the usual links
here and (2) my own work, you might want to read the points in the
discussion page before downloading (click on Discuss below).
Posted to Misc-Books by andrew cooke on 2/16/01; 12:06:06 AM
Discuss (5 responses)