Appendix
Computer Languages Considered in this Book
General Purpose Languanges
-
Algol (Algorithmic language) a family of compiled computer languages that arose in the late 1950s from the language ALGOL 68. Examples include Pascal, C, and Fortran. Considered briefly in Section 8.5.4.
-
Assembly A low-level compiled (with an Asembler) programming language with strong similarities between source code mnemonics and machine code/operating system instructions. Considered briefly in Section 1.4.1.
-
AWK A single-pass interpreter scripting language (A. V. Aho, Kernighan, and Weinberger 2023). Primarily used in Unix-alike pipes as a text processing and data extraction and reporting tool. See Section 9.2.4 for programming examples.
B A Fortran-derived precursor to C. The B language was typeless, meaning that it used a machine’s natural memory word format for implementing procedures (Thompson 1972). Considered briefly in Section 1.4.1.
- C An important general purpose compiled language developed during the 1970s (Kernighan and Ritchie 2002; Ritchie 1993). Because R is largely written in C, it is not surprising that the most direct language for interfacing with R is C (Chambers 2008). See Section 1.4.1 and Section 9.4. The latter Section includes example code for generation of C shared libraries for use with R.
- C++ A high-level, general-purpose, compiled programming language. Originally intended to be an extension of C by adding adding object-oriented (OOP) features. See Section 9.5.
- C-obj A high-level, general-purpose, compiled object-oriented programming language. Originally designed to be a pre-processor extension for C. Considered briefly throughout Ch 9, including Section 9.1.5
- C# A high-level, general-purpose, compiled programming language supporting OOP features and lexical scoping. Considered briefly in Section 9.1.5.
- Fortran The oldest programming language still in active use. Although Fortran’s development followed an IBM proposal for an alternative to assembly language in 1953 (Backus 1998), and the first correctly compiled version of Fortran occurred in 1958, Fortran remains among the top programming languages in the TIOBE index (Wikipedia 2025h). Early iterations of S were strongly dependent on Fortran procedures (Section 1.4). See Section 9.4 to view example code for generation of Fortran shared libraries for use with R.
- F# A member of the ML (Meta Language) family of compiled languages. Considered briefly in Sections 5.2 and 8.6.
- Haskell Generally used as a compiled language to codify purely function processes (see Section 8.6). Pandoc, which is used to convert from one markup format to another in Rstudio, is a Haskell library (see Section 2.10.2.1).
- Java A high-level general-purpose OOP language with a syntax similar to C and C++. Java programs are generally compiled to bytecode (instead of binary machine code). See Section 11.3
-
JavaScript (JS) A high-level compiled language that serves as a key component of most web browsers. See Section 11.3.
- JavaScript Open Notation (JSON) A language-independent data format derived from JavaScript. See Section 11.3
- Julia A high-level, general-purpose compiled language with interoperability with C, C++, Fortran, Rust, Python and R. Briefly mentioned in Section 5.2.
-
Lisp (LISt Processor) An early compiled language with many dialects. The second oldest (after Fortran) commonly used computer language.
- AutoLISP A Lisp dialect built for the drafting software AutoCAD (Section 1.4.1)
- Common Lisp A Lisp dialect designed to be a standardized successor of Maclisp.
- Clojure A dialect of Lisp for Java
- Hy A Lisp dialect embedded in Python (Section 1.4.1)
- Lisp Flavored Erlang (LFE) A Lisp dialect based on the Erlang programming language.
- Scheme A Lisp dialect whose class system strongly influenced the development of R (see Section 1.4.1).
- Multics (“MULTiplexed Information and Computing Service”) An early compiled language that strongly influenced subsequent operating systems. Briefly considered in Section 1.4.1.
-
Perl A general use programming language introduced by Larry Wall in 1987 as a Unix scripting tool to facilitate report processing (Wikipedia 2025n). Despite criticisms as an awkward language, Perl remains widely used for its regular expression framework and string parsing capabilities. Briefly considered in several Sections including Section 4.3.3.
Python A popular, high-level general purpose interpreted language emphasizing code readability through the use approaches including significant indentation (see Section 9.7).
R A high-level, widely used interpreted language, based largely on the S language and the Lisp dialect Scheme. Originally intended for statistical computing and data visualization.
S An interpreted language for statistical computing that strongly influenced the development of R (Section 1.4.1).
- Sed (stream editor) A scripting language with a relatively simple and compact syntax. Often used in the context of Unix pipes. See Section 9.2.4 for programming examples.
- SQL (Structured Query Language) A standard language for storing, manipulating and retrieving data in databases (Section 9.6).
- Tcl A high-level general-purpose interpreted language. Implementations include Tcl/Tk (the Tcl language via its Tk GUI-building toolkit) (Section 11.2).
Markup Languages
- CSS (Cascading Style Sheets) a sheet formatting language for markup formats, particularly HTML. Briefly considered in Section 2.10.2.1.
- HTML (Hypertext Markup Language) A foundational markup language for documents designed to be displayed in a web browser (see Sections 2.10.2) and 11.3.
- XML (Extensible Markup Language) A markup language emphasizing serialization and simplicity of documents for use on the web. Briefly mention in Section 2.10.2).
-
TeX A markup language and publishing system widely used by mathematicians and engineers because of its capacity to clearly render mathematical notation and formulae (Knuth 1986). TeX is most frequently used through the LaTeX high-level document preparation system (see Section 2.10.2.1.3). Among other features, LaTeX provides ready-made commands for the formatting of chapter headings, footnotes, cross-references and bibliographies. TeX distributions currently include MiKTeX and TeX Live. Useful TeX editors include Texmaker and Overleaf, a cloud based application. Other TeX extensions include:
- ConTeX A TeX macro focused on output consistency and design.
- BibTeX A TeX macro for bibliographic management.
- pdfTeX A TeX engine that allows direct PDF output. TeX traditionally produced a Device Independent (DVI) binary file, which could be converted to a PostScript file.
- XeTeX A Unicode-based TeX engine.
- LuaTeX A TeX engine with Lua language support.
-
Markdown A simple markup language that allows straightforward translation to HTML, and other formats (see Section 2.10.2).
-
R Markdown A file formatting system for R workflows based on Markdown (see Section 2.10.2.1).
-
R Markdown A file formatting system for R workflows based on Markdown (see Section 2.10.2.1).
Troff A older markup language system still used in many applications, including the formatting of UNIX documentation. Mentioned briefly in Section 2.10.2.
-
YAML (YAML Ain’t Markup Language) A widely used markup serialization language (see Section 2.10.2.1).
Shell Languages
- BASH (Bourne Again SHell) A POSIX compliant single-pass interpreter Unix shell language released in 1989 by Brian Fox (Hamiltom 2011). See Section 9.2 and Examples therein.
- cmd A Windows-based shell setting and language introduced in 1993 that has a strong resemblance to the venerable MS-DOS command line language. For examples of usage see Section 9.2.
- PowerShell A Windows-based shell program and language introduced in 2006. PowerShell is largely back-compatible with cmd, but also allows the handling of objects and OOP scripts. For examples of usage see Section 9.2.
- Zsh (Z-shell) A Unix shell language introduced in 1990 (Falstad and Bakker 1995). Currently serves as the default shell for Mac OS.