Virtual Machine Design and Implementation in C/C++ (With CD-ROM)
||Author: Bill Blunden|
List Price: $59.95
Our Price: Click to see the latest and low price
Publisher: Wordware Publishing (March, 2002)
Sales Rank: 75,655
Average Customer Rating: 3.36 out of 5
Customer ReviewsRating: 2 out of 5
Should be more synchronized with recent development
I am more or less dissapointed with this book's contents, largely because I expected a bit more modern treatment of the subject.
What greatly dissapointed me was that the author doesn't compare his VM against others, which is quite a pity because there are modern languages interpreted using VMs like Java, Perl, Python and many more. This and some more facts suggest that the author is not in sync with current development in the field.
An another surprise for me is that the VM introduced is register oriented. I don't quite understand and agree with the arguments behind this choice, as opposed to stack based VMs. The author explains about computer processors that utilized the stack based architecture in the past that were outperformed by register based CPUs, thus they are not manufactured anymore. Which is a misleading fact, because registers of a VM are located in memory arrays, and suffer from the same efficiency penalties as the stack does.
Targeting a register based VM is much more difficult than with stack based VMs, but the author doesn't take attention to this fact. More precisely, he doesn't say a word about generating code for his VM aside from a simple assembler, that is explained at great lengths in a separate chapter, which I find somewhat uninteresting and off the topic, because only a few people really write code for VMs in assembler.
The book contains lots of code listings, that the author comments on well. The language used is much more C than C++, which is a pity in my opinion, but hey, the programming tastes differ.
What is worth noting, the author doesn't go beyond a naive one-large-switch VM implementation, which is not to blame, but it would be appreciable if the author noted some optimization techniques for VMs like direct-threading, inline-threading and just-in-time compiling.
Bill Blunden is overproductive in some areas, for example he tends to describe on a number of pages techniques like threading, but in the end only to explain that the VM doesn't contain any thread support at all.
In the end, I enjoyed some parts of the book, as it contains some notes about computer science history. But I can't avoid the feeling that the author got stuck in '80s and is not aware of the recent development.
I do not say that the book is bad, it just didn't fit me.
Rating: 5 out of 5
Answers the age old question
Every CS major learns about basic system software. Time constraints, and the need to cover ground can lead to a superficial understanding. Many students end up asking, "uh, just how do you build an OS? How do you build an assembler? How exactly does a debugger work in practice? How do you build a virtual machine?"
This thick book covers all of these questions in enough detail to satisfy most people. Functioning case studies are provided. I, myself, had always had questions about addressing modes in assembly language. This book dedicates an entire chapter to describing these types of low-level concepts that tend to sneak by the typical undergrad engineer.
Rating: 3 out of 5
I cannot find any information about virtual machine. --
this book shows the good example of beginning course book about computer system. However, I am sorry that this big book cannot provide useful information about its title.
If you already know compiler and computer architecture, reading this book make your time wasted.
· Writing Compilers and Interpreters
· Hacker Disassembling Uncovered
· Linkers and Loaders
· Programming Language Pragmatics
· Memory Management: Algorithms and Implementation in C/C++ (Windows Programming/Development)