HOME
*





SICP
''Structure and Interpretation of Computer Programs'' (''SICP'') is a computer science textbook by Massachusetts Institute of Technology professors Harold Abelson and Gerald Jay Sussman with Julie Sussman. It is known as the "Wizard Book" in hacker culture. It teaches fundamental principles of computer programming, including recursion, abstraction, modularity, and programming language design and implementation. MIT Press published the first edition in 1984, and the second edition in 1996. It was formerly used as the textbook for MIT's introductory course in computer science. SICP focuses on discovering general patterns for solving specific problems, and building software systems that make use of those patterns. MIT Press published the JavaScript edition in 2022. Content The book describes computer science concepts using Scheme, a dialect of Lisp. It also uses a virtual register machine and assembler to implement Lisp interpreters and compilers. Characters Several fiction ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


How To Design Programs
''How to Design Programs'' (''HtDP'') is a textbook by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi on the systematic design of computer programs. MIT Press published the first edition in 2001, and the second edition in 2018, which is freely available online and in print. The book introduces the concept of a ''design recipe'', a six-step process for creating programs from a problem statement. While the book was originally used along with the education project ''TeachScheme!'' (renamed ProgramByDesign), it has been adopted at many colleges and universities for teaching program design principles. According to HtDP, the design process starts with a careful analysis of a problem statement with the goal of extracting a rigorous description of the kinds of data that the desired program consumes and produces. The structure of these data descriptions determines the organization of the program. Then, the book carefully introduces data forms of progre ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Structure And Interpretation Of Computer Programs, JavaScript Edition
''Structure and Interpretation of Computer Programs, JavaScript Edition '' (SICP JS) is an adaptation of the computer science textbook ''Structure and Interpretation of Computer Programs'' (SICP). It teaches fundamental principles of computer programming, including recursion, abstraction, modularity, and programming language design and implementation. While the original version of SICP uses the programming language Scheme, this edition uses the programming language JavaScript. This edition features a foreword by Guy L. Steele Jr. and was published by MIT Press in April 2022. Content Like its original, SICP JS focuses on discovering general patterns for solving specific problems, and building software systems that make use of those patterns. The book describes computer science concepts using JavaScript. It also uses a virtual register machine and assembler to implement JavaScript interpreters and compilers. License The book is published by MIT Press under a Creative Commons Att ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Scheme (programming Language)
Scheme is a dialect of the Lisp family of programming languages. Scheme was created during the 1970s at the MIT AI Lab and released by its developers, Guy L. Steele and Gerald Jay Sussman, via a series of memos now known as the Lambda Papers. It was the first dialect of Lisp to choose lexical scope and the first to require implementations to perform tail-call optimization, giving stronger support for functional programming and associated techniques such as recursive algorithms. It was also one of the first programming languages to support first-class continuations. It had a significant influence on the effort that led to the development of Common Lisp.Common LISP: The Language, 2nd Ed., Guy L. Steele Jr. Digital Press; 1981. . "Common Lisp is a new dialect of Lisp, a successor to MacLisp, influenced strongly by ZetaLisp and to some extent by Scheme and InterLisp." The Scheme language is standardized in the official IEEE standard1178-1990 (Reaff 2008) IEEE Standard for the S ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Gerald Jay Sussman
Gerald Jay Sussman (born February 8, 1947) is the Panasonic Professor of Electrical Engineering at the Massachusetts Institute of Technology (MIT). He received his S.B. and Ph.D. degrees in mathematics from MIT in 1968 and 1973 respectively. He has been involved in artificial intelligence (AI) research at MIT since 1964. His research has centered on understanding the problem-solving strategies used by scientists and engineers, with the goals of automating parts of the process and formalizing it to provide more effective methods of science and engineering education. Sussman has also worked in computer languages, in computer architecture and in Very Large Scale Integration (VLSI) design. Education Sussman attended the Massachusetts Institute of Technology as an undergraduate and received his S.B. in mathematics in 1968. He continued his studies at MIT and obtained a Ph.D. in 1973, also in mathematics, under the supervision of Seymour Papert. His doctoral thesis was titled "A Co ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Lisp (programming Language)
Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1960, Lisp is the second-oldest high-level programming language still in common use, after Fortran. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket and Clojure. Lisp was originally created as a practical mathematical notation for computer programs, influenced by (though not originally derived from) the notation of Alonzo Church's lambda calculus. It quickly became a favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, the self-hosting compiler, and the read†...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Metalinguistic Abstraction
In computer science, metalinguistic abstraction is the process of solving complex problems by creating a new language or vocabulary to better understand the problem space. More generally, it also encompasses the ability or skill of a programmer to think outside of the pre-conceived notions of a specific language in order to exploratorily investigate a problem space in search of the kind of solutions which are most natural or cognitively ergonomic to it. It is a recurring theme in the seminal MIT textbook ''Structure and Interpretation of Computer Programs'', which uses Scheme, a dialect of Lisp, as a framework for constructing new languages. Explanation For example, consider modelling an airport inside a computer. The airport has elements like passengers, bookings, employees, budgets, planes, luggage, arrivals and departures, and transit services. A procedural (e.g. C) programmer might create data structures to represent these elements of an airport and procedures or routines t ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Essentials Of Programming Languages
''Essentials of Programming Languages'' (''EOPL'') is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes. EOPL surveys the principles of programming languages from an operational perspective. It starts with an interpreter in Scheme for a simple functional core language similar to the lambda calculus and then systematically adds constructs. For each addition, for example, variable assignment or thread-like control, the book illustrates an increase in expressive power of the programming language and a demand for new constructs for the formulation of a direct interpreter. The book also demonstrates that systematic transformations, say, store-passing style or continuation-passing style, can eliminate certain constructs from the language in which the interpreter is formulated. The second part of the book is dedicated to a systematic translation of the interpreter(s) into register machines. The transformations show how to eliminate higher ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

