e99 Online Shopping Mall

Geometry.Net - the online learning center Help  
Home  - Basic P - Programming General (Books)

  1-20 of 100 | Next 20
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  

click price to see details     click image to enlarge     click link to go to the store

1. CUDA by Example: An Introduction
2. Textbook of Computable General
3. Language Implementation Patterns:
4. Computer Programming for Teens
5. How Computer Programming Works
6. Advanced Graphics Programming
7. C++ Programming Style
8. Mathematics for 3D Game Programming
9. Control Language Programming for
10. Pair Programming Illuminated
11. Design Concepts in Programming
12. Elements of ML Programming, ML97
13. Programming Language Processors
14. The Psychology of Computer Programming:
15. Masterminds of Programming: Conversations
16. Embedded Programming with the
17. Essentials of Programming Languages,
18. A Complete Guide to Programming
19. Java: An Introduction to Computer
20. Core Web Programming (2nd Edition)

1. CUDA by Example: An Introduction to General-Purpose GPU Programming
by Jason Sanders, Edward Kandrot
Paperback: 312 Pages (2010-07-29)
list price: US$39.99 -- used & new: US$27.18
(price subject to change: see help)
Asin: 0131387685
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description

“This book is required reading for anyone working with accelerator-based computing systems.”

–From the Foreword by Jack Dongarra, University of Tennessee and Oak Ridge National Laboratory

CUDA is a computing architecture designed to facilitate the development of parallel programs. In conjunction with a comprehensive software platform, the CUDA Architecture enables programmers to draw on the immense power of graphics processing units (GPUs) when building high-performance applications. GPUs, of course, have long been available for demanding graphics and game applications. CUDA now brings this valuable resource to programmers working on applications in other domains, including science, engineering, and finance. No knowledge of graphics programming is required–just the ability to program in a modestly extended version of C.


CUDA by Example, written by two senior members of the CUDA software platform team, shows programmers how to employ this new technology. The authors introduce each area of CUDA development through working examples. After a concise introduction to the CUDA platform and architecture, as well as a quick-start guide to CUDA C, the book details the techniques and trade-offs associated with each key CUDA feature. You’ll discover when to use each CUDA C extension and how to write CUDA software that delivers truly outstanding performance.


Major topics covered include

  • Parallel programming
  • Thread cooperation
  • Constant memory and events
  • Texture memory
  • Graphics interoperability
  • Atomics
  • Streams
  • CUDA C on multiple GPUs
  • Advanced atomics
  • Additional CUDA resources

All the CUDA software tools you’ll need are freely available for download from NVIDIA.

http://developer.nvidia.com/object/cuda-by-example.html ... Read more

Customer Reviews (14)

5-0 out of 5 stars Perfect for professional programming collections
A recommended pick is Jason Sanders and Edward Kandrot's CUDA BY EXAMPLE: AN INTRODUCTION TO GENERAL-PURPOSE GPU PROGRAMMING. It's a fine pick for advanced programming collections where parallel programming is of interest, covering a computing architecture designed to support parallel programs. Two senior member of the CUDA software platform team up to offer this in-depth coverage, perfect for professional programming collections.

1-0 out of 5 stars Poorly executed
This book initially seemed like it would be a good set of tutorials on development with CUDA.It does roughly that, but the examples are poorly explained and more often than not require the read to go online to figure out what they just did.A book like this' strength should be precisely that it is self-contained with a full set of directions and explanations.

Definitely skip this one

2-0 out of 5 stars Fair starting point, but definitely not the only book you should read.
I've done some work with CUDA and read a number of books and tutorials. This book does a very good job of relating the syntax and structure, but this book really doesn't go beyond showing you how to get your code to compile when using different features. It does not show you how to write efficient CUDA code (Getting a 7x speedup on a card running 960 threads simultaneously should *not" be considered very impressive. We've recently gotten >60x speedups, but using concepts that aren't covered in this text). I know the book industry doesn't turn on a dime, so I can certainly understand that no specific discussion is given to Fermi (though the book does list those cards), and there are (I think they claim) 200 million non-Fermi cards out there, so there is still more than enough reason to write apps that need to know how these "older" cards work. You really need a reference that will also discuss optimizing for register use, coalesced memory accesses, divergence, etc. in much greater depth.

So, given the low price, it's a useful buy if you prefer a book instead of going through some online tutorials. But, if you want to write fast, efficient code, don't stop at this book.

5-0 out of 5 stars excellent introduction
Very well written, the authors (who are on the CUDA design team) seem to understand what people find confusing about GPU programming and take great pains to go slowly and explain things. Some other reviewers claim that the book is out of date at publication -- I view this as a lame complaint. This is an introductory book. If you work thorugh it and understand it, you will not have too much trouble catching up to the latest features.

5-0 out of 5 stars Hits the mark almost perfectly (read the title)
At least one reviewer seems to have read the book, but missed the title. This is unfortunate. The book is enjoyable and informative from the start. It gives practical examples that get you started with NVIDIA hardware right away. This is an introduction, folks. The very first page describes the objectives and prerequisites, which, in brief are: provide an overview of techniques for interfacing with GPU hardware, using CUDA, using a basic knowledge of C - a pretty low threshold. It is explicitly stated that the examples are generally not intended for production use, but instead have been created with the goal of comprehension. I absolutely applaud this approach.

Although there are very nice examples, you will not find coverage of advanced strategies in parallel or high performance computing. I have the experience to appreciate the topics that are "missing", but coverage of many of those things would really be out of scope for this work, and almost certainly be a distraction.

It's very rare that an author, or team of authors take on the task of teaching a specific technology without having their effort degrade into the production of a huge, incomprehensible tome of endless, redundant screenshots and half-baked everything-to-everybody code blocks. I suspect that the participation of the team at AW had something to do with the success of this book, as I have noticed a certain pattern of solid, on-topic references from them.

In any case, if your goal is to get started, this book is for you. If your goal is to produce very high performance code - which it probably is in the future - then this book with be a great companion to others that have or will cover distributed processing theory. ... Read more

2. Textbook of Computable General Equilibrium Modeling: Programming and Simulations
by Nobuhiro Hosoe, Kenji Gasawa, Hideo Hashimoto
Hardcover: 256 Pages (2010-08-15)
list price: US$100.00 -- used & new: US$72.00
(price subject to change: see help)
Asin: 0230248144
Average Customer Review: 5.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description

Computable General Equilibrium (CGE) models have been widely used for various economic simulations, such as, trade liberalization, environmental problems, and regulatory and tax reforms. CGE models are powerful but tend to be large-scale and, therefore, often difficult to learn. 

This book provides a comprehensive A-to-Z guide for CGE models. Focusing on its practical application, readers can learn from the simplest CGE models, and proceed, in a step-by-step manner, to database construction, programming for computation, and developing more elaborated CGE models, which can be applied empirically to actual simulation purposes. Particular emphasis is placed on computer programs of CGE models. Readers can obtain knowledge and skills from which they can develop and operate their own CGE models, and apply them to their research. 

This book is essential reading for all interested in computational economics, advanced macroeconomics, international trade, regional development, development economics.
... Read more

Customer Reviews (1)

5-0 out of 5 stars This is the best CGE book on the market
This is the best CGE book on the market. The book explains CGE modeling in a clear, A-Z approach. The author also does an excellent job connecting economic theory to empirical applications of GAMS. I will use this book as my seminal CGE reference and will also use this book for my graduate CGE course. Kudos to the authors for writing such a clear, rigorous, and useful textbook. I wish all textbooks in economics were this useful!! ... Read more

3. Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (Pragmatic Programmers)
by Terence Parr
Paperback: 374 Pages (2009-12-31)
list price: US$34.95 -- used & new: US$21.86
(price subject to change: see help)
Asin: 193435645X
Average Customer Review: 4.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description

Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain.

The key is understanding the common patterns found across language implementations. Language Design Patterns identifies and condenses the most common design patterns, providing sample implementations of each.

The pattern implementations use Java, but the patterns themselves are completely general. Some of the implementations use the well-known ANTLR parser generator, so readers will find this book an excellent source of ANTLR examples as well. But this book will benefit anyone interested in implementing languages, regardless of their tool of choice. Other language implementation books focus on compilers, which you rarely need in your daily life. Instead, Language Design Patterns shows you patterns you can use for all kinds of language applications.

You'll learn to create configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. Each chapter groups related design patterns and, in each pattern, you'll get hands-on experience by building a complete sample implementation. By the time you finish the book, you'll know how to solve most common language implementation problems.

... Read more

Customer Reviews (11)

3-0 out of 5 stars Best for General Purpose Languages
I bought this book hoping for some help in writing a parser for a simple imperative language with almost 2000 keywords.Unfortunately, I got no help.There is a lot of good advice in this book for writing a compiler or interpreter for a general purpose language with a reasonable number of keywords.If you know ANTLR, it is even better.I guess I'll try Domain-Specific Languages (Addison-Wesley Signature Series) next.

5-0 out of 5 stars Any programmer's library needs this
Terence Parr's LANGUAGE IMPLEMENTATION PATTERNS: CREATE YOUR OWN DOMAIN-SPECIFIC AND GENERAL PROGRAMMING LANGUAGES tells how to build file readers, data readers, code generators and more - without a strong computer science background. The author offers insights into common design patterns key to development for Java and other programmers, creating a guide that isn't language-specific, but pattern-oriented. Any programmer's library needs this.

5-0 out of 5 stars A must have for developers
I was terribly interested in getting my hands on this book since I'm taking a formal course on Compilers and Interpreters at university and I really wanted to know: What's the difference between what we (as computer scientists) are taught in a compilers' course and the more practical approach presented in the book?

As it turns out there's a big difference. If you want to be the ultimate guru of compilers (eg. contributing an even more efficient compiling technique for language X or creating a language that forces us all to reconsider what we know about compilers) you need both, the theory the practice (because without the theory you wouldn't know how to improve or make obsolete an existing technique, and without the practice you wouldn't be able to put that knowledge to work inside a language compiler). Now if you just want to be able to deal with your DSL (domain specific language), create data readers, code generators, source-to-source translators, source analyzers, etc. you'll love the hands on information presented in this book.

Let's be honest, how many of us developers are required or willing to create a language from scratch together with its compiler or interpreter versus the ones that just need to parse an XML file, process a DSL or create a configuration file reader? I would say that there are much more developers in the later group. But fortunately we all (or almost all) share one thing in common: we know software patterns! This is how the author structured the book, offering patterns (ala Gamma et al) that you can use when creating your language processors (an excellent approach in my opinion since each pattern focuses on different stages of language processing which helps the developer modularize the solution and understand how the different parts of the "machine" work without loosing sight of the big picture).

So, in case you're wondering "what is this guy talking about?". A compiler is a program that transforms code created in one language into another (eg. C source code into executable code). Normally the transformation goes from a higher level language to a lower level language (eg. to machine code)(if it's the other way round we have a "decompiler"). When the transformation happens between languanges on the same level we're dealing with a language translator or converter (normally called "source-to-source translator")(eg. Sharpen, an open source framework created by the db4o team that converts Java code to C#). A compiler is likely to perform several operations such as lexical analysis, preprocessing, parsing, semantic analysis, code generation, and code optimization (which are directly or indirectly covered in the patterns offered in the book). The ultimate tool for developers interested in building compilers is a compiler-compiler or parser generator which, as you might have already guessed, provides a high level description language to help you build your own compiler (this usually involves the creation of a lexer and a parser).

