Your cart is empty
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.
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.
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.
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.
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.
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.
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.
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
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
Programming is now parallel programming. Much as structured
programming revolutionized traditional serial programming decades
ago, a new kind of structured programming, based on patterns, is
relevant to parallel programming today. Parallel computing experts
and industry insiders Michael McCool, Arch Robison, and James
Reinders describe how to design and implement maintainable and
efficient parallel algorithms using a pattern-based approach. They
present both theory and practice, and give detailed concrete
examples using multiple programming models. Examples are primarily
given using two of the most popular and cutting edge programming
models for parallel programming: Threading Building Blocks, and
Cilk Plus. These architecture-independent models enable easy
integration into existing applications, preserve investments in
existing code, and speed the development of parallel applications.
Examples from realistic contexts illustrate patterns and themes in
parallel algorithm design that are widely applicable regardless of
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
Authors Jim Jeffers and James Reinders spent two years helping educate customers about the prototype and pre-production hardware before Intel introduced the first Intel Xeon Phi coprocessor. They have distilled their own experiences coupled with insights from many expert customers, Intel Field Engineers, Application Engineers and Technical Consulting Engineers, to create this authoritative first book on the essentials of programming for this new architecture and these new products.
This book is useful even before you ever touch a system with an Intel Xeon Phi coprocessor. To ensure that your applications run at maximum efficiency, the authors emphasize key techniques for programming any modern parallel computing system whether based on Intel Xeon processors, Intel Xeon Phi coprocessors, or other high performance microprocessors. Applying these techniques will generally increase your program performance on any system, and better prepare you for Intel Xeon Phi coprocessors and the Intel MIC architecture.
A practical guide to the essentials of the Intel Xeon Phi coprocessorPresents best practices for portable, high-performance computing and a familiar and proven threaded, scalar-vector programming modelIncludes simple but informative code examples that explain the unique aspects of this new highly parallel and high performance computational productCovers wide vectors, many cores, many threads and high bandwidth cache/memory architecture
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
The Model Driven Architecture defines an approach where the
specification of the functionality of a system can be separated
from its implementation on a particular technology platform. The
idea being that the architecture will be able to easily be adapted
for different situations, whether they be legacy systems, different
languages or yet to be invented platforms.
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
The Student's Essential Guide to .NET provides a clear and simple
overview of Microsoft's .NET technologies. It is aimed at second
and third year undergraduate students and postgraduate students on
Computing or Computer Science courses who are required to look at a
modern operating system, (Microsoft Windows 9x, Nt 2000 or XP) and
to design and code simple or even not so simple examples. The
approach is based upon the student's learning the technology of
.NET through examples using the supported languages C#, VB and C++.
The examples are based on fun, familiar games, and students are
encouraged to review reference material to refine their skills on
key aspects of the architecture. Review questions and worked
examples enhance the learning process and the material is supported
by the author's website, which contains extensive ancillary
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.
You may like...
Java Cryptography Extensions - Practical…
Jason R. Weiss Paperback R690 Discovery Miles 6 900
Object-Oriented Design with UML and Java
Barclay Paperback R1,166 Discovery Miles 11 660
Debugging by Thinking - A…
Robert Charles Metzger Paperback R1,743 Discovery Miles 17 430
Applying UML - Advanced Applications
Rob Pooley, Pauline Wilcox Paperback R1,239 Discovery Miles 12 390
JSP - Practical Guide for Programmers
Robert Brunner Paperback R731 Discovery Miles 7 310
Introduction to Web Matrix - ASP.NET…
Colin Hardy, Simon Stobart Paperback R2,553 Discovery Miles 25 530
Modeling Business Objects with XML…
Berthold Daum Paperback R1,725 Discovery Miles 17 250
Design Methods for Reactive Systems…
R.J. Wieringa Hardcover R2,089 Discovery Miles 20 890
The Enterprise Architecture IT Project…
Christophe Longepe Hardcover R2,028 Discovery Miles 20 280
Java - Practical Guide for Programmers
Michael Sikora Paperback R765 Discovery Miles 7 650