National University Of Singapore
The National University of Singapore (NUS) is a national public research university in Singapore. Founded in 1905 as the Straits Settlements and Federated Malay States Government Medical School, NUS is the oldest autonomous university in the country. It offers degree programmes in a wide range of disciplines at both the undergraduate and postgraduate levels, including in the sciences, medicine and dentistry, design and environment, law, arts and social sciences, engineering, business, computing, and music. NUS is one of the most highly-ranked academic institutions in the world. It has consistently featured in the top 30 of the Quacquarelli Symonds (QS) World University Rankings and the Times Higher Education (THE) World University Rankings, and in the top 100 of the Academic Ranking of World Universities (ARWU). As of 2022-2023, NUS is 11th worldwide according to QS and 19th worldwide according to THE. NUS's main campus is located in the southwestern part of Singapore, adja ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Creative Commons
Creative Commons (CC) is an American non-profit organization and international network devoted to educational access and expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright licenses, known as Creative Commons licenses, free of charge to the public. These licenses allow authors of creative works to communicate which rights they reserve and which rights they waive for the benefit of recipients or other creators. An easy-to-understand one-page explanation of rights, with associated visual symbols, explains the specifics of each Creative Commons license. Content owners still maintain their copyright, but Creative Commons licenses give standard releases that replace the individual negotiations for specific rights between copyright owner (licensor) and licensee, that are necessary under an "all rights reserved" copyright management. The organization was founded in 2001 by Lawrence Lessig, Hal ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Byte (magazine)
''Byte'' (stylized as ''BYTE'') was a microcomputer magazine, influential in the late 1970s and throughout the 1980s because of its wide-ranging editorial coverage. "''Byte'' magazine, the leading publication serving the homebrew market ..." ''Byte'' started in 1975, shortly after the first personal computers appeared as kits advertised in the back of electronics magazines. ''Byte'' was published monthly, with an initial yearly subscription price of $10. Whereas many magazines were dedicated to specific systems or the home or business users' perspective, ''Byte'' covered developments in the entire field of "small computers and software", and sometimes other computing fields such as supercomputers and high-reliability computing. Coverage was in-depth with much technical detail, rather than user-oriented. The company was purchased by McGraw-Hill in 1979, a watershed event that led to the rapid purchase of many of the early computer magazines by larger publishers. By this time t ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language (e.g. assembly language, object code, or machine code) to create an executable program. Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman - Second Edition, 2007 There are many different types of compilers which produce output in different useful forms. A ''cross-compiler'' produces code for a different CPU or operating system than the one on which the cross-compiler itself runs. A ''bootstrap compiler'' is often a temporary compiler, used for compiling a more permanent or better optimised compiler for a language. Related software include, a program that translates from a low-level language to a h ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Interpreter (computing)
In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution: # Parse the source code and perform its behavior directly; # Translate source code into some efficient intermediate representation or object code and immediately execute that; # Explicitly execute stored precompiled bytecode made by a compiler and matched with the interpreter Virtual Machine. Early versions of Lisp programming language and minicomputer and microcomputer BASIC dialects would be examples of the first type. Perl, Raku, Python, MATLAB, and Ruby are examples of the second, while UCSD Pascal is an example of the third type. Source programs are compiled ahead of time and stored as machine independent code, which is then linked at run-time and executed by ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]