However, I feel I should mention that there's a whole lot of complexity in handling and maintaining all the intermediate information when you're creating your own compiler for your own language which is covered only indirectly in this book. There's also no detailed explanation of the final steps of a compiler implementation such as machine code generation and optimization, register allocation, etc. Overall this is an excellent book for day-to-day language applications (involving parsing, translations, etc).

Now I find pretty important to mention who the author is. Terence Parr created the ANTLR parser generator (antlr.org) and the StringTemplate engine (stringtemplate.org). He's a professor of computer science that's no theorist (this guys has real practical experience!). He has so much experience that he started to see these patterns when developing language processors coming again and again. The end result is this book that presents a compilation of those patterns.

The structure of the book is pretty straight forward. Four general parts:

* Getting Started with Parsing: where you'll learn about the general architecture of language applications and review the patterns that involve parsing.
* Analyzing Languages: where you'll see how to use the parsing techniques described in the previous section to build trees that hold language constructs in memory, how to walk those trees to track and identify various symbols (such as variables and functions) and how to determine the type of the expressions. Overall you'll learn how to check whether an input stream makes sense.
* Building Interpreters: four interpreter patterns are presented that vary in terms of implementation difficulty and run-time efficiency. In the two previous parts the focus was on patterns that verify the syntax of an input sentence and make sure that it follows a set of semantic rules. In this part the focus is on patterns for processing the input sequences (not just validating them).
* Translating and Generating Languages: here you'll learn how to translate one language to another and how to generate text using the StringTemplate engine.

The patterns are laid in the order you'd follow to implement a language (section 1.2, "A Tour of Patterns" describes how all the patterns fit together). There are 31 patterns in the book, each with four parts: purpose, discussion, implementation and related patterns. The implementation section provides illustrative code in Java (but it's not meant to serve as a library). You don't need a background in language theory or compilers to understand the book but you have to have a solid programming background and be confortable with the concept of recursion in algorithms.

Overall, if you're a developer that has to deal with any of the use cases described in this review this book *must* be in your bookshelf (but if you're really into compilers you should also have Aho's Dragon book next to it =)

4-0 out of 5 stars Way better than sifting through textbooks
I had to read the classic Dragon book in college. I'm glad I did and feel that all software developers should go through the mental process of learning to build a compiler. Doing so ties together all the classes that come before it, from data structures to theory of computation. But, the texts on those subjects are quite dense and not quite practical for the working developer.

This book fills that gap quite nicely. It is free of excess jargon and gets right to the point of creating new languages. Each chapter builds up the reader's repertoire of techniques and tools for writing programs that create programs. For a relatively short book, the author does a fine job of covering scanning, parsing, type checking, interpreters, virtual machines and code generation.

If you've ever wanted to build your own language but fell short when it came to the theory behind it, this book is the one to check out.

5-0 out of 5 stars Dragon book for the rest of us
Terence has put together a book that is both readable and relevant. In clear, lucid -- even fun -- prose, he demystifies the all-too-often arcane world of language design and processing. While other language processing and compiler books are awash in the theoretical details needed to plumb the depths of the discipline, Language Implementation Patterns gives practical, useful advice on building real-world language processors to solve practical problems. Not content to tilt with cartoon dragons, Terence gives us the armor we've needed all along -- in a way that no Dragon Book ever has.

We are all beneficiaries of Terence's design and implementation of ANTLR. His previous book on the same, coupled with this new volume, empower us to solve manifold thorny problems. It's always exciting to add a new tool to one's technical toolbox, and we've now got complete operating instructions for a very sharp and capable one.
... Read more

4. Computer Programming for Teens
by Mary E. Farrell
Paperback: 352 Pages (2007-12-17)
list price: US$29.99 -- used & new: US$17.50
(price subject to change: see help)
Asin: 1598634461
Average Customer Review: 4.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Ready to learn computer programming but aren?t sure where to start? Look no further, Computer Programming for Teens is the book for you. Other books on programming tend to be language specific and often get bogged down in the syntax of the language. That is fine if you already have a strong background in programming, but if you?re a novice, the language-specific approach can make things unnecessarily difficult. Computer Programming for Teens stresses concepts over language, but still includes examples in the most popular languages?specifically HTML, C++, and Java. It begins by explaining the fundamental topics, like data storage, and progresses through to more complex topics, such as decisions, loops, design, and complex data structures. Written by a high school teacher, the book includes helpful tips and analogies to guide readers through the maze of programming techniques, concepts, and common pitfalls. It introduces the most relevant topics for beginners and pinpoints the essential skills needed for programming success. ... Read more

Customer Reviews (4)

4-0 out of 5 stars Good book for beginners.
This is a good book for people who have had no formal computer programming training.The book doesn't get specific at all when it comes to syntax (computer language), it focuses on the concepts.Also, keep in mind that this book is not just for teens, I am a teenager but anyone could read it and relate to the metaphors in it (although sometimes the book was a little repetitive).I recommend to anyone looking for a start to computer programming.

4-0 out of 5 stars Nice book.
I very much like this book.It's very well-written, and just a notch of difficulty about the "Head First Programming" book.

5-0 out of 5 stars Great for teen interested in programming!
We got this book for my 16 yr old son for Christmas. It was more a leap of faith, since we had NO idea if he would find it interesting (and not really understanding the subject, it was hard to judge.) It was a hit! He opened it right away and I even saw him reading this book during his Christmas break!

5-0 out of 5 stars Excellent Foundation For Programming
I love this book.I tried learning the basics of programming a while ago, but was unable to find any resources that gave a really good foundation of the basics of programming.So, I got frustrated due to a lot of questions being left unanswered and put learning programming onto the back burner.A week ago I decided to go back into giving web development\programming another go as a career change.And coolness, I found Computer Programming for Teens which gives the background that anyone new to programming needs...the solid foundation and understanding of basic programming topics that I had been looking for.

The author covers all the fundamental topics (such as what are variables, how variables work, the three kinds of loops and how all of their parts work, tears apart how a function works) a person needs to understand any programming or scripting language.The author gives examples by using real life situations, such as painting a friends house and compares the real life situation to how the program works.These examples help give you a feel for the programming topic.

The author gives coding examples using C++.At first she gives all of the coding and then just gives a few lines of coding for other examples.You can download Visual C++ Express from Microsoft, which is free and a great tool, to learn and practice the examples in this book.

This book is an awesome start.I also go to LyndaDotCom (for more web programming and design video tutorials), TrainingspotDotCom (for database video learning) and have some really good books on C++, JavaScript, HTML and CSS.Along with some other online resources such as MSDN forums.School is too expensive these days and I really don't want to go back, so I'm taking the learn at home approach.Anyway, get this book if you need a great understanding of the basics of any programming and scripting language.

This book is a great beginning.After reading this book read "Head First JavaScript by Michael Morrison (an O'Reilly book) for a deeper understanding of all the topics "Computer Programming for Teens" covers.

Happy Learning! ... Read more

5. How Computer Programming Works (Technology in Action Series)
by Dan Appleman
Paperback: 225 Pages (2000-05-01)
list price: US$29.95 -- used & new: US$16.74
(price subject to change: see help)
Asin: 1893115232
Average Customer Review: 3.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description

Just as children must learn the alphabet before they can read, future programmers must understand certain concepts before they can write their first program. This unique book uses full-color illustrations to help you truly understand the underlying computer science on which all programming is based.

Veteran programmer Dan Appleman provides a comprehensive, easy-to-understand explanation of computer programming, starting from a basic description of what a computer language is to coverage of how Internet programming works. The book shows you how to turn ideas into code and how to use algorithms to accomplish common tasks, and describes the basic function of compilers and interpreters.

Curious readers of any age will find an accessible yet comprehensive explanation of a field that has revolutionized the way we live and work.

Amazon.com Review
Imagine, for a moment, a guy. This guy, about 40 years old, has worked all of his life in a job that doesn't require much knowledge of computers, certainly not of how to write software. Now, imagine that our guy decides to change career paths and learn computer programming. He goes and buys a book about a programming language, perhaps one that promotes itself as elementary. The book presents our hapless guy with recipes that he can follow, it's true, but mostly it confuses him with talk of APIs, linked lists, hashes, and a mess of other stuff that he doesn't understand, really. "I can make it all work by following directions," our guy implores into the Void. "But I don't understand what I'm doing." This guy needs How Computer Programming Works.

In this book, Daniel Appleman sets out to explain computer programming at a conceptual level, and succeeds admirably. Appleman ignores the peculiar characteristics of specific programming languages (leaving them for specialized books), and instead uses fantastic color illustrations and lucid text to explain what goes unsaid among professional programmers. He also uses pseudocode--a sort of standardized, generic programming language--and examples in BASIC to back up his points. Although Appleman approaches programming mainly from a procedural angle (the book would be better with more coverage of object-oriented programming techniques, which fundamentally are different, in many cases), the contents of this book will suit any beginning student of programming and computer science--our guy included. --David Wall

Topics covered:

  • Aspects of computer programming that you must understand in order to write code, but that generally are not explained conceptually in language-specific programming books
  • Variables
  • Loops
  • Pointers
  • Arrays
  • Code blocks
  • Stacks
  • Trees
  • Other fundamental building blocks
  • Critical algorithms, like the bubble sort
  • Getting from specification to finished product
  • Network programming
... Read more

Customer Reviews (9)

4-0 out of 5 stars Useful Compilation
"How Computer Programming Works" offers a useful compilation of major Computer Science topics.The artwork, spread liberally though this book, is generally quite useful and offers some unique insights into certain topics, but is at times overdone.

Daniel Appleman has done a good job of condensing many of the major topical areas and themes in the field of Computer Science in fewer than 250 pages.

For anyone with more than a peripheral knowledge of Computer Science and computing in general, but with a lack of formal Computer Science education or training, this is a book worth reading.It can serve as a launching point for more in-depth and detailed coverage of the topics addressed in the book.

I recommend this book...especially to the reader segment mentioned above.

2-0 out of 5 stars Not in the same league against average computer books!
I bought this book and felt disappointed.

I think it's a wrong decision of me not carefully looking into the index portion to check my expectation. It is also a result from Amazon side, only a portion of chapter one, not revealing enough examples for readers to judge.

It's a general introduction of some basic "ideas" about programming. It focuses on one idea per chapter. The illustrations are indeed very good to demonstrate those ideas. The whole book is like a delighted lemon juice, with very thin content.

But, I feel the whole book best serves the teens as an introduction book about programming. If an amateur has a clear intention to head into the world of computer software, this is not a good entry book. He'd better consider other books and don't waste time on this one. This is just suitable for those whose time is free and ease.

By the way, I feel not worthy to return this book because of the shipping fee. So, I decided to keep it for my son to minimize the waste.

3-0 out of 5 stars Not bad, but not really written for kids
I bought this book based on the reviews. It was for my 11-year old son who is a whiz working with computers and wants to learn more so he can eventually start programming. I have been writing software for 20 years and find it difficult to make my knowledge and understanding relevant to someone so young. I don't want to dash his enthusiasm with too much technical jargon, yet he should learn enough to get curious and start tinkering with confidence.

This book was not relevant for him. He's a pretty smart kid for 11, but the references in this book are for adults. It will bore a kid under 18.

On the other hand, this book will probably be pretty good for an adult wanting to learn how computers work.

I don't want to blame the writer since he never said this book was written for kids, but it's tough to rate it higher since the book now sits on the shelf.

By the way, if you've gotten this far in this review, then you might know or have a youngster (isn't that an old-foggey word?) who wants to know more about computers. When kids have fun learning, they stay interested. With this in mind, a fun book to learn about computers is, surprisingly, "Head First HTML" by Elizabeth and Eric Freeman. By taking a fun approach to learning how to make web pages kids are introduced to programming.

It's also an enjoyable book for adults.

2-0 out of 5 stars Simplistic
The other reviewers here that reference their 13 year olds enjoying this book are absolutely right. This book is for 13 year olds. As a 25 year old trying to wrap his mind around programming, it leaves much to be desired.

If all you want is a gloss-over for someone who has no intention to continue in the field of programming, but just wants a non-programmers understanding of programming, this book is for you. If you want something you can take with you on a journey into real programming, you will have to really dig deep to distill the few morsels of theory offered here. In fact I had to reread most paragraphs dozens of times in order to find the underlying concept he was trying to teach; to find something that would still be useful to me after finishing the book.

Bottomline: A waste of time if you are out of high school and attempting to truly learn something about programming. Take a few minutes to skim thru the pictures at your local bookstore, then go buy a real programming book.

2-0 out of 5 stars "An illustration is worth a thousand words"
Not when the illustrations are as poorly drawn and pointless as these. eg people staring at computers, sweeping arrows with colored blends, or pointing hands (proving, yes they are hard to draw!). I can however follow the reasoning.

This is yet another programmer who has trouble explaining the jargon but has noticed books that do a good job of being user friendly, have pictures. I found this book to be just like those inane PowerPoint presentations that middle executives think expresses the right side of their brain. A right side that seems to be made of cheap PC clip art.

It doesn't help every time the book gets to a core idea, that it glosses over it as if it is obvious, without explaining the detail. Nor that on top of the meaningless graphics, the book is full of DTP blunders that obviously nobody has checked. Such as text set in fonts with mismatching encodings, resulting in strange accented characters being substituted for whatever the author intended.

Why do programmers have such difficulty producing clear, sequential, logical and carefully crafted expression, that has been checked for errors?

I thought that was their job. ... Read more

6. Advanced Graphics Programming Using C/C++
by Loren Heiny
 Paperback: 432 Pages (1993-04-19)
list price: US$34.95 -- used & new: US$98.40
(price subject to change: see help)
Asin: 0471571598
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
A source for advanced PC graphics topics currently being used in a wide variety of fields. Stresses a hands-on approach, providing numerous program examples written in C and applicable to any C compiler with correct, ready-to-use and well-described code. Covers ray tracing, used to create realistic 3-D graphics. Includes information on graphical file formats and manipulating digital images. Also focuses on printing screens and images. ... Read more

7. C++ Programming Style
by Tom Cargill
Paperback: 248 Pages (1992-07-10)
list price: US$44.99 -- used & new: US$15.00
(price subject to change: see help)
Asin: 0201563657
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Today's languages have new capabilities, creating new questions on how the components should fit together. Using a learn-by-example approach, Cargill presents code from published sources--each example representing a common error made by C++ programmers--and shows readers how to critically examine and rewrite it. ... Read more

Customer Reviews (9)

4-0 out of 5 stars Dated, but worth reading.
The book is short but good, very easy to read. For me, it's highly recommended, cause you learn so many things in so little time.

4-0 out of 5 stars Very good condition!
Hey! I am glad to tell you that I received the book in excellent condition. It met my expectation.

N. Murali Mohan

4-0 out of 5 stars dated, but still successful on its own terms
C++ Programming Style still gets regularly mentioned as an important guide to intermediate C++. However, from the perspective of 2007, it's looking long in the tooth.

The book was published in 1992, so the modern reader will notice the old fashioned C++ - no templates (therefore no STL), no exceptions, no strings, old style .h headers. The implementation of the assignment operator relies on a check for self assignment (rather than merely using it as an optimisation), and it uses arrays polymorphically. Readers of Exceptional C++ and Effective C++ will know that these are not recommended practices in modern C++. However, I assume that you aren't going to read this without a good grounding in basic and intermediate C++ and can spot the parts which require tweaking.

Fortunately, the book is structured as a series of code reviews, so it stands out from the glut of mini-essay type books, and the general principles of class design that the book propounds remain useful. And even fairly advanced programmers probably won't spot all the problems that Cargill highlights, so you'll definitely learn something.

I'm giving it four stars because is still covers a core of C++ that is relevant and you can pick it up cheaply. But don't expect it to be fully up to date.

5-0 out of 5 stars Refreshing!
I have read tons of C++ programming books. A lot of them lack of originality. This is where Tom Cargill book shines. The author of this book first presents a small C++ program listing for each chapter and then ask the readers to take few minutes to try to identify the errors or the aspects that could be improved. It is really instructive to find out all the things you have not identified yourself and this is what makes this format so interesting. Some people says that this book is for novice programmers but I disagree. To my opinion, almost all experienced programmers will miss at least half of the problems present in the sample programs.

4-0 out of 5 stars Cargill's classic book on quality C++
It is unfair to judge this book from the perspective of the "average" C++ programmer.Tom goes at least three steps further to treat programmers/readers as intelligent beings of the same species who already have the fundamental programming language "mechanics" skills.The reviewer who spewed forth about "coding style" really doesn't "get it."The whole issue of "where you put your braces" and naming conventions isn't what Tom or Tom's book is about.He already assumes that if you're programming C++ you have some idea of when you're going to press enter on the keyboard. (To make whitespace, in case you were wondering...)

The inferior thinking that confounds the world of programming is that C++ is an easy language to master.Very few programmers have much hope of aspiring to learn even 80% of the language and use it effectively.Thinking otherwise is like saying that everyone who wants to run a foot race can be Jessie Owens.Tom starts by treating readers as programming peers.That alone is an incredible benefit anytime programming is being done.Prima donas and those guys who always seem too busy to provide their "public interface" are the ones to avoid in learning anything of use regarding C++.

I pick up Tom's book every couple of months and browse it.His noted "brevity"is like a good RPG that gives subtle hints that incite thinking for yourself without following what many other books do by drawing a roadmap to one solution that worked for this one situation but may never again apply to anything useful.In my opinion, Tom's "lessons" are appropriately concise.

If you haven't read Tom's book, buy it, read it...if you're serious about your C++ skills.There is a *good* reason why Scott Meyers recommends Tom's book.It is something of a unique and interesting perspective on C++, which is really all that any of us can hope to give back to the language.The book is an interesting, insightful perspective that has pragmatic commentary that will help you be a better C++ programmer.At the last (ever?) C++ World conference in December of 1999, a discussion of which books to read evolved out of some other spew.Cargill's book came up as necessary reading, as it always seems to, for the simple fact that it comes from a respected industry professional with an uncany ability to boil out the meat of the topic without overcooking the stew.C++ is, at least, also an art form.Tom's ability with the art of C++ is inspiring.Scott Meyers is another artist.So is Angelika Langer and Herb Sutter, and Andy Koenig, Stan Lippman, Doug Lea and Erich Gamma and Jim Copelien and numerous others.But, for each of them, there are 10,000 very so-so programmers out there spewing forth complete nonsense.Help de-nonsense your world with Tom's book.One person indicated that it is somewhat stale.It is really like fine wine.It just gets better with age. ... Read more

8. Mathematics for 3D Game Programming and Computer Graphics, Second Edition (Game Development Series)
by Eric Lengyel
Hardcover: 551 Pages (2003-11-18)
list price: US$49.95 -- used & new: US$28.98
(price subject to change: see help)
Asin: 1584502770
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
This completely updated second edition illustrates the mathematical concepts that a game programmer would need to develop a professional-quality 3D engine. Although the book is geared toward applications in game development, many of the topics appeal to general interests in 3D graphics. It starts at a fairly basic level in areas such as vector geometry and linear algebra, and then progresses to more advanced topics in 3D game programming such as illumination and visibility determination. Particular attention is given to derivations of key results, ensuring that the reader is not forced to endure gaps in the theory. The book assumes a working knowledge of trigonometry and calculus, but also includes sections that review the important tools used from these disciplines, such as trigonometric identities, differential equations, and Taylor series.

Key Features
* Includes four new chapters: the graphics pipeline, the stencil shadow rendering technique, curves & surfaces, and numerical methods
* Concentrates on key mathematical topics for programming 3D game engines
* Discusses applications in the context of the OpenGL architecture due to its cross-platform nature and long-standing industry acceptance. Sample rendering code is presented using ARB vertex programs and fragment programs
* Selected topics include quaternions, homogeneous coordinates, ray tracing, bump mapping, portal systems, polygonal techniques, shadows, and physics
* Includes exercise sets for use as a textbook

New to This Edition
The following are selected revisions in the second edition:
* A new preliminary chapter that provides a review of the 3D rendering pipeline
* A new chapter containing an advanced discussion of the stencil shadow rendering technique
* A new chapter covering various numerical methods pertinent to 3D graphics programming, including numerical solutions to linear systems, numerical eigenvalue determination, and numerical integration
* A new chapter covering curves and surfaces, including Bézier curves and B-splines
* New discussions of texture filtering, mipmapping, and infinite projection matrices
* Updated lighting method implementations and collision detection techniques
* Additional exercises in all chapters ... Read more

Customer Reviews (14)

4-0 out of 5 stars Not available for Kindle PC !?!
Disapointing : this ebook doesn't seem to be allowed for Kindle PC.
I was interested to be able to check the book on my desktop machine at work at the same time I would read it from my Kindle...

5-0 out of 5 stars I strongly recomend for the ones that want to seriously go into game development!
When I received this book I couldn't wait to start reading it. I didn't finish it yet but so far all explanations, mathematical rules are so clear and understandable. It's incredible to model world with usage of equations and numbers. Don't hesitate! Get it. Enjoy.

1-0 out of 5 stars Little more than an outline
I was disappointed in how little explanations were included in this math book.It seemed more like a dictionary.It was as if someone listed all the math concepts that could be included and then put the list into a hard cover binder.
I did read some of the other reviews thinking I had missed something.One suggested spending a year on the book.But there is so little there.My college book on linear algebra did a much better job of explaining the material.Theorems were explained, samples worked out and 10 to 20 problems were given at the end of each section.This book as 50 problems for the entire book.This book spends eight pages on quaternions.Studying these pages over an extended period of time would not give the understanding you could get from a book like Kuipers' Quaternions and Rotation Sequences.It took 75 pages but one is able to understand the system and how it relates to game programming.
With all the colleges now offering game programming degrees, their must be a book written by someone who is use to explaining the material.That person would know the best way to present the material and could anticipate questions and include the answers in his or her explanations.

2-0 out of 5 stars a disappointment
the second edition brings a new chapter on the graphics pipeline. Well done, except that it is extremely obscure, for those who already understood the arcanes of the graphics pipeline.
Chapter 5 on "ray tracing": 6 pages on root finding of quadratic, cubic and quartic polynomials;
to compare with Chapter 7: "Visibility determination": The spatial partitioning deserves solely 4 pages.
What's the point on dwelling so much on something that is trivial and botching something that is hard to grasp and of paramount importance ?

5-0 out of 5 stars One of a kind

