Your cart is empty
This entirely revised second edition of "Engineering a Compiler"
is full of technical updates and new material covering the latest
developments in compiler technology. In this comprehensive text you
will learn important techniques for constructing a modern compiler.
Leading educators and researchers Keith Cooper and Linda Torczon
combine basic principles with pragmatic insights from their
experience building state-of-the-art compilers. They will help you
fully understand important techniques such as compilation of
imperative and object-oriented languages, construction of static
single assignment forms, instruction scheduling, and graph-coloring
Most Perl programmers were originally trained as C and Unix
programmers, so the Perl programs that they write bear a strong
resemblance to C programs. However, Perl incorporates many features
that have their roots in other languages such as Lisp. These
advanced features are not well understood and are rarely used by
most Perl programmers, but they are very powerful. They can
automate tasks in everyday programming that are difficult to solve
in any other way. One of the most powerful of these techniques is
writing functions that manufacture or modify other functions. For
example, instead of writing ten similar functions, a programmer can
write a general pattern or framework that can then create the
functions as needed according to the pattern. For several years
Mark Jason Dominus has worked to apply functional programming
techniques to Perl. Now Mark brings these flexible programming
methods that he has successfully taught in numerous tutorials and
training sessions to a wider audience.
Revised and updated with improvements conceived in parallel
programming courses, "The Art of Multiprocessor Programming" is an
authoritative guide to multicore programming. It introduces a
higher level set of software development skills than that needed
for efficient single-core programming. This book provides
comprehensive coverage of the new principles, algorithms, and tools
necessary for effective multiprocessor programming. Students and
professionals alike will benefit from thorough coverage of key
multiprocessor programming issues.
API Design for C++ provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online. This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators.
This book is proof that debugging has graduated from a black art to
a systematic discipline. It demystifies one of the toughest aspects
of software programming, showing clearly how to discover what
caused software failures, and fix them with minimal muss and fuss.
Author Peter Pacheco uses a tutorial approach to show students
how to develop effective parallel programs with MPI, Pthreads, and
OpenMP. The first undergraduate text to directly address compiling
and running parallel programs on the new multi-core and cluster
architecture, " An Introduction to Parallel Programming" explains
how to design, debug, and evaluate the performance of distributed
and shared-memory programs. User-friendly exercises teach students
how to compile, run and modify example programs.
Newly updated with over 150 pages of material on the latest Tcl extensions, "Tcl/Tk: A Developer s Gu"ide is a unique practical tutorial for professional programmers and beginners alike. Starting with a clear picture of the basics, Tcl/Tk covers the variety of tools in this "Swiss army knife" of programming languages, giving you the ability to enhance your programs, extend your application's capabilities, and become a more effective programmer.
This updated edition covers all of the new features of version
8.6, including object-oriented programming and the creation of
megawidgets, existing data structure implementations, themed
widgets and virtual events. Extensive code snippets and online
tutorials in various languages will give you a firm grasp on how to
use the Tcl/Tk libraries and interpreters and, most importantly, on
what constitutes an effective strategy for using Tcl/Tk.
Semantic Web models and technologies provide information in machine-readable languages that enable computers to access the Web more intelligently and perform tasks automatically without the direction of users. These technologies are relatively recent and advancing rapidly, creating a set of unique challenges for those developing applications.
"Semantic Web for the Working Ontologist" is the essential, comprehensive resource on semantic modeling, for practitioners in health care, artificial intelligence, finance, engineering, military intelligence, enterprise architecture, and more. Focused on developing useful and reusable models, this market-leading book explains how to build semantic content (ontologies) and how to build applications that access that content.
New in this edition:
Coverage of the latest Semantic Web tools for organizing, querying, and processing information - see details in TOC below
Detailed information on the latest ontologies used in key web
applications including ecommerce, social networking, data mining,
using government data, and more
If you need to learn CUDA but don't have experience with
parallel computing, "CUDA Programming: A Developer's Introduction
"offers a detailed guide to CUDA with a grounding in parallel
fundamentals. It starts by introducing CUDA and bringing you up to
speed on GPU parallelism and hardware, then delving into CUDA
installation. Chapters on core concepts including threads, blocks,
grids, and memory focus on both parallel and CUDA-specific issues.
Later, the book demonstrates CUDA in practice for optimizing
applications, adjusting to new hardware, and solving common
Microsoft Exchange Server 2007 marks the biggest advancement in the
history of the Exchange Product group. The completely re-engineered
server system will change the face of how IT administrators
Real-Time Systems Development introduces computing students and professional programmers to the development of software for real-time applications. Based on the academic and commercial experience of the author, the book is an ideal companion to final year undergraduate options or MSc modules in the area of real-time systems design and implementation. Assuming a certain level of general systems design and programming experience, this text will extend students' knowledge and skills into an area of computing which has increasing relevance in a modern world of telecommunications and `intelligent' equipment using embedded microcontrollers. This book takes a broad, practical approach in discussing real-time systems. It covers topics such as basic input and output; cyclic executives for bare hardware; finite state machines; task communication and synchronization; input/output interfaces; structured design for real-time systems; designing for multitasking; UML for real-time systems; object oriented approach to real-time systems; selecting languages for RTS development; Linux device drivers; and hardware/software co-design. Programming examples using GNU/Linux are included, along with a supporting website containing slides; solutions to problems; and software examples. This book will appeal to advanced undergraduate Computer Science students; MSc students; and, undergraduate software engineering and electronic engineering students.
Whatever your programming language, whatever your platform, you
probably tap into linker and loader functions all the time. But do
you know how to use them to their greatest possible advantage? Only
now, with the publication of Linkers & Loaders, is there an
authoritative book devoted entirely to these deep-seated
compile-time and run-time processes.
Computation and Storage in the Cloud is the first comprehensive
and systematic work investigating the issue of computation and
storage trade-off in the cloud in order to reduce the overall
application cost. Scientific applications are usually computation
and data intensive, where complex computation tasks take a long
time for execution and the generated datasets are often terabytes
or petabytes in size. Storing valuable generated application
datasets can save their regeneration cost when they are reused, not
to mention the waiting time caused by regeneration. However, the
large size of the scientific datasets is a big challenge for their
storage. By proposing innovative concepts, theorems and algorithms,
this book will help bring the cost down dramatically for both cloud
users and service providers to run computation and data intensive
scientific applications in the cloud. Covers cost models and
benchmarking that explain the necessary tradeoffs for both cloud
providers and usersDescribes several novel strategies for storing
application datasets in the cloudIncludes real-world case studies
of scientific research applications
Describes several novel strategies for storing application datasets in the cloud
Includes real-world case studies of scientific research applications
Microsoft Outlook is the most widely used e-mail program and offers
the most programmability. Sue Mosher introduces key concepts for
programming Outlook using Visual Basic for Applications, custom
Outlook forms, and external scripts, without the need for
additional development tools.
This book gives a practical introduction to model-based testing,
showing how to write models for testing purposes and how to use
model-based testing tools to generate test suites. It is aimed at
testers and software developers who wish to use model-based
testing, rather than at tool-developers or academics.
A hands-on introduction to parallel programming based on the
Message-Passing Interface (MPI) standard, the de-facto industry
standard adopted by major vendors of commercial parallel systems.
This textbook/tutorial, based on the C language, contains many
fully-developed examples and exercises. The complete source code
for the examples is available in both C and Fortran 77. Students
and professionals will find that the portability of MPI, combined
with a thorough grounding in parallel programming principles, will
allow them to program any parallel system, from a network of
workstations to a parallel supercomputer.
A new discipline, Quantum Information Science, has emerged in the last two decades of the twentieth century at the intersection of Physics, Mathematics, and Computer Science. Quantum Information Processing is an application of Quantum Information Science which covers the transformation, storage, and transmission of quantum information; it represents a revolutionary approach to information processing.
This book covers topics in quantum computing, quantum information theory, and quantum error correction, three important areas of quantum information processing.
Quantum information theory and quantum error correction build on
the scope, concepts, methodology, and techniques developed in the
context of their close relatives, classical information theory and
classical error correcting codes.
Presents recent results in quantum computing, quantum information theory, and quantum error correcting codes.
Covers both classical and quantum information theory and error correcting codes.
The last chapter of the book covers physical implementation of quantum information processing devices.
Covers the mathematical formalism and the concepts in Quantum Mechanics critical for understanding the properties and the transformations of quantum information.
At the heart of Apple's hugely popular iLife software suite-iMovie,
iPhoto, iDVD, GarageBand, and iTunes-is QuickTime, the powerful
media engine that drives elegant applications for managing movies,
images, and audio files. The enduring success of QuickTime is in no
small part attributable to its component architecture. This key
feature has allowed it to embrace emerging digital media
technologies and standards one by one as they have appeared over
the 12 or so years since its launch. None of the competing
technologies even comes close, let alone on both Mac OS X and
You don t need coddling; you don t need to be told what you already
know. What you need is a book that uses your experience as a Java
or C++ programmer to give you a leg up into the challenges and
rewards of C#. And this Practical Guide is precisely what you re
For a long time, there has been a need for a practical,
down-to-earth developers book for the Java Cryptography Extension.
I am very happy to see there is now a book that can answer many of
the technical questions that developers, managers, and researchers
have about such a critical topic. I am sure that this book will
contribute greatly to the success of securing Java applications and
deployments for e-business. --Anthony Nadalin, Java Security Lead
Unified Modeling Language (UML) is a general-purpose notation
language for specifying and visualizing complex software,
especially large, object-oriented projects. Object-oriented
programming is when a programmer defines not only the data type of
a data structure, but also the types of operations/functions that
can be applied to the data structure.
An Introduction to Web Matrix provides an easy to follow treatment
of the application of this new software, which is rapidly becoming
the preferred vehicle for the teaching of website design. Written
by two experienced users, the material is presented in a way that
makes it ideal for students meeting the subject for the first time,
whether they are on an undergraduate or postgraduate course. The
scope of the book includes the functionality of the software, its
installation and application and the design and operation of
web-based material using it. Coverage of the use of HTML and SQL is
also included, as is the design and implementation of on-line
If you're an experienced programmer, you already have a rock-solid
foundation for learning Java. All you need is a resource that takes
your experience into account and explains Java's key principles and
techniques in an intelligent, efficient way.
XML Schema is the new language standard from the W3C and the new
foundation for defining data in Web-based systems. There is a
wealth of information available about Schemas but very little
understanding of how to use this highly formal specification for
creating documents. Grasping the power of Schemas means going back
to the basics of documents themselves, and the semantic rules, or
grammars, that define them. Written for schema designers, system
architects, programmers, and document authors, Modeling Business
Objects with XML Schema guides you through understanding Schemas
from the basic concepts, type systems, type derivation,
inheritance, namespace handling, through advanced concepts in
The basis for an Enterprise Architecture IT project comes from the
identification of the changes necessary to implement the enterprise
or organisation s strategy, and the growing information needs
arising from this, which increases the demand for the development
of the IT system.
You may like...
Design Methods for Reactive Systems…
R.J. Wieringa Hardcover R2,245 Discovery Miles 22 450
The Struts Framework - Practical Guide…
Sue Spielman Paperback R978 Discovery Miles 9 780
JSP - Practical Guide for Programmers
Robert Brunner Paperback R784 Discovery Miles 7 840
System Architecture with XML
Berthold Daum, Udo Merten Paperback R1,948 Discovery Miles 19 480
Compaq Visual Fortran - A Guide to…
Norman Lawrence Paperback R1,908 Discovery Miles 19 080
Compression Algorithms for Real…
Peter Wayner Paperback R1,319 Discovery Miles 13 190
Charging Communication Networks - From…
D.J. Songhurst Hardcover R2,503 Discovery Miles 25 030
Productive Objects - An Applied Software…
Robert Muller Paperback R2,609 Discovery Miles 26 090
Understanding UML - The Developer's…
Mark Watson Paperback R1,682 Discovery Miles 16 820
Teaching and Learning Formal Methods
C. Neville Dean Hardcover R2,674 Discovery Miles 26 740