Read the notes of the SICP sequence
From small to large, we are accustomed to being a person planning life. At home, parents and elders to give us a plan of life, in school, the teacher to us to plan all day learning tasks, after work, by the boss assigned to us work tasks. has been planned for us, now can do a self-planning thing, that is programming.
Order
Solving large-scale problems requires a series of planning, just as a larger project requires a lot of planning and design upfront, or it can lead to bigger problems. At the same time, to carry out computer program design, need a lot of reading or writing programs. It is not important how these programs are specific, what kind of applications to serve, and so on, and what is important is their performance and the ability to smoothly interface with other programs when used in larger programs. Programmers must simultaneously pursue the perfection of specific parts and the appropriateness of convergence. This book uses the term "programming" to focus on the creation, execution, and research of programs, written in the Lisp language. ( domestic estimates have learned this language is very rare, probably all like me to learn is C)
This book focuses on three types of objects, the human brain , the collection of computer programs , and the computer itself .
① People's brains
Each computer program is a model of a reality or a process in the mind, hatched through the human mind. These processes occur in people's experience or thinking.
② A collection of computer programs
The computer is a meticulous craftsman: its procedures must be correct, and everything we want to say must be expressed in every detail. Similarly, the program needs to verify the certification. However, the appropriateness, consistency, and correctness of the description itself become highly questionable when the program becomes larger and more complex. It is rare to see a complete form of argumentation about the correctness of large procedures. Because large programs are grown from small things, developing an arsenal of program structures, and guaranteeing the correctness of each structure we call them idiomatic, and learn how to use some of the proven valuable organizational techniques to combine these structures into larger structures is essential. Understanding these techniques is the most essential for participating in this creative career called programming. In particular, the discovery and mastery of strong organizational techniques will enhance our ability to construct large, important programs. Conversely, because writing large programs is time-consuming and laborious, it also pushes us to invent new ways to mitigate the heavy burdens of the functions and details of large programs.
③ the computer itself
Unlike programs, computers must obey the laws of physics. If they want to perform a state transition quickly-----several nanoseconds-------then it is necessary to conduct electrons within a very short distance (up to 1.5 feet, No wonder the circuit board is generally less than 45cm). The concentration of heat generated by a large number of components must be eliminated (equilibrium points have been found). In any case, the hardware is operating at a lower level than the level of care we need to program. The process of transforming our Lisp program into a "machine" program is also an abstract model, which is done through programming. Studying and structuring them can give a deeper understanding of the procedural organizational problems associated with the programming of any model. Of course, the computer itself can also be simulated like this. Think about it: the smallest physical switching element is modeled in quantum mechanics, and quantum mechanics is described by a set of differential equations, and the details of differential equations can be approximated by numerical values, which are described by computer programs and composed of computer programs ....
It is not just for strategic convenience to distinguish between the three categories of objects that need attention (the brain of a generation, the set of computer programs , and the computer itself ). Even if someone says it is just something in the mind, this logical distinction also causes the acceleration of the symbolic flow of these concerns, and their richness, vitality and potential in people's experience can only be transcended by the constant evolution of real life. At the very least, we say that the relationship between these focuses is basically stable. Computers are never big enough or fast enough. Every breakthrough in hardware technology will bring larger-scale programming, new organizational principles, and a richer sampling model. ( don't ask where the head is, I reckon the CPU frequency reaches the speed of light is the limit.) )
In the program we write, some programs perform an exact mathematical function (but are definitely not precise enough), such as sorting, or finding the largest element in a series of numbers, going to the top prime, or finding the square root. Our procedures, called algorithms , have been known for their best behavior, especially with regard to two important parameters: execution time and the need for data storage ( the contradiction between time complexity and spatial complexity ). Programmers should pursue good algorithms and idiomatic methods. Even if some programs are difficult to describe accurately, programmers have a responsibility to estimate their performance and continue to try to improve it.
Lisp is a survivor and has been used for One-fourth centuries ( the 90 's). Fortran is a little longer than it is. Fortran is used for scientific and engineering calculations ( The Columbia number uses this language ), and Lisp is used for artificial intelligence.
Lisp has been changing. Lisp programmers gain the discretionary power that is available to individuals. Lisp programs greatly elevate the library's position, making its usability beyond the specific applications that spawned them. As the internal data structure of Lisp, the table plays the most important role in the promotion of this usability. The simple structure and natural usability of the table are reflected in the function, which makes them have a singular universality.
Bear2flymoon 2015-03-15
Notes on reading the SCIP sequence (Scip note 1)