Programming Languages: Application and Interpretation

Last updated • 1 min readFrom Wikipedia, The Free Encyclopedia
Programming Languages: Application and Interpretation
PLAI-cover.jpg
Cover of Programming Languages: Application and Interpretation
Author Shriram Krishnamurthi
LanguageEnglish
SubjectProgramming languages
PublisherSelf-published
Publication date
2003 (first published, releases are on-going)
Publication placeUSA
Pages355
Website www.plai.org

Programming Languages: Application and Interpretation (PLAI) is a free programming language textbook by Shriram Krishnamurthi. It is in use at over 30 universities, in several high-schools.[ citation needed ]

The book differs from most other programming language texts in its attempt to wed two different styles of programming language education: one based on language surveys and another based on interpreters. In the former style, it can be too easy to ignore difficult technical points, which are sometimes best understood by trying to reproduce them (via implementation); in the latter, it can be too easy to miss the high-level picture in the forest of details. PLAI therefore interleaves the two, using the survey approach to motivate ideas and interpreters to understand them.

The book is accompanied by supporting software that runs in the Racket programming language.

Since PLAI is constantly under development, some of the newer material (especially assignments) is found on course pages at Brown University.

PLAI is also an experiment in publishing methods. The essay Books as Software discusses why the book is self-published. The current public release is version 3.2.2 (2023-02-26) is available as a free electronic edition for screen use or printing.

Related Research Articles

<span class="mw-page-title-main">Software</span> Instructions a computer can execute

Software consists of computer programs that instruct the execution of a computer. Software can be defined broadly to include design documents, specifications, and testing suites.

Computer programming or coding is the composition of sequences of instructions, called programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of procedures, by writing code in one or more programming languages. Programmers typically use high-level programming languages that are more easily intelligible to humans than machine code, which is directly executed by the central processing unit. Proficient programming usually requires expertise in several different subjects, including knowledge of the application domain, details of programming languages and generic code libraries, specialized algorithms, and formal logic.

In computing, a compiler is a computer program that translates computer code written in one programming language into another 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 to create an executable program.

Interactive fiction (IF) is software simulating environments in which players use text commands to control characters and influence the environment. Works in this form can be understood as literary narratives, either in the form of Interactive narratives or Interactive narrations. These works can also be understood as a form of video game, either in the form of an adventure game or role-playing game. In common usage, the term refers to text adventures, a type of adventure game where the entire interface can be "text-only", however, graphical text adventure games, where the text is accompanied by graphics still fall under the text adventure category if the main way to interact with the game is by typing text. Some users of the term distinguish between interactive fiction, known as "Puzzle-free", that focuses on narrative, and "text adventures" that focus on puzzles.

<span class="mw-page-title-main">Literate programming</span> A programming approach of software development

Literate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of how it works in a natural language, such as English, interspersed (embedded) with snippets of macros and traditional source code, from which compilable source code can be generated. The approach is used in scientific computing and in data science routinely for reproducible research and open access purposes. Literate programming tools are used by millions of programmers today.

In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.

<span class="mw-page-title-main">Shell script</span> Script written for the shell, or command line interpreter, of an operating system

A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be command languages. Typical operations performed by shell scripts include file manipulation, program execution, and printing text. A script which sets up the environment, runs the program, and does any necessary cleanup or logging, is called a wrapper.

<span class="mw-page-title-main">BibTeX</span> Reference management software for formatting lists of references

BibTeX is both a bibliographic flat-file database file format and a software program for processing these files to produce lists of references (citations). The BibTeX file format is a widely used standard with broad support by reference management software.

In computer programming, indentation style is a convention, a.k.a. style, governing the indentation of blocks of source code. An indentation style generally involves consistent width of whitespace before each line of a block, so that the lines of code appear to be related, and dictates whether to use space or tab characters for the indentation whitespace.

<span class="mw-page-title-main">LabVIEW</span> System-design platform and development environment

Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a graphical system design and developmentplatform produced and distributed by National Instruments, based on a programming environment that uses a visual programming language. It is widely used for data acquisition, instrument control, and industrial automation. It provides tools for designing and deploying complex test and measurement systems.

<span class="mw-page-title-main">GFA BASIC</span> Computer programming language

GFA BASIC is a dialect of the BASIC programming language, by Frank Ostrowski. The name is derived from the company, which distributed the software. In the mid-1980s to the 1990s it enjoyed popularity as an advanced BASIC dialect, but has been mostly superseded by several other programming languages. Official support ended in the early 2000s.

EndNote is a commercial reference management software package, used to manage bibliographies and references when writing essays, reports and articles. EndNote was written by Richard Niles, and ownership changed hands several times since it was launched in 1989 by Niles & Associates: in 2000 it was acquired by Institute for Scientific Information’s ResearchSoft Division, part of Thomson Corporation, and in 2016 by Clarivate. EndNote's main competitors are Mendeley and Zotero. Unlike Mendeley and Zotero, EndNote is neither free-to-use nor offers a freemium model.

<span class="mw-page-title-main">Comment (computer programming)</span> Explanatory note in the source code of a computer program

In computer programming, a comment is a human-readable explanation or annotation in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters. The syntax of comments in various programming languages varies considerably.

<i>Essentials of Programming Languages</i>

Essentials of Programming Languages (EOPL) is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes.

The following is a comparison of e-book formats used to create and publish e-books.

<span class="mw-page-title-main">S-Lang</span> Software library and scripting language

The S-Lang programming library is a software library for Unix, Windows, VMS, OS/2, and Mac OS X. It provides routines for embedding an interpreter for the S-Lang scripting language, and components to facilitate the creation of text-based applications. The latter class of functions include routines for constructing and manipulating keymaps, an interactive line-editing facility, and both low- and high-level screen/terminal management functions. It is distributed under the terms of the GNU General Public License.

The full stop, period, or full point. is a punctuation mark used for several purposes, most often to mark the end of a declarative sentence.

<span class="mw-page-title-main">Command-line interface</span> Computer interface that uses text

A command-line interface (CLI) is a means of interacting with a computer program by inputting lines of text called command-lines. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternative to the non-interactive interface available with punched cards.

The following outline is provided as an overview of and topical guide to the Perl programming language:

<span class="mw-page-title-main">Foliate (software)</span> E-book reading application for Linux

Foliate is a free and open-source program for reading e-books in Linux. In English, foliate is an adjective meaning to be shaped like a leaf, from the Latin foliatus, meaning leafy.

References