or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Sell Back Your Copy
For a $0.78 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Programming for the Java™ Virtual Machine
 
See larger image
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Programming for the Java™ Virtual Machine [Paperback]

Joshua Engel (Author)
4.4 out of 5 stars  See all reviews (5 customer reviews)

List Price: $44.99
Price: $34.89 & this item ships for FREE with Super Saver Shipping. Details
You Save: $10.10 (22%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 15 left in stock--order soon (more on the way).
Want it delivered Tuesday, January 31? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for Students. Learn more

Sell Back Your Copy for $0.78
Whether you buy it used on Amazon for $5.65 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $0.78.
Used Price$5.65
Trade-in Price$0.78
Price after
Trade-in
$4.87

Book Description

0201309726 978-0201309720 July 2, 1999
The core of Java technology, the Java virtual machine is an abstract computing machine that enables the Java platform to host applications on any computer or operating system without rewriting or recompiling. Anyone interested in designing a language or writing a compiler for the Java virtual machine must have an in-depth understanding of its binary class format and instruction set. If you are programming with the Java programming language, knowledge of the Java virtual machine will give you valuable insight into the Java platform's security capabilities and cross-platform portability. It will increase your understanding of the Java programming language, enabling you to improve the security and performance of your programs. The author employs a tutorial approach that provides a detailed look into the central workings of the technology and teaches the reader how to write real programs for the Java virtual machine. He describes methods for becoming a better programmer through an advanced understanding of the Java virtual machine and Java technology. Programming for the Java Virtual Machine offers comprehensive coverage of all the major elements of the Java virtual machine--classes and objects, control instructions, debugging, class loaders, compiling the Java programming language, performance issues, security, and threads and synchronization. The book provides an introduction to the Java Virtual Machine Specification (JVMS), with a collection of topics that help programmers understand the Java virtual machine and the JVMS better. In addition, the book features implementations of Prolog and Scheme, a language that runs on top of the Java virtual machine, generating Java virtual machine code as it runs and using a Java virtual machine class loader to load the generated code into the system. You will find detailed information on such topics as: *The Java virtual machine verification algorithm *How Java virtual machine security works, and what it can and can't do *Using class loaders to incorporate code and dynamically generated code from the Internet, the Java Foundation Classes, database queries, and other languages *The mechanics of compiling the Java programming language for the Java virtual machine *Implementing other languages using the Java virtual machine, including Scheme, Prolog, Sather, Eiffel, and regular expressions Numerous examples illustrate techniques and concepts, and exercises with solutions help you gain practical experience. 0201309726B04062001

Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

Programming for the Java™ Virtual Machine + Java™ Virtual Machine Specification, The (2nd Edition) + Java™ Language Specification, The (3rd Edition)
Price For All Three: $113.61

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Java™ Virtual Machine Specification, The (2nd Edition) $35.78

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Java™ Language Specification, The (3rd Edition) $42.94

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details



Editorial Reviews

Amazon.com Review

Besides an expert tour of the inner workings of the Java Virtual Machine (JVM), Programming for the Java Virtual Machine provides a guide to Oolong, a low-level assembly language for Java. Behind Java's "write once, run anywhere" philosophy lies the JVM, an ideal model of a CPU with instructions (called bytecodes), memory, etc. In today's Java compilers, the details of the JVM are invisible, but this book explores how to write the bytecodes directly in Oolong.

In the initial stages of the book, the author focuses on the Oolong instruction set, presenting this object-oriented assembly language for Java in a notably clear fashion. The author even demonstrates the basics of Oolong, including classes, using concise examples.

The Java verification process, which allows the JVM to check whether a given Java .class file is safe to run, receives detailed attention as do debugging techniques, the Java class loader, and the contents of .class files. The book then offers a thorough description of how Java language elements are compiled into bytecodes, illustrated with Oolong.

In a section aimed specifically at researchers, the author shows how other programming languages can be coded in Oolong for use with the JVM, including Scheme, Prolog, and C++ templates. The book closes with a discussion of performance issues (including optimization techniques), security concerns, and a full listing of the Oolong instruction set.

Programming for the Java Virtual Machine is sure to show up on reading lists for computer science students. It shows that assembly language does not disappear on the Java platform, but rather that it can extend the functionality and performance of your Java programs. --Richard Dragan

From the Inside Flap

Every time you compile a Java program to produce a class file, you've written a program for the Java virtual machine. This book is designed to take you to the next level: writing Java virtual machine (JVM) programs directly, without the aid of a Java compiler. A number of people would want to do this:

Advanced Java programmers

Security experts

Language designers and compiler writers

Advanced Java programmers want to know how the JVM works, in detail. Learning the details of the JVM will help improve your understanding of what a Java program does. Some messages from the JVM will be clearer after you understand how the JVM looks at your program. This understanding can also help you improve the performance of your programs.

Another reason for advanced Java programmers to learn JVM programming is that it will help you understand how JVM code moves. One of the most important uses of Java is to download applets from the Internet (or other sources). The JVM uses a class called ClassLoader to incorporate code from the Internet into the JVM. The ClassLoader has many other uses. The Java Foundation Classes use subclasses of ClassLoader to load new Look and Feel classes. Some databases use other subclasses of ClassLoader to incorporate queries written in Java directly into the database.

Security experts already know that the Java language is designed with security features in mind. Java promises to allow users to download applets from the Internet without fear. However, these promises seem empty until you know precisely how the JVM keeps the promises Java makes. This book discusses in detail how the JVM verification algorithm works. Knowing the verification algorithm will give you greater confidence in the security of the JVM.

This book will give you the tools you need to build your own secure systems on top of the JVM, by explaining both what promises the JVM makes (and how it keeps them) and what promises it doesn't make.

Language designers want to design new languages for the Java virtual machine. Although the Java language is excellent, perhaps the best general-purpose programming language ever created, there are still times when a different language does the job better. Sometimes these are general-purpose languages built into an application (like WordBasic in Microsoft Word or Emacs Lisp). Others are tiny, special-purpose languages (like SQL, regular expressions, or filters in PhotoShop).

This book describes compilers for two languages, Scheme and Prolog, which are very different from Java. These compilers generate JVM code and use a subclass of ClassLoader to load it into the system. By compiling into JVM code, these non-Java languages gain some of the "Write Once, Run Anywhere" properties of Java without losing the power of the original language. These compilers can be used as a starting point for compiling other languages. Other languages already implemented for the JVM include Tcl, ML, Eiffel, Python, and Ada.

As more and more programs are written in Java, there is an increasing need to implement new languages. By implementing these languages using the JVM, you can get the portability and performance of the JVM. Prerequisites

This book assumes that you have a good basic knowledge of Java. Many of the ideas in the book are explained in terms of Java; at the same time, the book tries to explain Java in terms of the JVM. Hopefully, this will reinforce your understanding of both the Java language and the Java virtual machine.

If you're new to Java, let me recommend The Java Programming Language, by Ken Arnold and James Gosling. It's an excellent introduction to the language written in part by the originator of Java himself, James Gosling.

Many sections have exercises. The exercises don't introduce new material, but they do reinforce the existing lessons. Most of the exercises ask you to write small pieces of code. For some exercises, answers are provided at the back of the book. If you're using this book for a class and you've been assigned the exercises as a homework problem, then turning in the answers at the back of the book is cheating! Fortunately, real JVM programmers are trustworthy. Books

This book has been designed to stand on its own. You should be able to read it without owning any other books on Java. However, there are two books which you may find very useful.

One is The Java Virtual Machine Specification (JVMS), by Frank Yellin and Tim Lindholm. It is the "truth" of the Java virtual machine. All JVM implementers, including Sun itself, are expected to adhere to the definition of the Java virtual machine contained in the JVMS. Wherever your JVM implementation disagrees with the JVMS, it is always the JVMS that is correct. I recommend that you have a copy on hand if you want to do a lot of JVM programming, because it is the final word on any JVM-oriented question.

Another book I recommend is The Java Language Specification, by James Gosling, Bill Joy, and Guy Steele. This is a large, thick tome that contains the absolute truth about the Java language. It does an excellent job of specifying all the details of what a Java program means. It is meticulously precise, but it can still be a lot of fun to read because it throws in many funny examples and quotes. Even just browsing the index can be a treat. (Look up the index entry for prime numbers to see what I mean.Paper copies are available at any bookstore.

While you're on the Internet, let me recommend one other source of information. The newsgroup comp.lang.java.machine is dedicated to discussing how the Java virtual machine works, how it is implemented, and so forth. I'm a frequent reader and contributor, and there are many other experts willing to share their copious knowledge. Acknowledgments

I would like to thank Stefan Gower for giving me the original idea of implementing a Scheme compiler for the Java virtual machine. Christopher Cook, William Andersen, Brian Peterson, and Paul Brinkley were indispensable, allowing me to explain JVM concepts to them until I finally found a lucid explanation.

Marina Lang at Addison Wesley Longman was instrumental in guiding me through the process of getting a book written. Thanks also to the many reviewers she found who helped me turn drafts into something readable.

Finally, I would like to thank the regular posters to comp.lang.java.machine, the newsgroup for the JVM. They provided answers to a lot of questions and brought up questions I had not previously considered.

0201309726P04062001


Product Details

  • Paperback: 512 pages
  • Publisher: Addison-Wesley Professional (July 2, 1999)
  • Language: English
  • ISBN-10: 0201309726
  • ISBN-13: 978-0201309720
  • Product Dimensions: 9.4 x 7.3 x 1.1 inches
  • Shipping Weight: 1.8 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (5 customer reviews)
  • Amazon Best Sellers Rank: #747,385 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

5 Reviews
5 star:
 (3)
4 star:
 (1)
3 star:
 (1)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.4 out of 5 stars (5 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

15 of 16 people found the following review helpful:
4.0 out of 5 stars Good Tutorial Introduction to the Java Virtual Machine, May 23, 2000
By A Customer
This review is from: Programming for the Java™ Virtual Machine (Paperback)
The first five chapters of this book provide an introduction to programming in "Java assembly language" using the assembler included on the CD-ROM. This introduction does a good job of explaining the JVM instructions, but could have used more exercises to help the reader learn and practice using more of the instructions. Additionally, the chapters, appendices, and index could have been better organized so that I didn't have to keep flipping through pages to find the syntax and semantics of instructions.

The remainder of the book explores various areas such as verification, debugging, the class file format, security, and most importantly, compiling Java and other languages into JVM code. Mostly, this material is a tutorial introduction to information provided in the Java Virtual Machine Specification, but there is some original material in the chapters devoted to compiling Scheme and Prolog.

Be aware that this book contains numerous errors; you'll want to grab the errata list from the Addison-Wesley website.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


8 of 8 people found the following review helpful:
5.0 out of 5 stars Excellent anaylsis and tutorial!, April 18, 2000
By 
Stephen Tse (Vancouver, Canada) - See all my reviews
This review is from: Programming for the Java™ Virtual Machine (Paperback)
Together with author's reference implementation in CD, this book is a "must" tutorial for anyone who wants to translate other languages (scheme, prolog...) into java bytecode. It starts with discussions of jvm and bytecode, and then gives deep anaylsis of java the language from the viewpoint of bytecode. From this, reader gains significant insight on how to code in java the best way.

Although the book can expand more on its scheme->java implementation, I find it a very good starting point for any serious work. I wholeheartedly recommend the book to anyone interested in java and its jvm.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful:
5.0 out of 5 stars Extremely good book on JVM internals, April 13, 2007
This review is from: Programming for the Java™ Virtual Machine (Paperback)
This is truly a classic that will live on for years. This is a good read even for people who aren't into Java. The VM concepts are well explained here, and the text is surprisingly easy to read, given the heavy nature of the subject. The JVM versions have moved on, but this covers the basics very well, and is an excellent starting point for anyone who wants to know what a Virtual Machine is about under the covers.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews



Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject