sorcerer_see: (Default)
Today I felt compelled to understand logic gates and circuits better and kept on researching online to fill up the gaps in my knowledge. With every answer a new question pops up. It is clear I am not getting ready with this topic just by watching videos, reading Wikipedia and websites.

I feel that I need to have a good grasp on computer science essentials in order to be a master C programmer. I started searching for a good book that can give me a decent understanding in the essential functioning of a computer from bottom to top. Just enough knowledge for a programmer, not a technician.

This is what I found:

Computer Systems A Programmer's Perspective -- Randal E_Bryant, David R_O Hallaron -- 2001

"This book is for programmers who want to improve their skills by learning about what is going on “under the hood” of a computer system. Our aim is to explain the important and enduring concepts underlying all computer systems, and to show you the concrete ways that these ideas affect the correctness, performance, and utility of your application programs. By studying this book, you will gain some insights that have immediate value to you as a programmer, and others that will prepare you for advanced courses in compilers, computer architecture, operating systems, and networking."

The book is directed at C, which is good, but also at Unix/Linux, while I am using WIndows XP. This makes me doubt a bit, but it is x86 based, which is the same hardware as which Windows computers use and they refer Windows users to GNU cygwin tools that allow to program C within a Unix shell in Windows.

"This course is based on Intel-compatible processors (called “IA32” by Intel and “x86” colloquially) running C programs on the Unix operating system. The text contains numerous programming examples that have been compiled and run under Unix. We assume that you have access to such a machine, and are able to log in and do simple things such as changing directories. Even if you don’t use Linux, much of the material applies to other systems as well. Intel-compatible processors running one of the Windows operating systems use the same instruction set, and support many of the same programming libraries. By getting a copy of the Cygwin tools (http://cygwin.com/), you can set up a Unix-like shell under Windows and have an environment very close to that provided by Unix. We also assume that you have some familiarity with C or C++. If your only prior experience is with Java, the transition will require more effort on your part, but we will help you. Java and C share similar syntax and control statements. However, there are aspects of C, particularly pointers, explicit dynamic memory allocation, and formatted I/O, that do not exist in Java. The good news is that C is a small language, and it is clearly and beautifully described in the classic “K&R” text by Brian Kernighan and Dennis Ritchie [37]. Regardless of your programming background, consider K&R an essential part of your personal library."

Now, the fact is that I already have GNU gcc compiler installed. And C is originally THE unix programming language. WIndows OS also relies on C and WIndows applications on C++ and C#. C# is even created by Microsoft, so it is all intertwined. My mind is a bit split and I need to cut the knot.

Profile

sorcerer_see: (Default)
sorcerer_see

October 2025

S M T W T F S
    12 34
56 7 8 9 10 11
12 1314 15 16 1718
19 2021 22 23 2425
2627 28293031 

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 02:04 am
Powered by Dreamwidth Studios