View the Index
Total Page:16
File Type:pdf, Size:1020Kb
INDEX A in plumbing example, 42–43 with relays, 49 absolute addressing, 129 Andreesen, Mark, 251 abstractions, 273–274, 433–434, 435 Android operating system, 376 accumulator register, 103–104 animation, 29–30 active high and low, 72 anodes, 50 active pull-up switch, 58 anonymized data mapping, 410–411 ADC (analog-to-digital) converters, anonymous functions, 266 162–165 APIs (application program interfaces), adders, 60–63 433–436 addition, 8–10, 10–14 Apple, 417, 433 additive color system, 28, 173 application program interfaces (APIs), addressing 433–436 and I/O devices, 96–97 application vs. system programming, memory, 79–81 259, 282 modes, 104–105 approximations and shortcuts with pointers, 184–185 CORDIC algorithm, 313–318 relative and absolute, 128–130 efficiency goals, 283 Adleman, Leonard, 368 integer methods, 290–301 advisory locks, 339–340 of power series, 313 Aho, Alfred, 228, 438 quantization, 323–333 AI. See artificial intelligence (AI) randomness, 318, 322–323 AJAX (Asynchronous JavaScript and recursive subdivision, 301–312 XML), 252 table lookups, 284–290 algorithm efficiency vs. performance, 215 Arduino, 119 aliasing, 170, 180 arithmetic logic unit (ALU), 97–99 ALU (arithmetic logic unit), 97–99 Armel processors, 142 American Standard Code for ARPANET, 157 Information Interchange arrays, 185–187 (ASCII), 22–24, 213 artificial intelligence (AI) Ampère, André-Marie, 44 concepts, 388 amplitude, 155, 165 development, 385–386, 407 analog comparators, 163, 164 and neural networks, 402 analog devices self-driving ketchup bottle characteristics, 35–36, 37–38 example, 407–409 and transfer functions, 38–40 ASCII (American Standard Code for analog-to-digital (ADC) converters, Information Interchange), 162–165 22–24, 213 Anathem (Stephenson), xxxv Asente, Paul, 439 ancestor node, 243 assemblers, 218, 233–234 AND assembly language, 217–218 logic gates, 53–54, 59 asynchronous counters, 77 operation, 4–5, 5–6, 9 asynchronous functions and promises, Bell, Alexander Graham, 56 346–353 bell curve, 390–391 Asynchronous JavaScript and XML Bell Telephone Laboratories, 150, 179, (AJAX), 252 209, 220, 225, 416, 442 AT&T, 155 Bentley, Jon, 228 atomic operations, 339, 342, 343 Berners-Lee, Sir Tim, 159, 239–240 attack surfaces, 355, 373–374 Berryman, Jeff, 134 audio big data, 387, 409–412 amplifier transfer function, 39–40 binary-coded decimal (BCD) system, 18 differential signaling applications, 57 binary, defined, 3 digital representation, 165–173 binary numbers frame layout, 210 addition with, 8–10 audio filters, 168–169 coded as decimals, 18 authentication, 356, 358–359, context notation, 20 361–362, 370 as integers, 6–8 authorization, 361 as negative numbers, 10–14 autodialers, 355 octal and hexadecimal forms, 18–20 autoincrement/autodecrement as real numbers, 14–18 modes, 114 binary thresholds, 41 axon terminals, 401 binary trees, 199–203 binning, 71 B bipolar junction transistors (BJTs), 51 bison program, 226 B-trees, 205 bit density, 87 Babbage, Charles, 35 bitmaps, 187–188, 204, 312 back-EMF effect, 48 bits backdoors and security, 356, 368, as binary numbers, 6, 8 373–374 defined, 3 backpropagation, 404 groupings, 20–22 Backus, John, 222 overflow, 10 Backus-Naur form (BNF), 222–223 page table control, 131 examples, 226–227 as right choice for technology, bandpass filters, 168 33–34, 40–41 bandwidth, 156 BJTs (bipolar junction transistors), 51 Barlow, John Perry, 357 Blaze, Matt, 373–374 barrel shifters, 100 blits (terminals), 209 base-2 system, 6 block storage devices Base64 encoding, 26–27 addressing, 203–204 bash shell, 437–438 hardware, 85–88 BASIC, 219–220 blockchain, 371 batch processing, 176 blocking mode, 341 Battle of Midway code breaking, Bluetooth, 158, 352–353 366–367 Boole, George, 4, 386 Baud rate, 154 Boolean algebra, 4–5 Baudot, Émile, 154 booting, 218 Bayer, Bryce, 325 bootstrap, defined, 218 Bayer matrix, 325–326 Bourne, Stephen, 438 Bayer, Rudolf, 205 branch prediction, 135 Bayes’ theorem, 389–390 branching instructions, 105–106 Bayes, Thomas, 389 Bray, John, 29 BCD (binary-coded decimal) system, 18 breadth-first traversal, 123 Bechtolsheim, Andy, 439 break statement (C), 195, 196 446 Index Bresenham, Jack, 294–295 cat vs. meatloaf image example, 388, browsers. See web browsers 391–393, 396–400 buffer overflows, 275, 374–375 cathode ray tube (CRT) terminals, buffers 177–179 in logic gates, 53 cathodes, 50 program, 270–273, 274 CDs, 87–88, 170 raster frame, 311 cel animation, 29–30 bugs. See also errors cell phone programs, 425 buffer overflow, 275 cell phone systems likelihood of, 282 security exposures, 361–362, reporting and tracking, 441 373, 376 term origin, 50 surveillance, 359 build tools, 421 central processing unit (CPU), 97–102, Burks, Arthur, 125 118–119 buses, 80, 94–95, 96–97 certificate authorities (CAs), 370–371 Bush, Vannevar, 159 chaining code, 348–349 button circuits, 144 –146, 147–148 Chang Xiao, 363 bytes, defined, 21 Changxi Zheng, 363 characters C classification, 288–290 control, 23–24 C programming language defined, 22 brief overview, 114, 220 graphics display, 311–312 compiler, 268 and language variations, 439 input and output, 274–275 numbers as, 25–27 optimized code examples, 235 sorting, 213 primitive data types, 184–189 and steganography, 362–363 runtime libraries, 275–276 checksum method, 89 sorting functions, 213 chem (language), 228 unions, 190 Cheng Zhang, 363 C++ language concepts, 211–212 Cheriton, David, 439 CA (certificate authorities), 370–371 child nodes, 243 cache management, 134–135 chips. See also specific types calculator program examples, 226–227, design, 90, 119, 127, 376 229–230 economics, 154 Canny, John, 398 invention of, 52 canvas, 255, 290–291 chord construction, 166–167, 168 card reader technologies, 84, 85 ciphers career success complex, 366–367 decision-making, 427–428 one-time pads, 367 estimating and scheduling, substitution, 363–365 426–427 transposition, 365–366 job/career vs. calling, 430 ciphertext and cleartext messages, 363 and open source projects, 442–443 circuit-switched networks, 157 working with people, 428–429 circuits, 44, 47 and workplace culture, 429–430 circular buffers, 272–273 Carpenter, Loren, 322–323, 429 CISC. See complicated instruction set carrier waves, 155–156 computers (CISC) Cartesian coordinate mapping, 291, 301 class attribute (CSS), 267 Cascading Style Sheets (CSS), 244–248, 267 Index 447 classifiers compilers and artificial intelligence, 387–388 defined, 219 feature recognition, 399–400 execution, 232–234 ketchup bottle example, 406 vs. interpreters, 228–229 naive Bayes classifier, 389–390 complicated instruction set computers neural networks as, 405 (CISC), 113, 114 cleartext and ciphertext messages, 363 compositing, 30 Clipper chip, 374 compound data types clocks, 71, 77 doubly linked lists, 198–199 cloud computing, 424 and memory allocation, 195–198 clusters, 87, 203 singly linked lists, 191–195 CMOS (complementary metal oxide suites/structures, 189–190 semiconductor), 52 computer animation, 30 CMRR (common-mode rejection computer architecture ratio), 56 basic elements, 118–119 coalescing nodes, 307 defined, 117–118 code computer vision libraries, 399 data as, 382–384 computers maintainable, 441–442 brief history, 416–418 portable, 439–440 languages, 1–3, 217–218, 219–220 refactoring, 441 major components of, 93–94, self-modifying, 407 109–113 source control and distribution, 440 resource usage efficiencies, 283 testing, 440–441 stored-program, 101 third-party, 376–378 computing devices writing vs. reusing, 436 analog vs. digital, 35–36, 37–38 code breaking, 366–367 mechanical, 34–35 code (machine language) generators, Concurrent Versioning System 233–234 (CVS), 440 codecs, 172 condition code instructions, 105 coding tools, 437–439 condition code register, 10, 98 collisions conductors, 43 Ethernet, 158 constants, 221 half-duplex, 154 constructive solid geometry technique, in hash tables, 214–215 304–310 color displays, 173–174, 181 containers, 422 color gradients, 296–297 context color representations, 27–30, 190–191 switching, 269–270 Colossus: The Forbin Project (film), 409 and symbols, 2, 3 combinatorial logic, 53 continuous values, 36, 37–38 command and control messages, 358 control characters, 23–24 command interpreters, 437–438 control unit. See execution unit command line interface, 268 conversion tables, 284 common-mode rejection ratio convolution kernels, 392–393 (CMRR), 56 convolutional neural network, 405 communications security, 356–357 Conway, Lynn, 90 compact discs, 87–88, 170 cooked buffer mode, 271 compare and swap instruction, 342 Coordinate Rotation Digital Computer (CORDIC) algorithm, 313–318 448 Index coprocessors, 135–136 data centers, 424 CORDIC (Coordinate Rotation Digital Data Encryption Standard (DES) Computer) algorithm, cracker, 216 313–318 data mining, 387 core memory, 82–83 data paths, 109–110 core rope memory, 84 data structures counters, 77–78 linear vs. hierarchical, 199 CPU. See central processing unit (CPU) and performance, 183–184 CRCs (cyclic redundancy checks), 89 spatial, 123 Creative Commons, 420 data types. See compound data types; crosstalk effect, 38 primitive data types CRT (cathode ray tube) terminals, database management systems 177–179 (DBMS), 205 cryptography. See also ciphers; databases, 204–206, 216 encryption/decryption datagrams, 158–159 blockchain, 371 date-time structure, 189–190 concepts, 357, 362 DBMS (database management and digital signatures, 370 systems), 205 hash functions, 369–370 DDoS (distributed denial of service) and password management, attacks, 357 371–372