> separate effect full code from pure logic That’s a feature of the abstract machine. TM and Von Neuman is very reliant on a global (and locals) state. Lambda calculus does not and instead requires evaluation (or reduction in symbolic terms). Best bet for this is some book on computation theory, but as the name says, they’re full of theory, but it’s kinda the foundation of everything. > separate state and code Not really possible. The name “code” cames from the fact that you’re encoding logic and data to represent a process. It’s a closed system and the above books explain how and why it works. > ai native debugger What does that mean? A debugger is mostly the capability to stop a process and inspect the current state. How does AI helps? > native deterministic simulation testing What does that means? > coding proofs…
Types and Programming Languages
Benjamin C. Pierce
Types and Programming Languages
5 readers recommend it across 5 discussions
Reader recommendations
Types and programming languages, Benjamin Pierce: https://www.cis.upenn.edu/~bcpierce/tapl/ Its contents is what I consider the meta game of programming. Understanding types seems to be a real boost to think about architecture, implementation, etc.
You will get lots of PLT recommendations, so I will get a bit more theoretical but still close to applications. For me CS is all about logic and types in the same way classical math is mostly about algebra and calculus. A great text for logic is Huth & Ryan: https://www.amazon.com/dp/B00AKE1QXQ A great text for type theory is TAPL: https://www.amazon.com/dp/B08H18R67V A superb combination of both is Concrete Semantics: http://concrete-semantics.org/concrete-semantics.pdf Knowing the material in these books is sufficient to land a high end verification job.
Also recommended in this reply
I don't think there are any. The problem with learning computer science from textbooks is that most textbooks will go a lot further than just the fundamentals on the subjects they cover. So if you try to learn the basics by choosing a textbook for each area and read it cover to cover you'll never finish. Perhaps the answer is to thoroughly read the first few chapters/skim the remainder of Introduction to Algorithms; the Dragon book; Computer Networks/Architecture/etc.: A Systems/Quantitative/etc. Approach; Types and Programming Languages; Security Engineering; AI: A Modern Approach and so on -- that was certainly my experience of undergrad CS. A few exceptions are K&R, The Mythical Man-Month and What Every Computer Scientist Should Know About Floating-Point Arithmetic which are short enough that you can easily read them in their entirety.
Also recommended in this reply
Don Quixote. Touches on a lot: perception, value, narrative, ethics, creativity. Above all it is funny as hell and beautifully written. Types and Programming Languages, Benjamin Pierce, slightly intimidating mathematically for me but worth diving in, lots of interesting ideas, I'm only through to the second chapter.
Also recommended in this reply