Computer Systems: A Programmer's Perspective

£9.9
FREE Shipping

Computer Systems: A Programmer's Perspective

Computer Systems: A Programmer's Perspective

RRP: £99
Price: £9.9
£9.9 FREE Shipping

In stock

We accept the following payment methods

Description

Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to programming. The first chapters of the book are almost the same as other “computer organization” books, they tell us the story of computers, introduce to binary systems and so on.

If you’ve ever wondered about the details of an executable file loading into memory and the CPU instructions that actually execute the program, this book is for you. The chapter dives into cache memory and data locality (a super important concept for efficient coding). Chapter 2 (Representing and Manipulating Information) tells about representing and manipulating information. Books that describe the fundamentals of computer organization do not dive into the topic from a programmer’s perspective.The chapter discusses a Y86 processor family as some “generic” way to tell about Intel x86 family without actually mentioning Intel as much as it will sound like an advertisement.

This book focuses on systems that execute an x86-64 machine code, and recommends that programmers have access to a Linux system for this course. Written from the programmer’s perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Computer systems: A Programmer’s Perspective explains the underlying elements common among all computer systems and how they affect general application performance.

Chapter 5 (Optimizing Program Performance) is a perfect resource for those programmers who are curious about the actual implementation of primitive constructs such as conditional statements and loops. It’s cool to find out that a simple goto statement along with conditional instructions ( jmps) are enough to implement a complex loop. Chapter 3 (Machine Level Representation of Programs) shows the reader how would a [simple] C program translate to machine code. Chapter 1 (A Tour of Computer Systems) of the book is a regular introduction to the history of computers and their organization. Understanding virtual memory is almost the same as understanding how memory allocation/deallocation works, what is garbage collection, how are addresses translated from virtual to physical and so on.

However, almost from the beginning, this book starts with a simple C program and shows how it’s compiled and then translated into machine code. Chapter 11 (Network Programming) introduces the concept of sockets and the low-level details of socket programming.

This book strives to create programmers who understand all elements of computer systems and will be able to engage in any application of the field–from fixing faulty software, to writing more capable programs, to avoiding common flaws. Though there are great books on network programming and a single chapter won’t be enough to master network programming on a professional level, this chapter would be a great introduction to the topic in general. Furthermore, Chapter 4 (Processor Architecture) introduces how CPUs work and what instructions make the CPU complete to the extent. Chapter 8 (Exceptional Control Flow), a boring chapter for me, but truly useful for understanding CPU interruptions and process lifecycle in general. An ultimate goal for a programmer is to create a computer with bare hands and implement a program without a compiler (sounds kind of crazy, though).

As a summary, the book is a must read for every programmer to master fundamentals of computer systems. This book does what its title says, it dives into “computer systems” from “programmer’s perspective”. This chapter is good as a supplementary chapter, understanding the low-level details of file creation/manipulation, is definitely a great addition to your skills as a programmer. Here is a quick description and cover image of book Computer Systems, 3rd Edition written by Randal Bryant which was published in .Understanding the structure of computer memory along with the difference between the main memory and CPU cache (and others) is a topic that lays upon any successful project development. It doesn’t matter if you are a frontend JS developer, or a backend Java developer, or an Android developer, the book will help you to understand the low-level details of your programs and also will be a good help in preparing to programming interviews.



  • Fruugo ID: 258392218-563234582
  • EAN: 764486781913
  • Sold by: Fruugo

Delivery & Returns

Fruugo

Address: UK
All products: Visit Fruugo Shop