دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Steinhart. Jonathan E
سری:
ISBN (شابک) : 9781593279707, 1593279701
ناشر: No Starch Press
سال نشر: 2019
تعداد صفحات: 0
زبان: English
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 27 مگابایت
کلمات کلیدی مربوط به کتاب زندگی مخفی برنامه ها: درک رایانه ها - کدهای بهتر ایجاد کنید: علم، فناوری، علوم کامپیوتر، برنامه نویسی، غیرداستانی
در صورت تبدیل فایل کتاب The secret life of programs: understand computers - craft better code به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب زندگی مخفی برنامه ها: درک رایانه ها - کدهای بهتر ایجاد کنید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
آغازگر فناوری های زیربنایی که به برنامه های رایانه ای اجازه کار می دهند. موضوعاتی مانند سخت افزار کامپیوتر، منطق ترکیبی، منطق ترتیبی، معماری کامپیوتر، آناتومی کامپیوتر، و ورودی/خروجی را پوشش می دهد. اما چرا زمانی که به نظر می رسد کد شما کار می کند باید اهمیت دهید؟ زیرا شما می خواهید که به خوبی اجرا شود و با اشکالات سخت پیدا نشود. شما نمی خواهید در اخبار باشید زیرا کد شما یک مشکل امنیتی داشت. جزئیات فنی زیادی به صورت آنلاین در دسترس است اما سازماندهی نشده و در مکان مناسبی جمع آوری نشده است. در زندگی مخفی برنامهها، مهندس کهنهکار جاناتان ای. استاینهارت مفاهیم پایهای را که در زیربنای دستگاه قرار دارند، عمیقاً بررسی میکند. موضوعاتی مانند سختافزار کامپیوتر، نحوه رفتار نرمافزار با سختافزار، و همچنین نحوه حل مشکلات مردم با استفاده از فناوری در طول زمان. شما خواهید آموخت: • چگونه دنیای واقعی به شکلی تبدیل میشود که کامپیوترها میفهمند، مانند بیتها، منطق، اعداد، متن و رنگها • بلوکهای ساختمانی اساسی که یک کامپیوتر را میسازند شامل گیتهای منطقی، جمعکنندهها، رمزگشاها، ثباتها و حافظه • چرا طراحی برنامههایی متناسب با سختافزار رایانه، بهویژه حافظه، عملکرد را بهبود میبخشد. چگونه برنامهها به زبان ماشین تبدیل میشوند. درک• چگونه بلوک های سازنده نرم افزار برای ایجاد برنامه هایی مانند مرورگرهای وب ترکیب می شوند• ترفندهای هوشمندانه برای کارآمدتر کردن برنامه ها، مانند تغییر ناپذیری حلقه، کاهش قدرت، و تقسیم بندی بازگشتی• مبانی امنیت کامپیوتر و هوش ماشین• طراحی پروژه، مستندسازی، زمان بندی، قابل حمل بودن، تعمیر و نگهداری و دیگر واقعیت های برنامه نویسی عملی. یاد بگیرید وقتی کد شما روی دستگاه اجرا می شود واقعاً چه اتفاقی می افتد و یاد خواهید گرفت که کد بهتر و کارآمدتر ایجاد کنید.
A primer on the underlying technologies that allow computer programs to work. Covers topics like computer hardware, combinatorial logic, sequential logic, computer architecture, computer anatomy, and Input/Output.Many coders are unfamiliar with the underlying technologies that make their programs run. But why should you care when your code appears to work? Because you want it to run well and not be riddled with hard-to-find bugs. You don't want to be in the news because your code had a security problem.Lots of technical detail is available online but it's not organized or collected into a convenient place. InThe Secret Life of Programs, veteran engineer Jonathan E. Steinhart explores--in depth--the foundational concepts that underlie the machine. Subjects like computer hardware, how software behaves on hardware, as well as how people have solved problems using technology over time.You'll learn:• How the real world is converted into a form that computers understand, like bits, logic, numbers, text, and colors• The fundamental building blocks that make up a computer including logic gates, adders, decoders, registers, and memory• Why designing programs to match computer hardware, especially memory, improves performance• How programs are converted into machine language that computers understand• How software building blocks are combined to create programs like web browsers• Clever tricks for making programs more efficient, like loop invariance, strength reduction, and recursive subdivision• The fundamentals of computer security and machine intelligence• Project design, documentation, scheduling, portability, maintenance, and other practical programming realities.Learn what really happens when your code runs on the machine and you'll learn to craft better, more efficient code.
Cover......Page 1
Title......Page 5
Copyright......Page 6
Brief Contents......Page 11
Contents in Detail......Page 13
Acknowledgments......Page 21
Preface......Page 23
Introduction......Page 27
Why Good Programming is Important......Page 28
Learning to Code is Only a Starting Place......Page 29
Who Should Read This Book?......Page 30
What Is Computer Programming?......Page 31
Coding, Programming, Engineering, and Computer Science......Page 34
The Landscape......Page 35
What’s in This Book......Page 37
1: The Internal Language of Computers......Page 41
Written Language......Page 42
Logic Operations......Page 43
Boolean Algebra......Page 44
De Morgan’s Law......Page 45
Representing Positive Numbers......Page 46
Binary Addition......Page 48
Representing Negative Numbers......Page 50
Fixed-Point Representation......Page 54
Floating-Point Representation......Page 55
The IEEE Floating-Point Standard......Page 57
Octal Representation......Page 58
Hexadecimal Representation......Page 59
Naming Groups of Bits......Page 60
The American Standard Code for Information Interchange......Page 62
Unicode Transformation Format 8-bit......Page 64
Using Characters to Represent Numbers......Page 65
Base64 Encoding......Page 66
Representing Colors......Page 67
Adding Transparency......Page 69
Encoding Colors......Page 70
Summary......Page 71
2: Combinatorial Logic......Page 73
The Case for Digital Computers......Page 74
The Difference Between Analog and Digital......Page 75
Why Size Matters in Hardware......Page 76
Digital Makes for More Stable Devices......Page 77
Digital in an Analog World......Page 78
Why Bits Are Used Instead of Digits......Page 80
Using Plumbing to Understand Electricity......Page 81
Electrical Switches......Page 84
Relays......Page 87
Vacuum Tubes......Page 90
Transistors......Page 91
Integrated Circuits......Page 92
Logic Gates......Page 93
Improving Noise Immunity with Hysteresis......Page 94
Differential Signaling......Page 95
Propagation Delay......Page 97
Output Variations......Page 98
Building an Adder......Page 100
Building Decoders......Page 103
Building Demultiplexers......Page 104
Building Selectors......Page 105
Summary......Page 107
3: Sequential Logic......Page 109
Oscillators......Page 110
Latches......Page 111
Gated Latches......Page 113
Flip-Flops......Page 114
Counters......Page 117
Registers......Page 118
Memory Organization and Addressing......Page 119
Random-Access Memory......Page 122
Read-Only Memory......Page 123
Block Devices......Page 125
Error Detection and Correction......Page 128
Hardware vs. Software......Page 130
Summary......Page 131
4: Computer Anatomy......Page 133
Memory......Page 134
Input and Output......Page 136
Arithmetic and Logic Unit......Page 137
Shiftiness......Page 139
Execution Unit......Page 140
Instructions......Page 142
Addressing Modes......Page 144
Branching......Page 145
Final Instruction Set......Page 146
Data Paths and Control Signals......Page 149
Traffic Control......Page 150
RISC vs. CISC Instruction Sets......Page 153
Graphics Processing Units......Page 154
Summary......Page 155
5: Computer Architecture......Page 157
Processor Cores......Page 158
Microprocessors and Microcomputers......Page 159
Procedures, Subroutines, and Functions......Page 160
Stacks......Page 162
Interrupts......Page 165
Relative Addressing......Page 168
Memory Management Units......Page 170
Virtual Memory......Page 172
Memory Hierarchy and Performance......Page 173
Coprocessors......Page 175
Arranging Data in Memory......Page 176
Running Programs......Page 177
Memory Power......Page 178
Summary......Page 179
6: Communications Breakdown......Page 181
I/O Ports......Page 182
Push My Buttons......Page 184
Let There Be Lights......Page 186
Lights, Action, . . .......Page 187
Bright Ideas......Page 188
2n Shades of Gray......Page 189
Quadrature......Page 190
Serial Communication......Page 192
Catch a Wave......Page 194
Networking......Page 196
The Internet......Page 198
Digital-to-Analog Conversion......Page 200
Analog-to-Digital Conversion......Page 202
Digital Audio......Page 205
Digital Images......Page 213
Video......Page 214
Terminals......Page 216
Graphics Terminals......Page 217
Vector Graphics......Page 218
Raster Graphics......Page 220
Summary......Page 221
7: Organizing Data......Page 223
Primitive Data Types......Page 224
Arrays......Page 225
Bitmaps......Page 227
Strings......Page 228
Compound Data Types......Page 229
Singly Linked Lists......Page 231
Dynamic Memory Allocation......Page 235
More Efficient Memory Allocation......Page 236
Garbage Collection......Page 237
Doubly Linked Lists......Page 238
Hierarchical Data Structures......Page 239
Storage for the Masses......Page 243
Databases......Page 244
Moving Data Around......Page 246
Vectored I/O......Page 250
Object-Oriented Pitfalls......Page 251
Sorting......Page 252
Making a Hash of Things......Page 253
Efficiency vs. Performance......Page 255
Summary......Page 256
Assembly Language......Page 257
High-Level Languages......Page 259
Structured Programming......Page 260
Lexical Analysis......Page 261
State Machines......Page 263
Regular Expressions......Page 264
From Words to Sentences......Page 266
Parse Trees......Page 268
Interpreters......Page 271
Compilers......Page 272
Optimization......Page 274
Summary......Page 276
9: The Web Browser......Page 277
Markup Languages......Page 278
Uniform Resource Locators......Page 279
HTML Documents......Page 280
The Document Object Model......Page 282
Tree Lexicon......Page 283
Cascading Style Sheets......Page 284
XML and Friends......Page 288
JavaScript......Page 291
jQuery......Page 293
SVG......Page 294
JSON......Page 295
Summary......Page 296
10: Application and System Programming......Page 299
Guess the Animal Version 1: HTML and JavaScript......Page 302
Web Page Body......Page 303
The JavaScript......Page 304
Terminals and the Command Line......Page 307
Terminals and Device Drivers......Page 308
Context Switching......Page 309
Standard I/O......Page 311
Circular Buffers......Page 312
Better Code Through Good Abstractions......Page 313
Some Mechanics......Page 314
The C Program......Page 315
Training......Page 321
Summary......Page 322
11: Shortcuts and Approximations......Page 323
Conversion......Page 324
Texture Mapping......Page 325
Character Classification......Page 328
Integer Methods......Page 330
Straight Lines......Page 332
Curves Ahead......Page 338
Spirals......Page 341
Constructive Geometry......Page 344
Shifting and Masking......Page 351
The CORDIC Algorithm......Page 353
Somewhat Random Things......Page 358
Space-Filling Curves......Page 359
L-Systems......Page 360
Going Stochastic......Page 362
Quantization......Page 363
Summary......Page 373
12: Deadlocks and Race Conditions......Page 375
What Is a Race Condition?......Page 376
Processes and Threads......Page 377
Locks......Page 379
Transactions and Granularity......Page 380
Deadlocks......Page 381
Short-Term Lock Implementation......Page 382
Browser JavaScript......Page 383
Asynchronous Functions and Promises......Page 386
Summary......Page 390
13: Security......Page 391
Threat Model......Page 392
Trust......Page 393
Physical Security......Page 395
Communications Security......Page 396
Modern Times......Page 397
The Social Context......Page 399
Authentication and Authorization......Page 401
Steganography......Page 402
Substitution Ciphers......Page 403
Transposition Ciphers......Page 405
More Complex Ciphers......Page 406
The Key Exchange Problem......Page 407
Public Key Cryptography......Page 408
Cryptographic Hash Functions......Page 409
Public Key Infrastructure......Page 410
Password Management......Page 411
Protect the Right Stuff......Page 412
Minimize Attack Surfaces......Page 413
Stay in Bounds......Page 414
Generating Good Random Numbers Is Hard......Page 415
Know Thy Code......Page 416
Understand What’s Visible......Page 418
Dynamic Memory Allocation Isn’t Your Friend......Page 419
Garbage Collection Is Not Your Friend Either......Page 421
Data as Code......Page 422
Summary......Page 424
14: Machine Intelligence......Page 425
Overview......Page 426
Machine Learning......Page 428
Bayes......Page 429
Gauss......Page 430
Sobel......Page 433
Canny......Page 438
Feature Extraction......Page 439
Neural Networks......Page 441
Using Machine Learning Data......Page 446
Artificial Intelligence......Page 447
Big Data......Page 449
Summary......Page 452
15: Real-World Considerations......Page 453
The Value Proposition......Page 454
A Short History......Page 456
Open Source Software......Page 459
The Rise of Portability......Page 460
Package Management......Page 461
Java......Page 462
Cloud Computing......Page 464
The Programming Environment......Page 465
Scheduling Projects......Page 466
Decision Making......Page 467
Working with Different Personalities......Page 468
Navigating Workplace Culture......Page 469
Development Methodologies......Page 470
Fast Prototyping......Page 472
Interface Design......Page 473
Project Development......Page 476
The Talk......Page 477
Portable Code......Page 479
Testing......Page 480
Maintenance......Page 481
Be Stylish......Page 482
Fix, Don’t Re-create......Page 483
Summary......Page 484
A......Page 485
B......Page 486
C......Page 487
D......Page 489
E......Page 490
F......Page 491
H......Page 492
I......Page 493
K......Page 494
M......Page 495
N......Page 496
P......Page 497
R......Page 499
S......Page 500
T......Page 502
W......Page 503
Z......Page 504
Back Cover......Page 506