As a professional 3D graphics programmer, I can not stress enough the quality of this book. This book covers 3D math fundamentals, algorithms, and it is complete with easy to understand (!) proofs. The math is difficult because there is so many problems to be solved in 3D (and they draw from many different branches of mathematics), but it is written in such a clear way that every topic is made approachable. Unlike esoteric Ph. D papers, you aren't assumed to have any specific knowledge of math idioms or jargon. You simply need a decent grasp of college calculus and trigonometry to make the most of it. There are a few samples too to test your knowledge.

Expect to spend at least a solid year to really make the use of this book. Treat it as you would a two - three semester course in college. During this process, you'll find yourself occasionally wanting to get more practice and referring to a respective book on it.

If you could only own two books for 3D programming, buy this first and buy Ericson's book on collision detection next.

In summary, Eric Lengyel's attention to detail and mastery of 3D math / algorithms really shines and this book is an example of it.

... Read more

9. Control Language Programming for the AS/400 (2nd Edition)
by Bryan Meyers, Dan Riehl
Paperback: 522 Pages (1997-10-01)
list price: US$75.00 -- used & new: US$25.00
(price subject to change: see help)
Asin: 1882419766
Average Customer Review: 4.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
This comprehensive textbook on CL programming for the AS/400 is a boon to programming career professionals, teachers and students. Bryan Meyers and Dan Riehl, NEWS/400 technical editors with 20 years' experience in CL programming between them, write from an up-to-the-minute knowledge of the skills required in today's MIS environment. Each chapter includes practical exercises and programming assignments graduated in difficulty. ... Read more

Customer Reviews (6)

5-0 out of 5 stars Best AS400 book so far
I'm so glad I bought this book. It's the best $15 that I've spent at Amazon.com. I bought it used and had some coffee marks in the first few chapters, but boy, this book is great! It also gives you an introduction of the AS/400 (OS/400). I know Windows, VMS, and UNIX, and I'm interested to know the AS400 because the product that I support also runs on the AS/400 platform. I sorted of gotten some ideas here and there but I wanted to learn more. This book is so great! My first AS400 book and I love it. I've ordered a few more other AS400 books together with this one; and have paid a lot more for the others. But this one beat them all! It's a very good book!

1-0 out of 5 stars You can't return anything you buy from this seller
Service was ok but the book wasn't in the best condition. When I had to return it 2 weeks later, because my school changed the book, I couldn't. All my tries to contact the seller were unsuccessful. Be aware of that.

5-0 out of 5 stars Muat have for students and professional programmers alike
I used this book in school for my Intro to AS/400 and Control Language Programming courses.It is surprisingly easy to follow and understand as far as programming books go.

Worst mistake I made was selling this book have completing my course work as I am now working as a AS/400 programmer and it is a really great reference manual.

5-0 out of 5 stars Its a good book
This book is helpful for beginers and advanced programmer

5-0 out of 5 stars Great tool to teach yourself CL
This book was definitely an effective tool in helping me learn and implement CL into my development techniques. I definitely recommend this book to anyone who wants to learn CL or just wants a good reference book onhand ... Read more

10. Pair Programming Illuminated
by Laurie Williams, Robert Kessler
Paperback: 288 Pages (2002-07-08)
list price: US$34.99 -- used & new: US$7.99
(price subject to change: see help)
Asin: 0201745763
Average Customer Review: 4.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Written as instruction for team members and leaders new to pair programming and as an improvement guide for experienced pair programmers Explains both the principles underlying this method and its best practices. Softcover. ... Read more

Customer Reviews (10)

4-0 out of 5 stars What pair programming really requires
Finally, "full disclosure". Instead of assertions that pair programming must be good, everyone should do it, and "just get going", Williams and Kessler tell us honestly that pair programming is "simply not for all" and requires continous maintenance. And they admit they "don't know yet" how pair programming might or might not replace formal code reviews. (Rather honestly, they admit that in a context where most people don't do any code reviews, pair programming could help a bit.)

With that out of the way, Pair Programming Illuminated really does illuminate: explanations and examples of how to start pair programming, what to expect, and how to address problems. Practicality instead of magic. Well worth the read.

5-0 out of 5 stars All you need to know about Pair Programming
This book is simply excellent. I found it on the shelf in our office, so I grabbed it and read it mostly on the train commuting to work. I enjoyed reading it from the front cover to the end.

This book is purely focused of pair programming, so if you have not had an exposure to extreme programming I recommend you read "Extreme Programming Explained: Embrace Change" by Kent Beck and Cynthia Andres first.

We started practicing XP in our development team. Our manager got several copies of XP Explained book for us. As I have already read it, I read another book about XP: "Extreme Programming Applied: Playing to Win." After that, I found this one and let me tell you, it is a real treasure. Some of the times, when I came to the office and we had the stand-up meeting, we discussed how we could make XP work better for us. There were so many things from real life that were in this book!

This book is very easy to read and very true to practices of pair programming. You won't be disappointed.

4-0 out of 5 stars Well Rounded Discussion of Pair Programming

A well-rounded discussion of pair programming, this book presents not only where pair programming excels, but also where the problems lie. Whether you are looking for a sales pitch, implementation advice, or statistical data from pair programming studies, the book contains useful information for project managers, technical leads, and developers alike.

Part One covers general information about pair programming. It dispels some of the fear and uncertainty that revolves around the practice (myths) and highlights some of the positive aspects that can be derived (synergistic behaviors). It includes a chapter titled "Overcoming Management Resistance to Pair Programming" which lists achievable goals that any project manager would wish for. In addition, there's a short chapter on selling pair programming to reluctant peers. But the authors warn that it is probably best to use a pyramid marketing approach and just let the advocates sell it for you versus forcing it on staff. Part One closes with a list of problems to avoid when implementing pairing.

Part Two explains in less than 30 pages how to implement pair programming from the workspace layout to "Tips 'n Tricks" for making it work better. If read and applied carefully, this last chapter may help the developer looking for implementation advice to save a failing pair programming attempt. That alone makes this book a worthwhile read!

Part Three spans close to half of the book and walks through the various pairings that might occur when you have different technical abilities (expert, average, novice), sex, race, and attitudes involved in the process. Each of the technical ability pairings is examined with both positive and negative aspects highlighted. Relevant anecdotal information from experienced pair programmers is also included.

Part Four looks at pair programming as part of a software process, in particular, Extreme Programming (XP) and the Collaborative Software Process (CSP). The chapter on XP reviews the process in 10 pages and explains why the authors believe pair programming is an integral part of the process. The CSP chapter is derived from the author Laurie Williams' dissertation and is an extension of XP and Watt's Humphrey's Personal Software Process (PSP).

Part Five closes the book out with edge case information on pair programming in a distributed environment, using it in an educational setting, the continued relevance of code inspections, and more. Also included is a "Seven Habits of Effective Pair Programmers" list which couples nicely with the "Tips 'n Tricks" chapter in Part Two.

You will also find useful information in the appendices. There is a Pair Programming Tutorial designed to lead people through a half-day pair programming exercise. An economic analysis of an empirical study conducted at the University of Utah looks at supporting data from both an efficiency and economic perspective.

* Covers pair programming from multiple perspectives.
* Advises on improving pair programming sessions.
* Contains empircal data supporting the practice.

* Part Three could have been abbreviated but is easily scanned for relevant information.

5-0 out of 5 stars Answers to Common Questions
As the title suggests, Pair Programming Illuminated casts light on many of the frequently asked questions about pair programming. This very readable book helps you to understand why pair programming works, how to implement it, and when to consider not using it. Statements about pair programming are supported by data as well as stories by the authors and other practioners of pair programming. Buy this book if you want to understand pair programming better, implement pair programming in your team, or explain pair programming's benefits to someone else.

5-0 out of 5 stars I started a bit skeptical on pairing but now a believer...
I started a bit skeptical about pairing until I read this book.After completing the book I realized that I was thoroughly mistaking about my premature conclusions and comments on the topic.

This is a very thorough, interesting and entertaining book.After reading it from cover to cover, I realized that pair-programming is not only a good thing-in many instances for most software processes-but that it addresses a problem that many individual in our field suffers from-and I am a prime examplar of a programmer with some form of the symptoms of that problem:

General lack of social skills, or interest, for interacting, communicating and working in teams to create "good" large software... as well as sharing our knowledge without prejudice and with humility.Not too mention dealing with our not so small egos...

I also realized that in some sense, I have experienced (positively) some form of pair-programming without really knowing it.At the large software company where I work, we do spend a fair amount of time reviewing code and coaching, which reminds me of some of the tactics that is proposed in the book.Further, in a recent project I personally did spend a lot of time in a "coaching" role (as the lead) with the team... and the feedback I got from members of the team was only positive.

I am convinced now that my initial attitude and thoughts towards pairing was wrong and was based on misunderstanding and probably on recollections of "expert-novice" pairing that I had experienced a few times in the past; and which is singled out in the book as one instance where pairing might not work well.Further, my "soloist" programming background coupled with a more introverted personality does not help the matter.However, I do also realize that any decent software system (delivered in competitive business time and quality) has to be done by a team and is not a trivial endeavor-I speak from experience here.So breeding "soloist" programmers is not in the interest of the field nor is it for any company.Finally, as is indicated many times, pairing might also be a lot more fun.

I know now what changes I will be pushing for, in my next project. ... Read more

11. Design Concepts in Programming Languages
by Franklyn A. Turbak, David K. Gifford
Hardcover: 1200 Pages (2008-08-31)
list price: US$79.00 -- used & new: US$58.67
(price subject to change: see help)
Asin: 0262201755
Average Customer Review: 5.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Choice Outstanding Academic Title, 2009.

Hundreds of programming languages are in use today—scripting languages for Internet commerce, user interface programming tools, spreadsheet macros, page format specification languages, and many others. Designing a programming language is a metaprogramming activity that bears certain similarities to programming in a regular language, with clarity and simplicity even more important than in ordinary programming. This comprehensive text uses a simple and concise framework to teach key ideas in programming language design and implementation. The book's unique approach is based on a family of syntactically simple pedagogical languages that allow students to explore programming language concepts systematically. It takes as its premise and starting point the idea that when language behaviors become incredibly complex, the description of the behaviors must be incredibly simple.

The book presents a set of tools (a mathematical metalanguage, abstract syntax, operational and denotational semantics) and uses it to explore a comprehensive set of programming language design dimensions, including dynamic semantics (naming, state, control, data), static semantics (types, type reconstruction, polymporphism, effects), and pragmatics (compilation, garbage collection). The many examples and exercises offer students opportunities to apply the foundational ideas explained in the text. Specialized topics and code that implements many of the algorithms and compilation methods in the book can be found on the book's Web site, along with such additional material as a section on concurrency and proofs of the theorems in the text. The book is suitable as a text for an introductory graduate or advanced undergraduate programming languages course; it can also serve as a reference for researchers and practitioners. ... Read more

Customer Reviews (4)

5-0 out of 5 stars An outstanding treatment of programming language theory
The book is about various concepts encountered in various kinds of programming languages: denotational and operational (BOS/SOS) semantics, issues of state and control, type systems, modules, modeling effects and compilation.
Every concept is introduced by defining the semantics of a language that has this concept and exploring the design dimensions and issues of this concept and language.
Concepts are gradually accumulated, and by the time you reach the chapter on modules you've got a CBV language with records, mutable state, polymorphic algebraic data types, a System F type system with type inference and a hint ofdependent types, abstract data types and first-class dynamically loadable modules.

The tools used for description are of course the good old denotational and operational semantics and typing judgements and derivation trees; but each element of those is clearly and succintly described in text; it happens to me all the time that I am reading a type reconstruction algorithm and wondering, "why does this rule have that restriction?" and it immediately turns out that in the next paragraph, the authors focus attention on why this rule has that restriction; just like if they were reading my thoughts.
That's why this book feels very comfortable to me: I am absolutely sure that I won't encounter a point where I am lost and buried under the notation; but there is also not a single boring moment.

I've been interested in functional programming and PL theory for 2-3 years already, and here's a brief list of the *new* things that I have learned, at least:
- What do SOS and BOS mean, and why one should care, and what properties a SOS might posess (confluence and normalization, for instance)
- How many features of languages can be defined in terms of simply desugaring, and how in some cases they can't
- How one might use monadic style in the semantics metalanguageto greatly simplify the semantic rules for monadic concepts like state, control and error handling (the authors mention the word "monad" only once, but they use return- and bind-like operators in their semantics)
- How powerful records are, and of what use are operators like "conceal"
- What use is subtyping outside of OOP
- How does one define CPS-style semantics and how such a style allows to add state, control and errors with minimal changes
- How small yet powerful an OOP language core can be
- How algebraic datatypes can be very useful even in a language without static typing
- How pattern matching can be desugared into CPS-style deconstructors
- How many caveats are there in defining typing rules, and how a small change in them can lead to very big changes in language expressiveness
- How HM type inference actually works
- Why purity is important for certain polymorphism issues
- What let-polymorphism means
- What effect systems are
- How effect reconstruction works and how it is different from type reconstruction in nature
- How effect inference can prove the external purity of certain internally impure programs
That's where I finished my reading for now. The remaining looks even more intriguing; for example, I don't (yet) know how functional languages are compiled and how register allocation is done.

I'm afraid to sound like a salesman, but this is absolutely the best-written technical book I have ever seen in my life, and probably the most influential one for me, excluding maybe SICP.

5-0 out of 5 stars Fantastic book!
Really wonderful book, well-written, easy to read, covers many topics.Very formal and yet so readable.All code within the book is written in s-exps syntax, and the book covers topics such as type inference, monads etc.Need I say more? :-)

