■ CONTENTS
xvi
Simplifying Algebraic Expressions .....................................................................................................329
Symbolic Differentiation of Algebraic Expressions.............................................................................331
Rendering Expressions.......................................................................................................................332
Building the User Interface.................................................................................................................338
Verifying Circuits with Propositional Logic ..................................................................340
Representing Propositional Logic.......................................................................................................341
Evaluating Propositional Logic Naively...............................................................................................342
From Circuits to Propositional Logic...................................................................................................344
Checking Simple Properties of Circuits ..............................................................................................347
Representing Propositional Formulae Efficiently Using BDDs ............................................................348
Circuit Verification with BDDs.............................................................................................................352
Summary .....................................................................................................................354
■ Chapter 13: Reactive, Asynchronous, and Parallel Programming...................355
Introducing Some Terminology....................................................................................356
Using and Designing Background Workers .................................................................357
Building a Simpler Iterative Worker....................................................................................................359
Raising Additional Events from Background Workers ........................................................................362
Connecting a Background Worker to a GUI ........................................................................................363
Introducing Asynchronous and Parallel Computations ................................................365
Fetching Multiple Web Pages in Parallel, Asynchronously .................................................................365
Understanding Thread Hopping..........................................................................................................367
Under the Hood: What Are Asynchronous Computations?..................................................................368
Parallel File Processing Using Asynchronous Workflows...................................................................370
Running Asynchronous Computations................................................................................................374
Common I/O Operations in Asynchronous Workflows ........................................................................374
Under the Hood: Implementing Async.Parallel ...................................................................................375
Using async for CPU Parallelism with Fixed Tasks.............................................................................376
Understanding Exceptions and Cancellation ......................................................................................376
Passing and Processing Messages..............................................................................377
Introducing Message Processing .......................................................................................................378
Creating Objects That React to Messages..........................................................................................379
Scanning Mailboxes for Relevant Messages ......................................................................................382