About: Read–eval–print loop is a research topic. Over the lifetime, 220 publications have been published within this topic receiving 6941 citations. The topic is also known as: REPL & Read-Eval-Print Loop.
TL;DR: The LISP language is designed primarily for symbolic data processing used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing, and other fields of artificial intelligence.
Abstract: The LISP language is designed primarily for symbolic data processing used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing, and other fields of artificial intelligence.The manual describes LISP, a formal mathematical language. LISP differs from most programming languages in three important ways. The first way is in the nature of the data. In the LISP language, all data are in the form of symbolic expressions usually referred to as S-expressions, of indefinite length, and which have a branching tree-type of structure, so that significant subexpressions can be readily isolated. In the LISP system, the bulk of the available memory is used for storing S-expressions in the form of list structures. The second distinction is that the LISP language is the source language itself which specifies in what way the S-expressions are to be processed. Third, LISP can interpret and execute programs written in the form of S-expressions. Thus, like machine language, and unlike most other high level languages, it can be used to generate programs for further executions.
TL;DR: This article explains why scripting languages will handle many of the programming tasks in the next century better than system programming languages.
Abstract: A fundamental change is occurring in the way people write computer programs, away from system programming languages such as C or C++ to scripting languages such as Perl or Tcl. Although many people are participating in the change, few realize that the change is occurring and even fewer know why it is happening. This article explains why scripting languages will handle many of the programming tasks in the next century better than system programming languages. System programming languages were designed for building data structures and algorithms from scratch, starting from the most primitive computer elements. Scripting languages are designed for gluing. They assume the existence of a set of powerful components and are intended primarily for connecting components.
TL;DR: This work has developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML, and its formally verified compiler can bootstrap itself: it applies the verified compiler to itself to produce a verified machine-code implementation of the compiler.
Abstract: We have developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML. CakeML is implemented as an interactive read-eval-print loop (REPL) in x86-64 machine code. Our correctness theorem ensures that this REPL implementation prints only those results permitted by the semantics of CakeML. Our verification effort touches on a breadth of topics including lexing, parsing, type checking, incremental and dynamic compilation, garbage collection, arbitrary-precision arithmetic, and compiler bootstrapping.Our contributions are twofold. The first is simply in building a system that is end-to-end verified, demonstrating that each piece of such a verification effort can in practice be composed with the others, and ensuring that none of the pieces rely on any over-simplifying assumptions. The second is developing novel approaches to some of the more challenging aspects of the verification. In particular, our formally verified compiler can bootstrap itself: we apply the verified compiler to itself to produce a verified machine-code implementation of the compiler. Additionally, our compiler proof handles diverging input programs with a lightweight approach based on logical timeout exceptions. The entire development was carried out in the HOL4 theorem prover.
TL;DR: This chapter discusses data-Driven Programming and Other Programming Techniques, higher-Order Functions, Continuations, and Coroutines, and higher-order functions in Lisp, as well as some of the techniques used in AI programming.
Abstract: Contents Part I:Lisp Programming.Lisp Review. Macros and Read-Macros. Data Structures and Control Structures in Lisp. Input/Output in Lisp. Compiling Your Program and Your Program's Program. Data-Driven Programming and Other Programming Techniques. Higher-Order Functions, Continuations, and Coroutines. Part IIAI Programming Techniques.Simple Discrimination Nets. Agenda Control Structures. Deductive Information Retrieval. Discrimination Nets With Variables. Production Systems. Slot and Filler Data Bases. Chronological Backtracking. Data Dependencies and Reason Maintenance Systems. Appendix 1: A Glossary of Common Lisp Functions. Answers to Selected Exercises.
TL;DR: This 471-page, softcover manual describes the programming language and software environment of the Lisp Machine developed at M.I.T.'s Artificial Intelligence Laboratory over the past 8 years.
Abstract: This 471-page, softcover manual describes the programming language and software environment of the Lisp Machine developed at M.I.T.'s Artificial Intelligence Laboratory over the past 8 years. The Lisp Machine is the result of a successful experiment in computer science: a distributed computing system consisting of a network of powerful 32-bit personal computers, implemented with custom hardware and software as complete, interactive graphical workstations. Each machine consists of a 32-bit computer with 64 megabytes of virtual memory, 1 to 16 megabytes of main memory, 80 megabytes (or larger) disk, 800x900 graphics display (color optional), mouse, keyboard, speaker and 4 million bit/second local network interface, which allows connections to other Lisp Machines, primers and file servers.