5-0 out of 5 stars well worth the price
If you want to pursue PL in any detail, you might as well buy this book now because very soon most schools are going to start using it/recommending it as a text in grad-level intro PL courses. I used Winskell in grad school and had forgotten most of it. This book is definitely more accessible and covers a lot more material and is much more up-to-date with current research. It's a lot of fun to read and I predict its going to become *the* book in its field very shortly.

5-0 out of 5 stars A recommendend read
MIT Press's massive new tome is excellently researched, thorough and a must-have for your deskside bookcase. Just make sure the shelf is sturdy enough for its 1,322 pages: This is not a book to carry in your hand luggage for your next airplane trip....

You can read my full review at blog.zeichick.org ... Read more

12. Elements of ML Programming, ML97 Edition (2nd Edition)
by Jeffrey D. Ullman
Paperback: 383 Pages (1998-01-01)
list price: US$68.00 -- used & new: US$50.36
(price subject to change: see help)
Asin: 0137903871
Average Customer Review: 4.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Written by a well-known computerscience education and researcher. No previous knowledge of ML or functionalprogramming is assumed.This is the first book that offersBOTH a highly accessible, step-by-step introductory tutorial on ML programmingand a complete reference to, and explanation of, advanced features. The authoruses a wide variety of digestible program examples to bring the readeralong at a reasonable pace. More sophisticated programs and advanced concepttopics balance out a book that is usable in a number of courses and settingsfor either self-study or class discussion. ... Read more

Customer Reviews (6)

5-0 out of 5 stars Treasure Map to Understanding ML
When tasked to quickly learn the basics of the ML programming language for class and be expected to program an Abstract Data Type, I was a little bit frantic. In the short time given to me to prep for said programing project, I raced around looking for sources that would improve my understanding of the language and one of the sources i found was this book that was also recommended by the professor.

This book, Elements of ML Programming, has its reader approach ML from the vantage point of either someone who has never programmed but has some understanding of Programming theory or someone who has programmed before but never touched a Functional Programming Language. In that respect it excels at explaining the unique features of the ML language and how best to use and write in it.

5-0 out of 5 stars ****************Good Book But Outdated ****************
This book covers the ML programming language. Unfortunately this language is rarely used these days as a functional programming language . This is a97 edition which is again more than a decade old. If you are a person looking to learn a functional programming language i recommend learning the newer language such as Haskell. I used Haskell for my course recently.

5-0 out of 5 stars Great intro book.
Examples and exposition are overall great.Jokes are clever and the tone is light through the book.It reads much like the Perl book by Lary Wall.It hits topics a bit slower than SICP.The biggest problem with this book is it left me felling "Ok, I know the syntax/semantics, now what?"This is a common problem with intro to programming books, and I don't fault it too much for that.

The biggest weakness of this book in my opinion is it didn't strongly teach a "style" that I can adopt into my own programs (but then, no FP programming book I've ever read does).It did great teaching functional programming, but as with most intro-to-fp books forgot that real programs don't fit in one file and are several thousand lines of code.


4-0 out of 5 stars Academic? Yes, but that's a good thing
I appreciate the consistency of exposition, especially when explaining recursion of execution and recursive datatypes using basis and induction cases.It's a book for those who are interested in the crossover between CS theory and mathematics, but only introductory calculus is necessary (and that's only in one section).If you come from a procedural programming background, as I did, this book is an excellent introduction to the techniques of functional programming. I would recommend reading this in conjunction with ML for the Working Programmer by Paulson.If you are looking for a gentler introduction to functional languages, like LISP and its sister Scheme, try The Little Schemer by Friedman and Felleisen.

