SlaveJaoOfProgramming musingSee:Babar KazarSortedA bunch of classical papers.JaoIt is strongly recommended that every seriousProgramThey read every paper and say they are more or less interesting. I scanned it in a rough manner and did not read many papers. I picked some introductions that I know a little bit.
· An Axiomatic basis for Computer ProgrammingC. A. R. Hoare
Tony Hoare Name of ( Axiomatic Semantics ). Famous Hoare triples, P {c} Q, It is from here. Paper is not long, double row 6 Page. This is what our predecessors did, 6 You can start the school on the page. Unlike you, 6 The introduction section is incomplete. Which boss wants to know how to prove that the program is correct. You can use this paper to open your teeth in terms of preconditions, unchanged conditions, and backend conditions. · Communicating Sequential Processes (CSP)C. A. R. Hoare
Hoare, See also Hoare . It is actually normal. The ox is a great achievement. The linked document should not be a thesis, but a monograph. 260 Page. Slave 1985 Launched in 20 Over the years, this book has been cited in CS It ranks third in history, with a deep influence. If you are interested in concurrent programming, you can study it. I have not read it. · Call-by-name, call-by-value, and the lambda calculusGordon Plotkin
Not read. Only LTU Introduced. Gordon One of the main points of this paper is that to smoothly deduce the program, appropriate Lambda Theory. In-depth understanding Call-by-name , Call-by-Value , And Lambda The operators are ready. · Towards a theory of Type StructureJohn C. Renault
It is known as a classic. But I have never read it. Type system always isProgramming LanguageR & D hotspots are also very interesting ―― Programming of A type system is like letting machines prove a series of theorems. Renault In this paper, we discuss what is the correct type structure, and the correct syntax must be independent of any specific type expression form, and provide Lambda An extension of an operator that allows it to describe user-defined types and multi-state functions. The boss who has the courage to read the formula should be prepared. · Structured Programming with go to statementsDonald E. knuth
In this paper, we will discuss in detail how to use structured programming Goto When is it unnecessary? Goto . Grandpa Gao's fine and pragmatic attitude is worth learning. Master Gao spent his life Goto (mix And Mmix Program missing Goto How can I make a transfer? ) Can it be easily Dijkstra Pair Goto ? He carefully discussed several different procedures and examined Goto Advantages and disadvantages of using in those programs. Conclusion, Goto It is still efficient and practical in some programs. Although the thesis is 30 Years ago, but the analysis techniques and Utilization Goto The optimization technology is currently available. · Definitional interpreters for higher-order programming agesJohn C. Renault
This articleArticleI like it. "Metacircular" This sexiness concept was first proposed in this paper. I want to learn more about the magical idea of defining the language using an interpreter written in a language. This article is a must-read document. If you are interested, you can read SiC . · An APL machine 1970Philip S. Abrams
Only know APL It is a language with historical significance. By the way, APL This name is too earthy. A programming language = APL . What is it like.
· The anatomy of a large-scale hypertextual Web Search EngineSergey Brin and Lawrence Page
The Network is a large matrix (Transition probability matrix of Markov chain) . Webpage reputation (Page rank) This is a huge matrix. PrincipleEigenvector . Well, I only admire it. · No silver bullet: essence and accidents of Software EngineeringFrederic P. Brooks, Jr.
Silver Earth knows. You don't have to worry about it. · A mathematical theory of communicationClude Shannon
Bell The lab was brilliant. Name-Filling A , The result was invented B . The Shannon boss is an outstanding representative. Shannon entered Bell No one told him what to do after the lab. Boss Shannon thought about it and liked mathematics, Bell Why don't we look at the results of applying mathematics to communication? Therefore 1948 In this paper, Shi le. People engaged in communication crash. Modern information theory was born. · Bayesian networks without tears
Bayesian theory has been hot for several years. It is estimated that the heat will continue. As more and more information is available, we are tired of aesthetics. What everyone desires is not information, but knowledge. It is too slow to extract information into knowledge by personal strength. We need the help of machines. Machine learning is not hot, but bayesian theory has a good application in machine learning. This article is simple and can be easily read. By the way, the Intelligent engine of Microsoft paper clips is implemented by Bayesian Networks. · A Universal Algorithm for sequential Data Compression
Not read. Shameless excuse: when we started the Information Theory Course, I just graduated. · A relational model of data for large shared data banks 1970Edgar F. codd
What will happen to humans without relational algebra? Codd The Epoch paper laid the foundation for modern databases. Hey, I haven't read this paper either. By the way ORM Try Data schema Maps with the object system. The problem is, Data schema It is just an expression of the relationship, and it is also related to the specific system implementation. Maybe the structure andLinkIng is the right path. · Let's build a compiler 1988-1995
Teach you to write a Compilation Program step by step. Not a thesis. A good guide. · Gauging similarity via n-grams: language-independent sorting...Marc damashek
First heard · Worse is betterRichard P. Gabriel
Popular articles on the Internet. It is of educational significance. Simply put, Worse is better It includes the following points:
-- Simple: The design is simple. However, if the interface and implementation cannot be both complete, the pursuit of implementation is simple. The UNIX vs multics The example is very interesting.
-- Correct: The program must be in allVisible. In other places, if simplicity and correctness cannot be both complete, the pursuit of simplicity will be achieved.
-- Consistency: The program cannot be too inconsistent. However, for simplicity, inconsistency may occur in a few places.
-- Completeness: The program should take care of important points as much as possible, but it should not sacrifice conciseness.
It is strongly recommended. · Hints on Programming Language DesignC. a.r. Hoare
Hoare Summarize the experience of the design language. These experiences are valid till now. The article is very easy to read, and it will definitely increase the skill of programming after reading. · Why functional programming mattersJohn Hughes
A big meal prepared for common programmers, so it is well written. There is no formula, and there is no additional terminology. Highlighted Fold And Map Powerful abstract capabilities. I can't help but think of the programming language I took in college. A class is a good class, and a teacher is a class teacher. In the class, we learned simple programming language theories and focused on functional programming (using Common LISP ) And logic programming (Use PROLOG ). This course has completely changed my understanding of programming. Imperative Programming And OO programming There is also a wonderful world. So far, I feel lucky. The homework in that course is also very interesting. It implements a memory-resident database and supports common operations in relational algebra. · On the expressive power of programming agesMatthias felleisen
Not read. To be read. · The early history of SmalltalkAlan Kay
What else can I say? Alan Kay This name indicates everything. 30 Years ago Alan Kay Just do it. Smalltalk It is still amazing to think about it now. Cite an article Alan Kay Comments Smalltalk Statement: In computer terms, Smalltalk is a recursion on the notion of computer itself. instead of dividing "computer stuff" into things each less strong than the whole -- like data structures, procedures, and functions which are the usual paraphernalia of programming versions -- each Smalltalk object is a recursion on the entire possibilities of the computer. thus its semantics are a bit like having thousands and thousands of computer all hooked together by a very fast network. response of concrete representation can thus be postponed almost indefinitely because we are mainly concerned that the computers behave failed, and are interested in particle strategies only if the results are off or come back too slowly. · Computer programming as an artDonald E. knuth
Master Gao is 1974 A speech at the year's Turing Award ceremony. Really top Geek Elegant. Master Gao explained in his article what his book named "the art of programming". Obviously, when talking to people about programming, he puts science above art. Grandpa Gao traces back the source of "art", saying that art is intended to be skill and also the origin of technology and skill twice. From here on, he began to discuss the association between art and science, and the forms and meanings of art in programming. In his words, his lifelong goal as an educator and author is to write beautiful programs. Peng said with a high degree of enthusiasm. · The next 700 programming versionsPeter J. landin
42 Years ago, the paper had a profound influence. Peter Function language described in this paper Iswim ( If you see what I mean ) No one knows about it now. However Lambda The respect of operators and the discussion of function languages affect the later function language design. · Recursive functions of symbolic expressions and their computation by machine (part I) 1960John McCarthy
47 Proposed years ago LISP The famous paper. Not read. Dynamic type check, Garbage collection, Recursive functions, S-expression, Program and data... Brilliant contributions.
· Forth-a language for interactive computingCharles H. Moore
Only know Forth Is Stack oriented The programming language affects some later languages, such Cat . I don't know anything else. · Teach Yourself programming in ten years 2001Peter norvig
One of the reasons why Daniel is a Daniel is far-reaching. This article criticizes 《 24 Second Learning C "++" And other teaching materials have no problem. They have discussed how to learn programming, from cainiao to Peng. The Chinese version has been widely used in the world. Come and check it out. Peter norvig There are many high-quality articles on the website. One read is strongly recommended. · The definition and implementation of a computer language based on constraintsGuy Lewis Steele Jr.
It seems like Guy Steels Master's thesis. Not read. · Growing a languageGuy Lewis Steele Jr.
Haowen! G The boss is Oopsla 98 . G The boss advocates that a language that can be freely expanded should be designed in a gradual way ( LISP Most cool people in the circle hold this idea, right ?). This speech provides a refined discussion of this point of view. For an evolutionary point of view, refer to another good article, SiC One of the authors, Near work of Jay Sussman . · Epigrams on ProgrammingAlan J. Perlis
A The boss published a series of sayings about programming. Humorous and profound. Every read will smile. Cry when you smile. Well, that's an exaggeration. Do not take it seriously. · The complexity of theorem proving proceduresStephen A. Cook
The famous work of Grandpa cook. In this article, it was like someone found the first gold in the desert of California and immediately set off a boom in the Development of California. The theory of computational complexity has blossomed rapidly. Compared with the pioneering contribution of this paper, Cook won the Turing Award, which is not a small embellishment. NP-complete This article is strictly defined. More importantly, cook proved the first NP-complete Problems, Sat (Boolean satisfiability problem) . With Sat , Coupled with suffering from countless students Polynomial extends cibility , Numerous NPC The problem arises... Don't look at me here, it was quite difficult to prove the theory of computing that year, not to stay up late. The strange thing is that one day I explained my solutions to my classmates, NPC The definition of is suddenly clear. The proof that I had racked my brains turned out to be quite mechanical. Later I learned that it is a very effective way to learn (including writing. Reading articles with the goal of preparing lessons. If you want to explain the articles you are reading, you can quickly understand the content you are reading. The proof of the SAT is quite complex. I have no patience to finish reading it. · Steps toward artificial intelligenceMarvin Minsky
AI . But I haven't read it. · The original 'lambda papers'Guy Steele and Gerald Sussman
A series of explanations Lambda Operator and Scheme Classic paper. Learning Scheme Read, understand Scheme The design concept is very helpful.
· The UNIX time-sharing systemDennis Ritchie and Ken Thompson
I don't need to introduce it? This article introducesUNIXFeatures are well known. But Part 8(VIII perspective)The author's design philosophy is still worth reading.