In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract syntactic structure of source code written in a programming language.
An anaphoric macro is a type of programming macro that deliberately captures some form supplied to the macro which may be referred to by an anaphor (an expression referring to another).
An application software (app or application for short) is a computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user.
An assembly (or assembler) language, often abbreviated asm, is a low-level programming language, in which there is a very strong (but often not one-to-one) correspondence between the assembly program statements and the architecture's machine code instructions.
Automation is the technology by which a process or procedure is performed without human assistance.
AWK is a programming language designed for text processing and typically used as a data extraction and reporting tool.
In general, bootstrapping usually refers to a self-starting process that is supposed to proceed without external input.
In computer science, bootstrapping is the technique for producing a self-compiling compiler — that is, compiler (or assembler) written in the source programming language that it intends to compile.
C (as in the letter ''c'') is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.
The C preprocessor or cpp is the macro preprocessor for the C and C++ computer programming languages.
C# (/si: ʃɑːrp/) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.
In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language.
Clojure (like "closure") is a dialect of the Lisp programming language.
Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles.
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).
Component-based software engineering (CBSE), also called as component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system.
A computer program is a collection of instructions for performing a specific task that is designed to solve a specific class of problems.
Computer programming is the process of building and designing an executable computer program for accomplishing a specific computing task.
Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.
A computer virus is a type of malicious software program ("malware") that, when executed, replicates itself by modifying other computer programs and inserting its own code.
A computing platform or digital platform is the environment in which a piece of software is executed.
A conditional assembly language is that part of an assembly language used to write macros.
In computer science and computer programming, a continuation is an abstract representation of the control state of a computer program.
In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated.
A domain-specific language (DSL) is a computer language specialized to a particular application domain.
Dylan is a multi-paradigm programming language that includes support for functional and object-oriented programming, and is dynamic and reflective while providing a programming model designed to support efficient machine code generation, including fine-grained control over dynamic and static behaviors.
Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine (BEAM).
Emacs is a family of text editors that are characterized by their extensibility.
In proprietary software, an end-user license agreement (EULA) or software license agreement is the contract between the licensor and purchaser, establishing the purchaser's right to use the software.
In computer science, extended Backus-Naur form (EBNF) is a family of metasyntax notations, any of which can be used to express a context-free grammar.
Extensible programming is a term used in computer science to describe a style of computer programming that focuses on mechanisms to extend the programming language, compiler and runtime environment.
In Lisp programming languages, a fexpr is a function whose operands are passed to it without being evaluated.
Frame technology (FT) is a language-neutral (i.e., processes various languages) system that manufactures custom software from reusable, machine-adaptable building blocks, called frames.
A general-purpose macro processor or general purpose preprocessor is a macro processor that is not tied to or integrated with a particular language or piece of software.
Greek (Modern Greek: ελληνικά, elliniká, "Greek", ελληνική γλώσσα, ellinikí glóssa, "Greek language") is an independent branch of the Indo-European family of languages, native to Greece and other parts of the Eastern Mediterranean and the Black Sea.
Haxe is a high-level cross-platform multi-paradigm programming language and compiler that can produce applications and source code, for many different computing platforms, from one code-base.
Hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers.
ISLISP (also capitalized as ISLisp) is a programming language in the LISP family standardized by ISO working group ISO/IEC JTC 1/SC 22/WG 16 (commonly referred to simply as SC22/WG16 or WG16).
Julia is a high-level dynamic programming language designed to address the needs of high-performance numerical analysis and computational science, without the typical need of separate compilation to be fast, while also being effective for general-purpose programming, web use or as a specification language.
In programming language theory, lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing).
In computer science, lexical analysis, lexing or tokenization is the process of converting a sequence of characters (such as in a computer program or web page) into a sequence of tokens (strings with an assigned and thus identified meaning).
Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation.
Loop unrolling, also known as loop unwinding, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of its binary size, which is an approach known as space–time tradeoff.
m4 is a general-purpose macro processor included in all UNIX-like operating systems, and is a component of the POSIX standard.
A macro instruction is a line of computer program coding that results in one or more lines of program coding in the target programming language, sets variables for use by other statements, etc.
A macro recorder is a piece of software that records user actions for playback at a later time.
In computing terminology, a macro virus is a virus that is written in a macro language: a programming language which is embedded inside a software application (e.g., word processors and spreadsheet applications).
MacroML is an experimental programming language based on the ML programming language family that seeks to reconcile ML's static typing systems, and the types of macro systems more commonly found in dynamically typed languages like Scheme; this reconciliation is difficult as macro transformations are typically Turing-complete and so can break the type safety guarantees static typing is supposed to provide.
Massively multiplayer online role-playing games (MMORPGs) are a combination of role-playing video games and massively multiplayer online games in which a very large number of players interact with one another within a virtual world.
Matthias Felleisen is a German-American computer science professor and author.
Metaprogramming is a programming technique in which computer programs have the ability to treat programs as their data.
Microsoft Corporation (abbreviated as MS) is an American multinational technology company with headquarters in Redmond, Washington.
Microsoft Office is a family of client software, server software, and services developed by Microsoft.
ML/1 (Macro Language/One) is a powerful general purpose macro processor.
Modular programming is a software design technique that emphasizes separating the functionality of a programme into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
Nemerle is a general-purpose high-level statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono).
nroff (short for "new roff") is a Unix text-formatting program.
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.
A pattern is a discernible regularity in the world or in a manmade design.
The Portable Document Format (PDF) is a file format developed in the 1990s to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems.
PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language designed for Web development, but also used as a general-purpose programming language.
PL/I (Programming Language One, pronounced) is a procedural, imperative computer programming language designed for scientific, engineering, business and system programming uses.
In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program.
Procedural programming is a programming paradigm, derived from structured programming, based upon the concept of the procedure call.
In computer science, programming by demonstration (PbD) is an end-user development technique for teaching a computer or a robot new behaviors by demonstrating the task to transfer directly instead of programming it through machine commands.
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics.
Python is an interpreted high-level programming language for general-purpose programming.
Racket (formerly PLT Scheme) is a general-purpose, multi-paradigm programming language in the Lisp-Scheme family.
Referential transparency and referential opacity are properties of parts of computer programs.
In computer science, reflection is the ability of a computer program to examine, introspect, and modify its own structure and behavior at runtime.
A regular expression, regex or regexp (sometimes called a rational expression) is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern.
Rust is a systems programming language sponsored by Mozilla which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms.
In computing, s-expressions, sexprs or sexps (for "symbolic expression") are a notation for nested list (tree-structured) data, invented for and popularized by the programming language Lisp, which uses them for source code as well as data.
SAM76 is a macro programming language used from the late 1970s to the present 2007 initially ran on CP/M.
Scala is a general-purpose programming language providing support for functional programming and a strong static type system.
Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.
A screenplay or script is a written work by screenwriters for a film, video game, or television program.
A scripting or script language is a programming language that supports scripts: programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator.
SmartKey was the first macro processing program of its type, and the first TSR or terminate and stay resident program for PCs and CP/M microcomputers, their eight bit predecessors.
SMX (from Server Macro Expansion) is a macro processing language designed to embed macros in web pages.
A spreadsheet is an interactive computer application for organization, analysis and storage of data in tabular form.
A function f is said to be strict if, when applied to a non-terminating expression, it also fails to terminate.
In computer programming, string interpolation (or variable interpolation, variable substitution, or variable expansion) is the process of evaluating a string literal containing one or more placeholders, yielding a result in which the placeholders are replaced with their corresponding values.
TECO (Tee'koh /), Text Editor & COrrector"A powerful and sophisticated text editor, TECO (Text Editor and Corrector)...
The Template Attribute Language (TAL) is a templating language used to generate dynamic HTML and XML pages.
Regarding computers, a terminate and stay resident program (commonly referred to by the initialism TSR) is a computer program that uses a system call in DOS operating systems to return control of the computer to the operating system, as though the program has quit, but stays resident in computer memory so it can be reactivated by a hardware or software interrupt.
TeX (see below), stylized within the system as TeX, is a typesetting system (or "formatting system") designed and mostly written by Donald Knuth and released in 1978.
TRAC (for Text Reckoning And Compiling) Language is a programming language developed between 1959-1964 by Calvin Mooers and implemented on a PDP-10 in 1964 by L. Peter Deutsch.
troff is the major component of a document processing system developed by AT&T Corporation for the Unix operating system.
In programming languages, a type system is a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions or modules.
vi is a screen-oriented text editor originally created for the Unix operating system.
Vim ("Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a capital, since it's a name, again like Jim." a contraction of Vi IMproved) is a clone, with additions, of Bill Joy's vi text editor program for Unix.
Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6, which was discontinued in 2008, and its associated integrated development environment (IDE).
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems.
A word processor is a computer program or device that provides for input, editing, formatting and output of text, often plus other features.
Keyboard macro, Lisp macro, Lisp macros, Macro (programming), Macro expansion, Macro language, Macro programming, Macro programming language, Macro substitution, Macroing, Procedural macros, Software macro, Syntactic macro.