3-0 out of 5 stars A decent overview of ML
While I find functional programming, and ML/SML in particular to be most annoying, this particular book is helpful in illuminating some key concepts of the paradigm.However, there are certainly sections where complex concepts are either glossed over, or explained in a very confusing manner (take Section 5.3.1, for example, which attempts, in a somewhat confusing manner, the limitations of polymorphic functionality in ML and it's relationship to types.A dense topic to be sure, but also poorly explained.)Additionally, there are some technical errors to be found in the book (eg: things that 'dont work' which really do, incorrect error messages, etc), which I mostly attribute to SML having been updated since the author published the book (not really his fault).

Certain things, ARE however, the author's fault.In particular, he addresses the audience with needlessly confusing 'Basis'/'Induction' definitions for many many things.For example, a binary tree is defined in such a way.This can be incredibly confusing, espcially if one does not already understand the concept of a BT or a BST. While ML/SML is a mathematical language, the author assumes too much formalism in his definitions, enough that the reading feels like reading a thick algorithms book at times (not a pleasant experience).Suggestion to author:Explain things simply instead of trying to coerce definitions into formalisms in which they do not belong (in particular the induction formalism which is very often confusing, use induction only when TRULY needed).

On the whole, ok to learn from, but can be overly verbose in some areas (eg: the belabored explination of all the error messages) , yet unclear in others... (eg: the density of several sections).

Also, as a parting note, there is not too much assumed about the reader, however, it helps to have a broad general computer science knowledge (as well as basic math, eg: calculus) unless you pickup new side-concepts very quickly. For example, in one example, the author uses the trapezoidal approixmation as an illustration of higher order functions. This is well and good, assuming you know calculus.While he does 'explain' the ideas (eg: what a binary search tree IS) if you havent had it presented to you before, you're in too deep.

Important: This is a ACADEMIC book, this is not something to pick up and read, it is far too dry for that.If you're looking for a good learning book, look elsewhere. ... Read more

13. Programming Language Processors in Java: Compilers and Interpreters
by David Watt, Deryck Brown
Hardcover: 436 Pages (2000-02-14)
list price: US$93.33 -- used & new: US$29.99
(price subject to change: see help)
Asin: 0130257869
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Aims to exemplify good software engineering principles at the same time as explaining the specific techniques needed to build compilers and interpreters.Examples included. DLC: Java (Computer program language) ... Read more

Customer Reviews (8)

5-0 out of 5 stars The best intro to compilers, period!
Very well organized, all source code for the compiler + Interpreter/Virtual Machine + Disassembler is available online.Good writing, good exercises (including answers to some of them), good selection of material to cover.

If you want to have a good understanding of how copilers/interpreters work, and want good working source code for a demostration and to play with, then you must have this book.

The fact that the implementation is in Java is another plus.Petty differences aside, Java is the most accessible language (in terms of reaching a wide audience), and for those who want to quibble over the authors' coding style: "Grow up!"

For those of you trying to decide whether or not to get this book, go on, download the source, take at look at the code, run it, and if you wanna know how/why it all works, then get the book and read it.You will be glad you did.

1-0 out of 5 stars No longer relevant thanks to Eclipse framework
Now that Eclipse has an open source (LGPL) framework for building compilers, processors, refactoring tools, code generators, and interpreters, this book is hardly relevant.Eclipse's JDT is well documented, and functionality existing for Java can be ported to other languages (and some is already abstracted to the underlying Eclipse platform).Eclipse has an AST (Abstract Syntax Tree), DOM, and all the other tools this book hacks together, except Eclipse is a huge widely supported open source project.

5-0 out of 5 stars Simply the best Learing-by-Coding compiler book
This is really the greatest 'Compiler for Dummies' book as of today. I own and studied all books (total arround 80) about compiler constructions you can buy in the world today plus a lot of out of print titles, so I know what you can buy on the market...

If you're looking for a learning-by-coding compiler book don't look futher. This is a great introbook for a Bachelor of Science of a Professional Bachelor student! If you have the money to buy only one compiler book buy this one. If you have the money to buy 2 books and you also know a bit C++, buy this one and 'Writting compilers and Interpreters' from Ronald Mak which also offers a pratical approach which is also nice for newbies but not that nice as this book.

If you have finished this book and want to get more theoretical insight or you're a Computer Science M.Sc student(like me), read 'Programming Language Pragmatics' from Mr. Scott, which don't present the material on a dry manner. This book covers all aspects of compilation and language design in greater detail! Be sure you have read (or master) an intro text like 'programming language processors in java' before starting books like 'programming language pragmatics'.

If you're a M.Sc. student and you're looking for a learning-by-coding book i recommend the books of Andrew Appel (Modern Compiler Implementation in Java) which covers advanced topics (optimization, register selection,etc). But beware: if you're new to compiler design forget Andrew Appels book, and buy this one because Appels would be a bit too difficult for you.

Back tot the 'Programming language processors in Java' book.

This is what I like and what not:


* It gives some nice written theoretical introduction of the whole compilation process (e.g. what's LL and LR-parsing, how is runtime organization organized (stack, parameter passing, stackframes etc). It doesn't dive too deep, but you will be familiar with the topics. E.g. it explains how LL and LR parsing works (with some nice examples how to parse LL/LR simple English sentences), but it doesn't tell you what the advantages/disadvantages of both methods are. This is beyond the scope of this book. For these topics read later something else (e.g. 'programming language pragmiatcs')

* Not all Java code is printed to fill 1000 pages. Every codesnippet is well commented, all repeatative code is left out: you can download all the Java code. So this book is not one big listing.

* It gives you insight how to build a really nice Virtual Machine. The author is talking about an interpreter, but the compiler generatesmodern intermediate code (STORE,LOAD,CALL,JMP) and the VM execute this in a big WHILE-loop.

* Somelearning-by-coding compiler books (e.g. 'Building your own compiler with C++' by Jim Holmes (not recommended)) explain only a silly subset of pascal (e.g. only assignment and writeline), but this book teach you 'mini Triangle-language' which also offers arrays, functions/procedures, records (structs), and parameter passing by reference/value. It also explains you those more difficult topics like parameter by reference passing is handled by the codegenerator.

* It has a nice chapter about runtime organization. This is a nice chapter for people which are new to e.g. processorarchitecture. This chapter explains you how local variables are stores (stack), how parameter passing to functions is working and how return values are passed back. Because the Interpreter (VM) which is introduced in the book, has a modern stack machine VM (STORE,LOAD,JUMP) this is an excelent way to study those VMs and code generating for a stack machine.


* I agree to the customer review of Mr. Yegge of July 12, 2004 that the Java Code is not always supernice. E.g. there is often java.lang.Object parameter passing which is later dangerous narrative casted. I do NOT agree with Mr. Yegge about his remarks on the Visitor pattern. The author explains why he is using the visitor pattern: to reduce coupling between the CodeGenerator or TypeChecker and the AST. On this point I like the design of the author. The idea of using the visitor pattern is nice, but it is somewhat bad implemented with those narrative casts.

Conclusion: I STRONGLY recommend this book for people who are new to compiler design.

3-0 out of 5 stars Rushed to publication too quickly
It's a lot of work creating a textbook like this, and the authors did a great job along certain dimensions.The book is well-organized and much more accessible than many (in)famous compilers books.The copy editing is high-quality:there aren't many mistakes in the book.The book itself is beautifully bound and printed, making it a pleasure to read.There's lots of sample code.On the whole, it's not a bad effort.

There -are- some real problems with it, though.The most obvious and central problem is that it's not a book by (or for) Java programmers.It feels very much as if the book was hastily rewritten from "Language Processors in Pascal" to "Language Processors in Java" after Java exploded in popularity, a year or two before the book was published.The mini-Triangle language is clearly a Pascal derivative, and many of the "pseudo-code" examples are really Pascal.Pascal may be a teaching language, but it looks completely alien to Java developers.

My biggest concern, and it's what prompted me to write this review, is that the Java code is truly awful.Yes, it uses the Visitor pattern (as one reviewer pointed out) to traverse the AST during semantic analysis, which is a reasonable strategy.But the code is just plain bad, and you don't want students learning bad habits.The code is utterly non-polymorphic; it's filled with long cascaded if-statements that check whether an AST node is an instanceof this or an instanceof that.They pass and return parameters of type Object, and callers perform dangerous narrowing typecasts.They freely pass and return null values that have special semantics (i.e. "if this parameter is null, then it means we have this kind of situation; otherwise it's the other kind").Types are represented as ints (no attempt to create typesafe enums), instance members are made public and accessed directly rather than through methods, and they use unconventional (and unexplained) 1-character variable names.I'm telling you:it's a complete disaster, and students will come away from the course writing the worst Java code you could imagine.

Another problem:the book is written in a stilted and awkwardly formal tone - a throwback to textbooks in the 70s and 80s.The art of writing textbooks has advanced to the point where, gosh, you're supposed to be able to READ them.They're written FOR real people, BY real people.But this book reads like an actuarial report.It never says "you" and never says "we" - it's written entirely in stilted 3rd-person legalese.Not good.

Oh, one more gripe:the authors decided mysteriously that they don't like the standard terminology that's been around for 3 decades, so they changed "semantic analysis" to "contextual analysis" and so on, and then acted as if the standard terminology is non-standard.They could have at least said up front that they preferred using their own terminology, but that it was nonstandard; instead they're trying to rewrite history.It's inexcusable, and will confuse students who head to other books after reading this one.

Compilers are hard to write and hard to learn, and this book actually is an improvement in clarity of exposition over most of its predecessors.But it's just begging to be replaced by something better.In the meantime, I'd skip it and go straight to Programming Language Pragmatics.

5-0 out of 5 stars Easy to read and understand
The author has done a good job by presenting basic
compiler theory and implementing a simple
compiler using the java programming lauguage.

Good illustration of compiler concepts.

One of the better basic compiler books i have read
so far.

Next book should be "Progamming language pragmatics"
followed by "Advanced compiler design and implementation" ... Read more

14. The Psychology of Computer Programming: Silver Anniversary Edition
by Gerald M. Weinberg
Paperback: 292 Pages (1998-09)
list price: US$44.95 -- used & new: US$29.70
(price subject to change: see help)
Asin: 0932633420
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
This landmark 1971 classic is reprinted with a new preface, chapter-by-chapter commentary, and straight-from-the-heart observations on topics that affect the professional life of programmers.

Long regarded as one of the first books to pioneer a people-oriented approach to computing, The Psychology of Computer Programming endures as a penetrating analysis of the intelligence, skill, teamwork, and problem-solving power of the computer programmer.

Finding the chapters strikingly relevant to today's issues in programming, Gerald M. Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.

Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.

Dorset House Publishing is proud to make this important text available to new generations of Weinberg fans and to encourage readers of the first edition to return to its valuable lessons. ... Read more

Customer Reviews (18)

5-0 out of 5 stars Psychology in Computer Programming - Silver edition -
The book was first written in 1971. However, what are written is still fresh and includes lots of things to think about not only when programming, but also, when to do something.

5-0 out of 5 stars Still Well Worth Reading
I bought The Psychology of Computer Programming for my son, who is following in my footsteps as a computer programmer, sort of: Instead of machine languages, assembly languages, Fortran, Cobol, and report generators, he uses newer languages such as Pearl, Ruby, and Java. But he still found this book very interesting and well worth reading, as I did years before I first met his mother.


5-0 out of 5 stars You write the program and the program writes you
I don't think you can actually "review" a book like this one. It's like reviewing Dostoevsky.

Sufficient is to say that this book is still highly relevant after 35 years, which is beyond any possible comparison. In fact, it doesn't bug you the least that the author speaks about new languages COBOL and PL/1 or programs being fed into a computer through a stack of punch cards. Because it doesn't matter, it's irrelevant to the matter discussed.

Which leads us to what the book is about. The book is really about the relationship between a human programmer and the programs he writes. The psychological aspects of programming, if it doesn't sound too obvious. And that did not change over the years. It is as helpful to a programmer today as I guess it has been at the time it was written. For a programmer to read this book is to increase self-awareness and understanding of the profession.

Neither very psychological nor very technical (on purpose, to encourage more people to read it), the ideas in this book come mostly from observation and there are plenty. See, the primary purpose of this book was to stimulate related research. It has apparently been achieved - as of now, it is referenced from all over the place as the major source.

A must read.

1-0 out of 5 stars Unbelievably Bad!
I think Wienberg must be spamming these reviews with a multitude of user names.That is the only explanation that can explain the four star average rating for this steaming pile of refuse.This is a book from an era when there must have been very low standards for 'popular' technical books.Weinberg is no psychologist, his observations are amateurish and ill informed.This book reads more like a 'best practices' work for the mainframe era.The most telling thing I can relate is my experience; after finishing a chapter I would read the chapter summary and not recognize a single thing from the chapter I had just read.The most laughable part was the coverage of programming languages.Wienberg is so completely ignorant of programming language research, even for that era, it's stunning.AND the man had (has) the gall to write on the subject as if he knows something.The most distasteful part of the book are the Anniversary Edition comments.They basically consist of Weinberg telling us that, he may not have been completely correct, but wasn't he amazingly prescient for the times?Gag.I'll never read another book by this author.

4-0 out of 5 stars One of the key books on the people side of software
If you're a developer (referred here as a "programmer") and something's not going just right in your work or group, try reading this book to see if the situations are somehow familiar. The stories about non-technical factors that affect code quality and developer's quality of life are the originals from 25 years ago, with a few-page update at the end of each chapter. While there aren't punch cards and batch jobs anymore, the situations still occur. Try to find your parallels in modern-day software development, where the tools may be new but the people are very much the same. (Do your best to ignore the chauvinistic comments here and there left over from a male programmer of 1971, for which the author now apologizes.) Interesting thoughts at the end about how language and compiler design also affects ease of writing good code. ... Read more

15. Masterminds of Programming: Conversations with the Creators of Major Programming Languages (Theory in Practice (O'Reilly))
by Federico Biancuzzi, Chromatic
Paperback: 496 Pages (2009-03-27)
list price: US$39.99 -- used & new: US$16.22
(price subject to change: see help)
Asin: 0596515170
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description

Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. In this unique collection, you'll learn about the processes that led to specific design decisions, including the goals they had in mind, the trade-offs they had to make, and how their experiences have left an impact on programming today. Masterminds of Programming includes individual interviews with:

  • Adin D. Falkoff: APL
  • Thomas E. Kurtz: BASIC
  • Charles H. Moore: FORTH
  • Robin Milner: ML
  • Donald D. Chamberlin: SQL
  • Alfred Aho, Peter Weinberger, and Brian Kernighan: AWK
  • Charles Geschke and John Warnock: PostScript
  • Bjarne Stroustrup: C++
  • Bertrand Meyer: Eiffel
  • Brad Cox and Tom Love: Objective-C
  • Larry Wall: Perl
  • Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes: Haskell
  • Guido van Rossum: Python
  • Luiz Henrique de Figueiredo and Roberto Ierusalimschy: Lua
  • James Gosling: Java
  • Grady Booch, Ivar Jacobson, and James Rumbaugh: UML
  • Anders Hejlsberg: Delphi inventor and lead developer of C#

If you're interested in the people whose vision and hard work helped shape the computer industry, you'll find Masterminds of Programming fascinating.

... Read more

Customer Reviews (13)

4-0 out of 5 stars A fun read
I've finished Don Chamberlin (SQL), and am reading Tom Love (Objective-C).
Don Chamberlin was funny:

- Question:Why did you become interested in the query languages?
Don: I have always been interested in languages.
- Question:Do you speak other languages (beyond English)?
Don: No, I don't speak any other human language, but I like to read and write, and I find languages a fascinating subject

Tom Love's interview seems to be more informative.

3-0 out of 5 stars Where's Wirth?
I've read the table of contents, and am part way through the book, but I can't see how a book of interviews with designers of influential programming languages can be considered complete without interviewing Niklaus Wirth. Pascal, Modula-2, and to a lesser extent, Oberon, have all greatly influenced the design of most (not all) of the programming languages discussed in this book.

3-0 out of 5 stars Unengaging
This is, as its subtitle says, a set of interviews with creators of programming languages. The interviews assume familiarity with the languages being discussed, which means that few people will find the book fascinating from cover to cover. Like many programmers, I first learned Basic, then C/C++, then Java and a smattering of other, hipper procedural languages (Python, Ruby), with a dollop of SQL on the side. So while I'm interested in functional languages like ML and Haskell, I often had no idea what the interviewees were talking about. Concrete examples would have been enormously helpful.

For a book about programming languages, there's astonishingly little source code. Someone who never learned Basic could read the whole chapter on it without having any idea how pleasingly simple its syntax is. The lack of code makes this book mainly useful as a supplemental text to other books on programming languages.

There are also some glaring omissions: Ruby, one of the hottest languages of recent years, is nowhere to be found. Nor is JavaScript, a language found on every modern web page. I would also have liked to see Erlang and Scala represented.

5-0 out of 5 stars It's nice to get into the heads of programming languages designers
It's really enlightening to get into the heads of programming languages designers and understand some of the ideas behind the way each of them designed the language, the problems they were trying to solve and how they solved them.

I find that very interesting and mind opening and I recommend this book to anyone who is interested in computer sciences as well as any programmer who aspires to be better.

4-0 out of 5 stars Packed with thoughtful, geeky quotes and insights
Masterminds of Programming: Conversations with the Creators of Major Programming Languages (Theory in Practice (O'Reilly)) by Federico Bioancuzzi and Shane Warden and published by O'Reilly and Associates is a large (480 pages), dense book packed full of exposition about language design, software engineering practices, software development lifecycle methodologies, Computer Science curricula, and unique insights into computer and computation history.

The format of the book is straightforward. Each chapter is dedicated to a programming language and contains a series of questions by the authors and responses from designers and creators of the language being highlighted.

I expected the chapters on languages I was familiar with to be the most interesting and those I was not familiar with to be the least interesting but my experience was the opposite. Chapters highlighting languages that I have had no exposure to such as Forth, APL, ML, and Lua were full of intriguing information, especially languages that were designed in the 1960s or 1950s. It's fascinating learning about how these languages came to be given the relatively restrictive hardware they were developed with.

Other languages highlighted in the book include:

* Python
* Perl
* Java
* C++
* C#
* Objective-C
* Postscript
* Eifel
* Haskel

The book is just overflowing with powerful quotes that carry substantial meaning to developers, language designers, and managers. Here are a few that stood out to me.

"Whenever I hear people boasting of millions of lines of code, I know they have grieviously midunderstood their problem. There are no contemporary problems requiring millions of lines of code. Instead, there are careless programmers, bad managers, or impossible requirements for compatibility." --Chuck Moore in the Forth chapter

"As processors continue to get faster and memory capacities rise, it's easier to do quick experiments and even write production code in interpreted languages (like AWK) that would not have been feasible a few decades ago. All of this is a great win.

"At the same time, the ready availability of resources often leads to very bloated designs and implementations, systems that could be faster and easier to use if a bit more restraint had gone into their design. Modern operating systems certainly have this problem; it seems to take longer and longer for my machines to boot, even though, thanks to Moore's Law, they are noticeably faster than the previous ones. All that software is slowing me down." --Brian Kernighan in the AWK chapter.

"Software engineering is in many ways a very pathetic field, because so much of it is anecdotal and based on people's judgements or even people's aesthetic judgements." -- Peter Weinberger in the AWK chapter

"The software business is one of the few places we teach people to write before we teach them to read. That's really a mistake." -- Tom Love in the Objective-C chapter

"What do you think the chances are that Microsoft applications get slower and slower because they haven't managed memory properly? Have you ever met a three-year-old Microsoft operating system that you wanted to use? I actually operate with a laptop that has a Microsoft-free zone. It's amazing how much more productive I am than other people sitting in the same room with Microsoft computers. My computer is on, and I've done my work, and I've closed it down before they've gotten to their first Excel spreadsheet." -- Tom Love in the Objective-C chapter.

"If you study gold or lead from day to day, you can measure the properties and employ scientific methods to study them. With software, there is none of that." -- Brad Cox in the Objective-C chapter.

"C# basically took everything, although they oddly decided to take away the security and reliability stuff by adding all these sorts of unsafe pointers, which strikes me at grotesquely stupid, but people have used most of the features of Java somewhere." -- James Gosling in the Java chapter responding to the question related to C# being inspired by Java.

"I think architecture is very important, but I am cautious about labeling individuals as architects, for many reasons. Many times I have seen companies with a team of architects that they send to other organizations to work on projects. That may be fine if they work inside a particular project, but companies such as big banks usually have a group of enterprise architects that sit and draw representations of the architecture. Then they throw this over the wall to the developers. The developers just ask themselves: `What is this? It's useless.' In many companies, enterprise architects sit in an ivory tower without doing anything useful." -- Ivar Jacobson in the UML chapter

"Developing software is not rocket science. Look at the 5-10 million people who call themselves software developers. Very few of them really do anything creative of fundamentally new. Unfortunately, the outside world thinks that programmers are creative and brilliant people, and that's far from reality." -- Ivar Jacobson in the UML chapter.

"I rarely have met a programmer who understands the principles of computational complexity and puts them into practice. Instead they fuss with all kinds of pointless suboptimizations that are `pennywise and pound foolish... I think the most important skill in computing (as in physics and other creative fields) is the ability for abstraction." --James Rumbaugh in the UML chapter.

"I have found over my career, whether it be researchers or engineers, that in addition to the sort of intellectual skills that they manifest, if they are people who finish what they set out to do, they tend to be much more productive and have a much larger impact." -- Charles Geschke in the UML chapter.

These quotes are just scratching the surface.

Many of the interviews discuss history of computer science and computation theory. For example, Charles Geschke and John Warnock gave answers in the Postscript chapter detailing how Xerox PARC came into existence out of ARPA's emphasis on digital communications which was the result of thinking within the Eisenhower and Kennedy administrations.

Because of the simple, straightforward format of this book, there is definitely room for improvement. For example, readers unfamiliar with certain languages would find it immensely useful to see examples of the language in use. One thought is that each chapter could start with a code excerpt showing how a programmer might use the highlighted language to solve a generic problem. Readers could then see, in code, how each language differs in their approach to the same problem.

Each chapter is preceded by one paragraph description of the language which may contain brief history of the language's history. This could definitely be expanded upon. This book is big already and I don't think O'Reilly's goal is to make it a computer language text book, but it would be useful if each chapter started with 2-4 pages of introductory abstract about the language.

The authors have placed biographical information about each of the contributing interviewees in a Contributors appendix near the end of the book, but it would be more helpful to the reader if this information appeared at the beginning of each chapter instead.

Masterminds of Programming is available at a suggested price of $39.99. I rate it at four and a half stars.
... Read more

16. Embedded Programming with the Microsoft .NET Micro Framework
by Donald Thompson, Rob S. Miles
Paperback: 288 Pages (2007-06-20)
list price: US$44.99 -- used & new: US$7.30
(price subject to change: see help)
Asin: 0735623651
Average Customer Review: 3.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Learn how to use the Microsoft .NET Micro Framework to develop applications for the next generation of embedded devices. Embedded programming is set to move into the mainstream as a variety of new devices come to market. A key embedded device enabled by Windows Vista(tm) that requires the .NET Micro Framework is Windows SideShow(tm), the external display that will be incorporated into many notebook computers. This reference shows developers how to use the .NET Micro Framework to create new applications for Windows SideShow displays and small, resource-constrained devices. With insights direct from the product team it covers essential topics, including interface design and managed drivers, device capabilities, and how to use emulation technologies. In addition, it delves into how to port key functionality from existing applications into other form factors. Ideal for developers with experience working with Microsoft Visual Studio® 2005 and Microsoft Visual C#®, this essential guide includes practical examples and code samples. ... Read more

Customer Reviews (1)

3-0 out of 5 stars The book is okay, the subject matter is questionable
The book seems well written, there are examples with commercial development boards in the examples that most any developer can follow.However, the whole Micro Framework is very disappointing as it there is no native code compiler.

If you are interested in this book then chances are that you are a MS developer. While I do have a MCSD certification I have been an embedded software engineer (usually with Linux or VxWorks) for over 10 years and most/all embedded development work is generally done in C/C++ or assembly language for a reason; size and speed. If you don't count something like a Cisco OC-192 router most embedded systems run with the minimum possible hardware. Every nickel that you need to add to compensate for lacking development tools hits the bottom line much more than it does in the PC world.

While I believe that the Windows CE environment would produce adequate runtime performance something like this Micro Framework which always runs as interpreted code is only suitable for a research tinker toy. IMHO I still believe that embedded projects are better done with C/C++/Linuxbut if you want to work with MS tools then focus on Windows CE. There are Windows CE books that cover the same ground and the end result would probably be more marketable than one based on the Micro Framework.
... Read more

17. Essentials of Programming Languages, 3rd Edition
by Daniel P. Friedman, Mitchell Wand
Hardcover: 416 Pages (2008-04-30)
list price: US$68.00 -- used & new: US$42.00
(price subject to change: see help)
Asin: 0262062798
Average Customer Review: 3.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
This book provides students with a deep, working understanding of the essential concepts of programming languages. Most of these essentials relate to the semantics, or meaning, of program elements, and the text uses interpreters (short programs that directly analyze an abstract representation of the program text) to express the semantics of many essential language elements in a way that is both clear and executable. The approach is both analytical and hands-on. The book provides views of programming languages using widely varying levels of abstraction, maintaining a clear connection between the high-level and low-level views. Exercises are a vital part of the text and are scattered throughout; the text explains the key concepts, and the exercises explore alternative designs and other issues. The complete Scheme code for all the interpreters and analyzers in the book can be found online through The MIT Press Web site.

For this new edition, each chapter has been revised and many new exercises have been added. Significant additions have been made to the text, including completely new chapters on modules and continuation-passing style. Essentials of Programming Languages can be used for both graduate and undergraduate courses, and for continuing education courses for programmers. ... Read more

Customer Reviews (2)

2-0 out of 5 stars I'm going back to the 2nd Edition
For several years I've taught an advanced undergraduate programming language course using the second edition of this book.Now I think I see why it's priced at $60, and the third edition is only $44.The third edition loses the simplicity and elegance of the second, replacing it with unnecessary abstraction and complexity (expressed versus denoted values), and treating the fun, hands-on part (implementation in Scheme) almost as an afterthought.

If it ain't broke, don't fix it.

4-0 out of 5 stars Very good book
I've taught fundamentals of programming languages, a course for 2nd year undergraduate students, using this book and it's been a success. The reader must know how to program in order to understand the book, I accept that, but the idea of teaching the basis of programming languages by creating one is great. Additionally, the use of Scheme as a language for developing is crucial.
On the other hand, the quality of the book and the paper are good. It has a lot of very decent exercises and the subjects are well-explained. ... Read more

18. A Complete Guide to Programming in C++
by Ulla Kirch-Prinz, Peter Prinz
Paperback: 848 Pages (2002-01-01)
list price: US$144.95 -- used & new: US$62.95
(price subject to change: see help)
Asin: 0763718173
Average Customer Review: 5.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
This book provides both novice and experienced programmers with a comprehensive resource manual for the C++ programming language. Readers gain experience in all aspects of programming, from elementary language concepts to professional software development, with in depth coverage of all the language elements en route. These elements are carefully ordered to help the reader create useful programs every step of the way.

The text provides a comprehensive, detailed, and clear description of C++ based on the International Standard ISO/IEC 14882 that was ratified in 1998. Every double page spread is arranged to explain language concepts and language elements on the right, illustrated with graphics and sample programs on the left. Additional information, such as case studies and filter programs, make this text a well-structured and intelligible learning and reference guide for anyone interested in C++. ... Read more

Customer Reviews (14)

5-0 out of 5 stars Fantastic!!!
If your new to C++, BUY this book, you will not regret it.
Authors do an outstanding job of explaining concepts in a very clear
manner. One great thing about this book for someone that is new to programming or just learning C++ is that the answers to the exercises are given at the end of each chapter. If you do the exercises first, without looking at the solutions, you DO have the solutions to see if your on the right track and to learn from.

5-0 out of 5 stars Most Have
I been teaching myself C++ ever since last year in 11th grade when I toke a course in programming. I bought a couple of books and learn most of the basic. So I decided I needed to get into more detail so I gave this book a try. I think if you really into C++ and you want to learn more or just a Reference this is a book you should look at. The only down side is the price but there are people selling it on here for lower so just check that out.... but if you have to buy new in my opinion it's worth it.

5-0 out of 5 stars Highly recommended
Easy to understand, concise, self-contained compact chapters with associated programme examples on every other page, covering the basics and more advanced topics.

5-0 out of 5 stars great book on a hairy subject
This is certainly the best C++ book I have read for auto-didactic purposes. C++ is a horrible programming language (coming from a functional programming POV, as well as a ton of ANSI-C systems and Fortran numerics coding in my past), which has unfortunately become a standard in many fields. Should it be a necessary evil to you, this is probably the book to read. Better yet: find a different line of work. All right thinking people should avoid making C++ a part of their profession. It has erased more hours of talent than MS minesweeper or solitaire.

5-0 out of 5 stars Best book on C++
This is the best book on C++ ever written, even better than Eckel's "Thinking in C++".

It is a very clear book, easy to read, with colors, well organized and with exercises. Solutions are provided for the exercises.

I think the most important thing about this book is it's written with ISO C++ 1998 and STL in mind. Most other books teach you C++ 1989 (or even older!) and have an appendix about ISO C++ 1998 and another appendix on STL, and believe me, that's not good for you. ... Read more

19. Java: An Introduction to Computer Science and Programming, Third Edition
by Walter Savitch
Paperback: 976 Pages (2003-04-07)
list price: US$92.00 -- used & new: US$62.95
(price subject to change: see help)
Asin: 0131013785
Average Customer Review: 4.0 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Best-selling author, Walter Savitch, uses a conversational style to teach programmers problem solving and programming techniques with Java. Readers are introduced to object-oriented programming and important computer science concepts such as testing and debugging techniques, program style, inheritance, and exception handling. It includes thorough coverage of the Swing libraries and event driven programming. The Java coverage is a concise, accessible introduction that covers key language features. Thorough early coverage of objects is included, with an emphasis on applications over applets. The author includes a highly flexible format that allows readers to adapt coverage of topics to their preferred order. Although the book does cover such more advanced topics as inheritance, exception handling, and the Swing libraries, it starts from the beginning, and it teaches traditional, more basic techniques, such as algorithm design.The volume provides concise coverage of computers and Java objects, primitive types, strings, and interactive I/O, flow of control, defining classes and methods, arrays, inheritance, exception handling, streams and file I/O, recursion, window interfaces using swing objects, and applets and HTML.For Programmers. ... Read more

Customer Reviews (47)

1-0 out of 5 stars Savitch is an Moron
Why does he think he is so god damn special that he needs to create a method with his last name for input? This teaches NOTHING about input!!! Sorry but once you get hired at a company they will NOT be using SavitchIn

This guy an IDIOT.

1-0 out of 5 stars DO NOT GET THIS BOOK
This book is a complete waste of money. First, the software installation instructions are terrible for a beginner programmer. The flow of the book jumps around like 2 kangaroos during mating season. It starts by saying that this book is for the beginner then jumps right into the first program then back to basics. The author doesn't explain terms like "class" and "method" to a level that the simple person can understand. Those who say this is a good book obviously didn't read it. Don't buy this book just get a good instructor who has several years of experience. Note the help websites that are in the front of the book DON'T EXIST.

2-0 out of 5 stars Bad choice for people withoutprogramming experience
It would be a good book if it went right to the point. But it goes over and over again through the same ideas, making it very confusing. They give you the first example and then they revise it over an over again, adding more code and saying that the first example is not good.

"We will say a bit more about the class Container later in this chapter" p. 730

Another example (in the same page!):

"An invocation of the method add can be written in the simplier form contentPane.add(label); instead of the slightly more complex (and slightly less efficient) expression getContentPane().add(label);" -which they give several pages before.

Why don't they give you the good one from the very beginning, so you don't need to re-learn and erase your notes from the chapter making the learning process super slow?

I also find it unorganized and boring. I think programming could be tought in a more interesting way, like in the book Head First Java, 2nd Edition. It is an interesting, fun and great book to learn Java. It is too bad that the professor's choice was Savitch, instead.

4-0 out of 5 stars Liked it - But did not adopt it because of 'SavitchIn'
I really liked the book. Savitch explains how to program in plain english - and he is easy to read. The only fault in the book (and the reason I did not adopt it in my Java courses is that he used 'SavitchIn'( a nice class he made for user input ) instead of what the student needs to learn.
Again - this is a REALLY GOOD JAVA BOOK. But he really needs to lose the 'SavitchIn' class. (Well, at least use it as an ALTERNATE way to get user input.) What a shame. And I really like his chapters on Swing.

5-0 out of 5 stars Good Java learning book
The way he writes this book makes it seem as if he's right there talking to you - using words you understand. The explanations are crystal clear.
Savitch is to Java as Malik is to C++. Both make it easy to learn - and after all, that's what I buy a book for - to learn.
Only drawback is the high price, but I suggest you bite the bullet so you won't have buyer's remorse. Go ahead and get the better book. (Also get the Schaums Outline.) ... Read more

20. Core Web Programming (2nd Edition)
by Marty Hall, Larry Brown
Paperback: 1398 Pages (2001-06-03)
list price: US$59.99 -- used & new: US$12.25
(price subject to change: see help)
Asin: 0130897930
Average Customer Review: 4.5 out of 5 stars
Canada | United Kingdom | Germany | France | Japan
Editorial Review

Product Description
Every Web developer needs to understand three core technologies: HTML 4, Java 2/J2EE, and JavaScript. Now, you can learn them all in one book: Core Web Programming, Second Edition, the ultimate Web development resource for experienced programmers! Writing for experienced programmers, Marty Hall begins with detailed, practical coverage of HTML 4 -- from the fundamentals to Cascading Style Sheets, Dynamic HTML, and beyond. Next, Hall shows programmers how to use Java as the base language for Web programming, and integrate other key technologies as needed. Along the way, Hall presents Web-focused coverage of Swing, Java threads, I/O, network programming on both clients and servers, HTTP, servlets, JavaServer Pages, and the latest version of JavaScript -- everything you need to know to build the most effective Web applications possible.Amazon.com Review
Becoming a Web developer these days requires expertise in avariety of disparate languages and tools and usually requires a wholeshelf of books. Core Web Programming delivers all you need tobecome a competent Web developer in one massive text. It covers HTML,Java, Common Gateway Interface (CGI), and JavaScript thoroughly withplenty of real-world programming examples.

The first part of thebook covers HTML 3.2, including the basic tags and more advancedtopics such as frames and cascading style sheets. This sectiondiscusses Netscape and Microsoft extensions to HTML (such as usingplug-ins for playing multimedia content and ActiveX controls). Thetutorial to HTML is comparable to those in other books of thiscategory and includes some of the author's tips for creating moreportable HTML.

The next section covers the basics of Java from aprogrammer's standpoint, including the advantages of Java and how toaccess Java documentation and tools. The tutorial that followsstresses the built-in libraries in core Java, covering drawing imagesand other graphics capabilities. Event handling in Java Developer'sKit (JDK) 1.02 (probably unnecessary these days) and JDK 1.1 receivefull treatment. The chapter on graphics double-buffering for smoothanimation within Java programs is particularly useful, and theauthor's treatment of how to access the network capabilities of Javais perhaps unmatched. (Topics here include how to load URLs usingJava's network classes and even how to create a simple HTTP server inJava.)

The third section of this text moves to CGI programmingusing Java on the server. The author introduces the basics of HTTP anddescribes how data are passed to CGI programs from the client. Thoughthis section lacks a discussion of Perl (which is still the preferredlanguage for CGI development), the treatment of CGI fundamentals andthe basics of Java servlets is good. (Java servlets are analternative--with some advantages--to Perl.)

The fourth and finalsection of the book returns to the client side once more, with atutorial on JavaScript, the scripting language for Netscapebrowsers. Topics such as how to use cookies to store information onlocal machines and how to validate arguments for CGI forms help roundout a successful tour of the technologies that developers need toprogram on the Web. ... Read more

Customer Reviews (69)

2-0 out of 5 stars Superceded by better books
Agreed that Marty Hall knows how to write and produces great books. Knowing this, I can heartily recommend his more recent "More Servlets and JSPs" as it provides more relevant up to date information. For the Java side of things, this offers the most bang for your buck.

When this book first came out, it was attempting to cover the gamut of web development technology, and tried to go from CGI up through JSPs and the coverage was ultimately spotty. For a more focused approach to servlets and JSPs, read Hall's later books. For a better historical perspective on the evolution of web programming, look at "Web Application Architecture - Principles, Protocols and Practices" by Leon Shklar and Richard Rosen.

2-0 out of 5 stars Outdated, unfriendly
I would be the first person to say that Marty Hall is a gifted writer. His books on Servlets and JSP are my favorite computer books, but this book is far from great. The style is cold, the material delivered too fast with too little explanations and all in all, the attempt to cover everything in one fell swoop fails. I was using the book in a class that tried to cover the material the book does, and as a learning resource it is way too shallow for thorough knowledge, more as an 'In a Nutshell' style instead.
If you want a good Javascript book, get 'Practical JavaScript for the Usable Web'; if you want a good Java book, well, look someplace else.
Spare yourself a book you will not enjoy reading (and get Marty Hall's 'Core Servlets' instead!).

4-0 out of 5 stars A standard
This was used in an MBA-level course on "Development of Web-Based Applications."The course centered on the management of application development, and the actual web-development component of the course was pretty light.However, I've used this book as a resource before and if you use Java this is a must-have.

5-0 out of 5 stars Outstanding, Real life examples!
This book is great for a beginner. It covers the basic of HTML, Java 2, JSP's, Servelts, and some javascript. Examples are clear and easy to understand.

4-0 out of 5 stars Almost perfect, more JavaScript needed...
Before I bought this book: I knew about html basic elements such as head, body, p, and a few more. I had to use tools to create web pages and I never knew how it really works, and I didn't use any advanced elements. Now I can do web pages much better, use CSS and many other cool things.

This book is so well organized it has good approach, from easy elements to harder elements. It covers very interesting topics starting with text elements (for beginning), frames, css, java introduction, java programming, basic 2d & 3d graphics, mouse and keyb. events, layout managers, awt components, swing, threads, network programming (excellent one), and finally server side stuff (java server pages, servlets,jdbc...).

My wish would be to remove java programming sections, since java programming is too big and to complex to show it in 2 or 3 sections, also there are plenty java programming books around. However this is just my opinion.

*All* of the examples are SHORT and INDEPENDENT: you don't have to read all chapters in a row to be able to understand the example. Each topic has it's own nice and small example which exactly points out the essential things. I really hate reading a book from beginning to the end, therefore I hate when whole book is based on one example which grows as you go further -THIS BOOK IS NOT LIKE THAT, althow more examples would be even better.

Finally, this is one of the best books I own, the only negative mark is that java programming should be removed, as well as awt, and instead more java script should be present, however this problem is easy to overcome by buying one of numerous java script books (recomended: JavaScript Bible by Danny Goodman).

Sorry for typos, good luck to all, bye ! ... Read more

  1-20 of 100 | Next 20
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  

Prices listed on this site are subject to change without notice.
Questions on ordering or shipping? click here for help.

site stats