March 2018
Beginner
744 pages
26h 5m
English
If a machine is to be capable of solving a wide range of problems, it must be able to execute programs written in different languages, from Fortran and C to Lisp and Prolog. The only physical components we have to work with are wires and gates. A formidable open space—a semantic gap—exists between these physical components and a high-level language such as C++. For a system to be practical, the semantic gap must be invisible to most of the system’s users.
Programming experience teaches us that when a problem is large, we should break it down and use a divide-and-conquer approach. In programming, we divide a problem into modules and then design each module separately. Each module performs a specific task, ...
Read now
Unlock full access