I
I
iscander2019-10-18 17:23:39
Books
iscander, 2019-10-18 17:23:39

Can you recommend books or articles on computer architecture?

In general, I decided to deepen my knowledge of data structures, and in particular the nature of programming languages. And I have a question - where can I get this knowledge? For example, how does assigning a variable name to a value work in static languages, or what are object variables in dynamic languages, how EXACTLY is a function stored in memory? I have already read more than one article, but everywhere they explain enough at an abstract level. I want to know how all this goodness works at a low level, what happens under the "hood"?
Please recommend any books or articles. It is desirable that C ++ and Python be used as an example. It is possible in English, but preferably in Russian.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
F
Frozen Coder, 2019-10-18
@frozen_coder

Write your own compiler or interpreter for some subset of the PL (or write your own small language). At the university, we wrote a Pascal compiler (albeit in teams and each one did one part). Google the dragon book as advised in the comment.
Then you can also write your own micro operating system. This is Tanenbaum. He seems to have something about computer architecture.
You can write your own memory allocator - https://github.com/mtrebi/memory-allocators
Or you can write your own virtual machine - https://justinmeiners.github.io/lc3-vm/
There are also plenty of articles on these topics. And if you google in English, then in general heaps. The answer is easily found by a search engine.
The fact is that just reading is a completely useless exercise. You have to write yourself. Let small, let only with minimal functionality, but write.
P.S. Your question is more related to system programming, how compilers and operating systems work. I didn’t see the hardware and computer architecture in the question

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question