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
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.
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.
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.
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.
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.
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
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.
Debugging by Thinking: A Multi-Disciplinary Approach is the first
book to apply the wisdom of six disciplines logic, mathematics,
psychology, safety analysis, computer science, and engineering to
the problem of debugging. It uses the methods of literary
detectives such as Sherlock Holmes, the techniques of mathematical
problem solving, the results of research into the cognitive
psychology of human error, the root cause analyses of safety
experts, the compiler analyses of computer science, and the
processes of modern engineering to define a systematic approach to
identifying and correcting software errors.
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
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.
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.
As the computer industry retools to leverage massively parallel graphics processing units (GPUs), this book is designed to meet the needs of working software developers who need to understand GPU programming with CUDA and increase efficiency in their projects. "CUDA Application Design and Development" starts with an introduction to parallel computing concepts for readers with no previous parallel experience, and focuses on issues of immediate importance to working software developers: achieving high performance, maintaining competitiveness, analyzing CUDA benefits versus costs, and determining application lifespan.
The book then details the thought behind CUDA and teaches how to create, analyze, and debug CUDA applications. Throughout, the focus is on software engineering issues: how to use CUDA in the context of existing application code, with existing compilers, languages, software tools, and industry-standard API libraries.
Using an approach refined in a series of well-received articles
at Dr Dobb's Journal, author Rob Farber takes the reader
step-by-step from fundamentals to implementation, moving from
language theory to practical coding.
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.
This is the first of two books serving as an expanded and up-dated
version of Windows Server 2003 Security Infrastructures for Windows
2003 Server R2 and SP1 & SP2. The authors choose to encompass
this material within two books in order to illustrate the
intricacies of the different paths used to secure MS Windows server
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
A Student Guide to Object-Oriented Development is an introductory text that follows the software development process, from requirements capture to implementation, using an object-oriented approach. The book uses object-oriented techniques to present a practical viewpoint on developing software, providing the reader with a basic understanding of object-oriented concepts by developing the subject in an uncomplicated and easy-to-follow manner. It is based on a main worked case study for teaching purposes, plus others with password-protected answers on the web for use in coursework or exams. Readers can benefit from the authors' years of teaching experience. The book outlines standard object-oriented modelling techniques and illustrates them with a variety of examples and exercises, using UML as the modelling language and Java as the language of implementation. It adopts a simple, step by step approach to object-oriented development, and includes case studies, examples, and exercises with solutions to consolidate learning. There are 13 chapters covering a variety of topics such as sequence and collaboration diagrams; state diagrams; activity diagrams; and implementation diagrams. This book is an ideal reference for students taking undergraduate introductory/intermediate computing and information systems courses, as well as business studies courses and conversion masters' programmes.
While many architects use PHP for projects, they are often not
aware of the power of PHP in creating enterprise-level
applications. This book covers the latest version of PHP - version
5 -- and focuses on its capabilities within a multi-tier
application framework. It contains numerous coding samples and
commentaries on them. A chapter discusses object orientation in PHP
as it applies to the multi-tier architecture and other chapters
discuss HTTP and SOAP, the two communication protocols most useful
in tying together multiple layers. There is also coverage of
database design and query construction as well as information about
tricks you can use in generating user interfaces.
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
Object-Oriented Design with UML and Java provides an integrated introduction to object-oriented design with the Unified Modelling Language (UML) and the Java programming language. The book demonstrates how Java applications, no matter how small, can benefit from some design during their construction. Fully road-tested by students on the authors' own courses, the book shows how these complementary technologies can be used effectively to create quality software. It requires no prior knowledge of object orientation, though readers must have some experience of Java or other high level programming language. This book covers object technology; object-oriented analysis and design; and implementation of objects with Java. It includes two case studies dealing with library applications. The UML has been incorporated into a graphical design tool called ROME, which can be downloaded from the book's website. This object modelling environment allows readers to prepare and edit various UML diagrams. ROME can be used alongside a Java compiler to generate Java code from a UML class diagram then compile and run the resulting application for hands-on learning. This text would be a valuable resource for undergraduate students taking courses on O-O analysis and design, O-O modelling, Java programming, and modelling with UML.
You may like...
Applying UML - Advanced Applications
Rob Pooley, Pauline Wilcox Paperback R1,313 Discovery Miles 13 130
Introduction to Web Matrix - ASP.NET…
Colin Hardy, Simon Stobart Paperback R2,706 Discovery Miles 27 060
Modeling Business Objects with XML…
Berthold Daum Paperback R1,830 Discovery Miles 18 300
The Enterprise Architecture IT Project…
Hardcover R2,149 Discovery Miles 21 490
Java - Practical Guide for Programmers
Michael Sikora Paperback R810 Discovery Miles 8 100
Design Methods for Reactive Systems…
R.J. Wieringa Hardcover R2,215 Discovery Miles 22 150
The Struts Framework - Practical Guide…
Sue Spielman Paperback R965 Discovery Miles 9 650
JSP - Practical Guide for Programmers
Robert Brunner Paperback R774 Discovery Miles 7 740
System Architecture with XML
Berthold Daum, Udo Merten Paperback R1,921 Discovery Miles 19 210
Compaq Visual Fortran - A Guide to…
Norman Lawrence Paperback R1,883 Discovery Miles 18 830