-
Notifications
You must be signed in to change notification settings - Fork 257
Description
What follows, which we call the Tech Tree, is a selection of works intended to describe how the world makes and uses software today, as well as an overview of how computers work and the foundational technologies required to make and use computers
I dont think the current tech tree is nearly focused enough to archive "how computers work and the foundational technologies required to make and use computers"
Let's look at some examples.
Compilers, assembler, and operating systems
All of the three compiler book cover building a compiler for a low level imperative language (essentially C). There is no compiler about functional programming language (SML/Haskell), no compiler for declarative language (datalog), or for high-level dynamically typed language (smalltalk). Furthermore there is no book that talk about SAT/SMT solving, nor Garbage Collection, which is the foundation for compiler and programming language (C Compiler use graph coloring (NP complete) for register allocation).
Programming languages
All of the book only talk about contemporary programming language, with zero books about how to design a language. How does one design the type system to ensure safety, without sacrificing too much expressiveness, meanwhile allowing efficient type checking/inference? How do you manage different kind of effect (e.g. reference, concurrency, probability, nondeterminism, exception)? How do you design the language such that it contain a few simple yet universal construct, instead of having lots of ad hoc construct, and quickly becoming and overly-complex language (see Gedanken and Scheme)?
Scientific computing
Scientific Computing workload often consists of
0: lots of domain knowledge
1: ran with numerics algorithm (e.g. finite element methods)
2: optimization for superomputer
I didnt see any of them.
Machine learning
There are five books on deep learning, with no book on bayesian method/probabilistic graphical model/symbolic methods/classical machine learning.
Even if this is just for deep learning, it is still not enough - there is no mention on how to rebuild deep learning framework.