homoiconic

From homo- (“self-”) + iconic (“representing”).

prefix

Instead, the homoiconic paradigm draws from the mathematics of computability theory. […] In the case of a homoiconic programming language, the program processes itself, performing mechanical reductions on the application until there is nothing left except the answer.

2015, Robert Fischer, Java Closures and Lambda, Apress, →ISBN, page 190:

Clojure and other languages from the Lisp family are homoiconic. In a homoiconic language, the source code of a program is represented as a plain data structure.

2017, Eduardo Diaz, Shantanu Kumar, Akhil Wali, Clojure: High Performance JVM Programming, Packt Publishing Ltd, →ISBN, page 392:

(programming, of a language) Exhibiting homoiconicity.


metaprogramming

(programming) The writing of computer programs that write or manipulate other programs or themselves as their data, or that perform part of the task during runtime that would otherwise be performed during compile time.


traversable

Additions: Methods that append two traversables together.

2018, Vikash Sharma, Learning Scala Programming, page 93:

(programming) Any object that can be navigated by traversal.


dereferenceable

The assertions check that all conditions required of a dereferenceable iterator are satisfied […]

2003, Jeremy Gibbons, Johan Jeuring, Generic Programming:


ternary operator

en-noun

ternary operator (plural ternary operators)

programming language
programming language

(programming) An operator taking three operands, specifically the operator ?: used in many programming languages to select one of two values depending on a third value.


multimap

(programming) A data structure that maps a single key to multiple values.


refactorable

In addition, purity and polymorphism encourage a style of code that is modular, refactorable, and testable.

2008, Bryan O'Sullivan, Donald Bruce Stewart, John Goerzen, Real World Haskell:

(programming) That can be refactored; that is suited to refactoring.


subtyping

subtyping (countable and uncountable, plural subtypings)

(programming) A form of type polymorphism in which an instance of a subtype can be used anywhere the supertype could be used, without changing the code.


multiprogram

(programming) Having or employing multiple programs simultaneously


call-by-value

(programming) An evaluation strategy in which the arguments to a function are evaluated first, and the result is passed into the function.


call-by-reference

(programming) An evaluation strategy in which the arguments to a function are evaluated first, and a pointer to the result is passed to the function.


call-by-name

(programming) An evaluation strategy whereby an argument to a function is evaluated each time its value is used in the function, and is not evaluated at all if its value is never used.


call-by-need

(programming) An evaluation strategy in which the arguments to a function are evaluated the first time they are used in that function.


call-by-future

(programming) An evaluation strategy in which the arguments to a function are evaluated concurrently with the function body.


oversubscription

oversubscription (countable and uncountable, plural oversubscriptions)

This paper explores thread oversubscription, i.e., provisioning more threads than the available cores, to exploit CPU elasticity in the cloud.

2021, Hang Huang, Jia Rao, Song Wu, Hai Jin, Hong Jiang, “Towards Exploiting CPU Elasticity via Efficient Thread Oversubscription”, in Proceedings of the 30th International Symposium on High-Performance Parallel and Distributed Computing (HPDC '21), New York, NY, USA: Association for Computing Machinery, →DOI, →ISBN, pages 215–226:

(programming) A multithreading technique involving an extra thread that runs tasks when all other threads are blocked.


smash the stack

en-verb

smash the stack (third-person singular simple present smashes the stack, present participle smashing the stack, simple past and past participle smashed the stack)

smashes the stack (present singular third-person)
smashing the stack (participle present)
smashed the stack (participle past)
smashed the stack (past)

There's something interesting about this approach — we haven't smashed the stack, so some mechanisms that might guard the stack won't notice...

2003, Michael Howard, David LeBlanc, Writing Secure Code:

We first wrote a vulnerable DLL and our own exploit code, and checked that the exploit smashes the stack.

2004, Yves Deswarte, Frederic Cuppens, Sushil Jajodia, Lingyu Wang, Security and Protection in Information Processing Systems:

[…] which in turn smashed the stack with a new return address that the author hoped would point into the buffer and eventually hit the shellcode within it.

2005, Peter Szor, The art of computer virus research and defense:

(informal, programming) To corrupt the call stack, causing execution to jump to a random address, sometimes used as a malicious attack on a system.


retarget

retarget (third-person singular simple present retargets, present participle retargeting or retargetting, simple past and past participle retargeted or retargetted)

retargets (present singular third-person)
retargeting (participle present)
retargetting (participle present)
retargeted (participle past)
retargeted (past)
retargetted (participle past)
retargetted (past)

(transitive, programming) To adapt so as to run on a different platform.


first-chance exception

en-noun

first-chance exception (plural first-chance exceptions)

At this stage, the exception is considered a first-chance exception. Checking the checkbox in the Thrown column forces the debugger to intervene...

2006, Jay Hilyard, Stephen Teilhet, C# Cookbook:

Here getting Early Crash Dump when a first-chance exception happens can help in component identification before corruption starts spreading across data.

2008, Dmitry Vostokov, Memory Dump Analysis Anthology, Volume 1:

(programming) An exception (error condition) when handled by a debugger, such that the programmer has the first chance to study it; such an exception would otherwise proceed to a handler or (in its absence) crash the program.


subexpression

The third part of the regular expression, \1, is the backreference and tells ColdFusion to refer back to the first subexpression[…]

2003, Rob Brooks-Bilson, Programming ColdFusion MX:

Something to note that's shared between all subexpressions (as well as scriptblocks) is that the end of a line does not terminate the subexpression.

2020 February 24, “Handling PowerShell's Versatile Subexpressions”, in Clear-Script:

(mathematics, programming) An expression that is a part of a larger expression.

podvýraz

expression that is a part of a larger one


pretty-print

en-verb

pretty-print (third-person singular simple present pretty-prints, present participle pretty-printing, simple past and past participle pretty-printed)

pretty-prints (present singular third-person)
pretty-printing (participle present)
pretty-printed (participle past)
pretty-printed (past)
prettyprint (alternative)

LL-Q1860 (eng)-Flame, not lame-pretty-print.wav

(programming, transitive) To display code in a pretty fashion, matching commonly accepted principles of formatting and syntax, for the sake of readability.


pointerlike

en-adj

pointerlike (comparative more pointerlike, superlative most pointerlike)

more pointerlike (comparative)
most pointerlike (superlative)

You must resist the temptation to implement basic data structures such as linked lists and trees just because a pointerlike capability is available.

1997, Sriram Srinivasan, Advanced Perl programming:

(computing, programming) Like a pointer (variable holding a memory address).


static binding

(programming) A form of binding that occurs before the program is run, typically at compile time.


dynamic binding

(programming) A form of binding that occurs at runtime, such as the resolution of a virtual method call to a specific subclass's implementation.


throwable

For an object to be throwable, it must be directly or indirectly derived from the Throwable class.

1997, Babak Sadr, Grady Booch, Unified objects: object-oriented programming using C++:

In general, each function may specify a list of throwable objects […]

2001, Alan Burns, Andrew J Wellings, Real-time systems and programming languages:

[…] if you need to make certain symbols visible externally for debugging purposes or for catching exceptions for throwable entities within a library.

2006, William Von Hagen, The definitive guide to GCC:

(programming) Capable of being thrown in the manner of an exception.


throwable

Exceptions are thrown when some module of the project detects an error condition or if it handles some standard Java throwables.

(programming) Any object that can be thrown in the manner of an exception.


duck typing

From the so-called duck test: “if it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.”

Ruby proponents call this duck typing::^([sic]) if the variable responds to a message that asks it to quack like a duck and it quacks, it must be a duck. This is clearly different from the way that Java (and other strongly typed languages) work, […]

2006, Neal Ford, Scott Davis, No Fluff, Just Stuff Anthology: The 2006 Edition, page 16:

(programming) A style of dynamic typing in which an object's current set of methods and properties determines the valid semantics, rather than its inheritance from a particular class or implementation of a specific interface.


threadsafe

Only a few collection classes are threadsafe. As we'll see later, being threadsafe does not necessarily mean that you can safely use them in every multithreaded program.

2004, Scott Oaks, Henry Wong, Java threads:

SessionFactory objects are threadsafe, so it is not necessary to obtain one for each thread.

2006, Dave Minter, Jeff Linwood, Beginning Hibernate: From Novice to Professional:

(computing, programming) That can be safely accessed from multiple threads.


pair programming

(computing, programming) A software development technique, part of extreme programming, in which two programmers work together at a single keyboard, one coding while the other observes and reviews. The roles are often switched at regular intervals.


obj

(grammar, programming) Abbreviation of object.


struct

Abbreviation of structure, used as a keyword in the C programming language and its descendants.

Note that because structs are value types, the new operator does not work in the same way as it does for classes and other reference types.

2005, Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson, Morgan Skinner, Allen Jones, Professional C# 2005, John Wiley & Sons, →ISBN, page 103:

Like most object-oriented languages, including Objective-C, Swift supports two basic object-oriented data structures: classes and structs.

2015, Michael Dippery, Professional Swift, John Wiley & Sons, →ISBN, page 62:

(computing, programming) A data structure, especially one that serves to group a number of fields (in contrast to an object-oriented class with methods) or one that is passed by value rather than by reference.


noninterface

(computing, programming) Not an interface, or not belonging or relating to one.


enum

Clipping of enumeration, used as a keyword in the C programming language and its descendants.

Enums allow you to define a type made up of a finite set of identifiers, with each identifier mapping to an integer.

2007, Robert Pickering, Foundations of F#:

The Access object model contains many enums that you can use in your applications.

2007, Teresa Hennig, Rob Cooper, Geoffrey L Griffith, Armen Stein, Access 2007 VBA Programmer's Reference:

A unique feature of enums is that when you switch on a variable of an enum type, you do not prefix the case statements […]

2009, Richard F Raposa, SCJP: Sun Certified Programmer for Java Platform (Exam CX-310-065):


keymask

(computing, programming) A bitmask specifying which keypresses were made.


HLL

high-level language
high-level language#English

(programming) Initialism of high-level language.


low-level language

en-noun

low-level language (plural low-level languages)

computer architecture
computer architecture

(programming) A computer language whose source code is a somewhat user-friendly version of a particular computer architecture's assembly language, containing no provisions for portability between architectures.

matalan tason kieli

computer language whose source code is a somewhat user-friendly version of a computer architecture's assembly language


str

(programming) Abbreviation of string (“sequence of text characters”).


negative indexing

(programming) The use of a negative integer as an array offset to access from the end of the array. Array[-3] accesses the 3ʳᵈ element from the end of the array, the same as Array[ArraySize - 3].


STL

Standard Template Library
w:Standard Template Library

(computing, programming) Initialism of Standard Template Library, a set of algorithms and data structures for C++.


templatize

en-verb

templatize (third-person singular simple present templatizes, present participle templatizing, simple past and past participle templatized)

templatizes (present singular third-person)
templatizing (participle present)
templatized (participle past)
templatized (past)
templatise (alternative UK)

To ensure a professional-looking product and fewer hassles, take the first step and 'templatize' your pattern pieces.

1979 November 12, Kathy Faryon, “Patchwork Quilting”, in Edmonton Journal, →ISSN, page B6:

For our final look at metaprogramming, we templatize matrix multiplication.

2000, Mark A DeLoura, Game programming gems:

We must templatize the engine with the base types of the two arguments (left-hand side and right-hand side).

2001, Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied:

This makes it trivial to templatize your application; changes to the new generic base form automatically cascade to the derived classes at the next build.

2004, Chris Sells, Justin Gehtland, Windows Forms programming in Visual Basic.NET:

An iterator is a generalization of a pointer and we could templatize the code to work off any iterator.

2008, Mark S Joshi, C++ Design Patterns and Derivatives Pricing:

(transitive, especially computing and programming) To convert into a template or to represent by means of a template, for purposes of genericizing, automating, tracking, etc.


const correctness

From const (a keyword for constant in the C programming language and its derivatives) and correctness.

(programming) The proper declaration of objects as immutable in contexts where they are not expected to be modified.


SML

(programming) Initialism of Standard ML, a functional, modular programming language.


redimension

redimension (third-person singular simple present redimensions, present participle redimensioning, simple past and past participle redimensioned)

redimensions (present singular third-person)
redimensioning (participle present)
redimensioned (participle past)
redimensioned (past)

(transitive, programming) To resize (an array or similar data structure) so as to change its dimensionality; to reallocate.


remoting

The remoting infrastructure supports multiple activation models...

2002, Ben Albahari, Peter Drayton, Brad Merrill, C# essentials:

A number of different remoting styles are used in today's middleware systems.

2004, Markus Völter, Michael Kircher, Uwe Zdun, Remoting patterns:

Java provides innate support for a good selection of remoting mechanisms...

2007, Dave Minter, Steven Devijver, Beginning Spring 2: From Novice to Professional:

(computing, programming) A technology that allows a program to interact with the internals of another program running on a different machine.


tbyte

(programming) An 80-bit (10-byte) integer.


bool

From a keyword in C++ and derived programming languages, short for Boolean.

The base class BitArray acts just like a normal C++ array of bools, although you are of course free to interpret the bits as integers […]

With an automatic conversion, bools will interfere with overload resolution […]

Listing 7-11 shows an example where the initial data type is string, but I will obtain its value as a bool.

2007, Joseph C Rattz, Pro LINQ: Language Integrated Query in C# 2008:

(programming) A Boolean variable (one whose value is either true or false).


static typing

(programming) A system in which typechecking is performed during compilation and not at run time, opposed to dynamic typing.

statische Typisierung

in programming: type checking at compile time


dynamic typing

(programming) A system in which typechecking is performed at run time and not at compilation, opposed to static typing.

dynamische Typisierung

in programming: type checking performed at run time


bivariant

(programming) Both covariant and contravariant.


uint

(programming) Abbreviation of unsigned integer.


pointerless

We will see, however, that the pointerless techniques are seldom satisfactory. Implementations of trees tend to be more complex than those of ordered lists.

1989, Allen Kent, James G Williams, Rosalind Kent, Encyclopedia of Microcomputers: Volume 4:

The list representation is a pointerless representation that facilitates sequential access but is inefficient for random access to specific image elements.

1992, Giorgio Gambosi, Michel O Scholl, Hans-Werner Six, Geographic database management systems: workshop proceedings, Capri, Italy:

But we can't use function pointers as we would in C++, and not just for the ideological reason that it doesn't enter into the spirit of the brave new pointerless world of the CLR.

2003, Ian Griffiths, Matthew Adams, .NET Windows forms in a nutshell, page 18:

(computing, programming) Without the use of pointers.


counterless

a counterless loop

(programming) Without a variable used to keep count.


undeclare

undeclare (third-person singular simple present undeclares, present participle undeclaring, simple past and past participle undeclared)

undeclares (present singular third-person)
undeclaring (participle present)
undeclared (participle past)
undeclared (past)

(transitive, programming) To revoke the declaration of (a variable, namespace, etc.) so that it is no longer available.


initializer

initializers (plural)
initialiser (alternative)

Since C++11, the auto keyword is used to tell the compiler to deduce the actual type of a variable that is being declared from its initializer.

2017, Wisnu Anggoro, Learning C++ Functional Programming, page 8:

(programming) A routine that prepares something for use.


postcondition

(programming) A condition that must be met immediately after execution of some piece of code.


MVC

software architecture
software architecture

architectural pattern
architectural pattern

(software architecture) Initialism of model-view-controller, an architectural pattern used in software development.


uncastable

en-adj

uncastable (comparative more uncastable, superlative most uncastable)

more uncastable (comparative)
most uncastable (superlative)

They're strongly typed, uncastable pointers […]

2000, Larry Wall, Tom Christiansen, Jon Orwant, Programming Perl:

(computing, programming) That cannot be cast (converted to other data types).


mutex

Contraction of mutually exclusive or mutual exclusion.

The ability to set a maximum waiting time provides another reason why in some circumstances, you might prefer to use a mutex rather than a lock statement.

2004, Mark Schmidt, Simon Robinson, Microsoft Visual C# .NET 2003, Sams Publishing, →ISBN, page 632:

(programming) An object in a program that serves as a lock, used to negotiate mutual exclusion among threads.


mutex

en-verb

mutex (third-person singular simple present mutexes, present participle mutexing, simple past and past participle mutexed)

mutexes (present singular third-person)
mutexing (participle present)
mutexed (participle past)
mutexed (past)

Or you can have a single pipe that is mutexed so each thread can only write to the pipe exclusively. Alternatively, you can have each thread put the finished fd in a globally mutexed list.

2002, Steve Connet, “Re: best way to interrupt a select() call in a (POSIX) thread?”, in comp.programming.threads (Usenet):

(programming, transitive) To apply a mutex to.


code-behind

object-oriented programming
object-oriented programming

(computing, programming) A technique in object-oriented programming in which the visual and back-end source code are stored in separate files, allowing designers and programmers to work independently. Code-behind is a technique used in Microsoft programming platforms, including ASP.NET and XAML, where the practice is facilitated by separating the visual and code aspects through the use of partial classes.


autoloading

(programming) The capability of loading and linking portions of a program from mass storage automatically when needed.


IDT

en-noun

IDT (countable and uncountable, plural IDTs)

intelligent design
intelligent design#English

(programming, uncountable) Initialism of intelligent design theory.

(programming, countable) Initialism of interrupt descriptor table.


IVT

(programming) Initialism of interrupt vector table.


lvalue

From L + value, where L stands for left-hand side (of an assignment). In the context of the C programming language it is sometimes re-explained as locator value.

(programming) A value that can be treated as an address or storage location.


rvalue

As for lvalue, but using r for right-hand side.

(programming) Any value that is not an lvalue.


clickjacking

Blend of click + hijacking, coined by Jeremiah Grossman and Robert Hansen in 2008.

New 0-Day Browser Exploits Clickjacking - yea, this is bad... Jeremiah Grossman & Robert "RSnake" Hansen

2008 September 12, Jeremiah Grossman, Robert Hansen, “OWASP NYC AppSec 2008 Conference”, in OWASP, archived from the original on 2016-09-13:

Clickjacking, however, evades the need for this cross domain reading, and instead directly places the mouse over the target area to click on the link or form that contains the nonce - thereby bypassing the need for client side cross domain read exploitation.

2008 September 12, Robert Hansen, Jeremiah Grossman, “Clickjacking”, in SecTheory - Internet Security Services Internet Security, archived from the original on 2008-10-29:

(computing, web development) A malicious technique whereby part of a webpage is covered by transparent or misleading content that receives the user’s mouse clicks, thus causing them to execute commands they did not intend.


doctype

There are three XHTML 1.0 doctypes available […]

2006, Paul Haine, HTML mastery: semantics, standards, and styling:

Common idiosyncrasies that appear in web pages that don't have doctypes include varying text sizes and varying margin space between elements.

2007, Matthew MacDonald, Beginning ASP.NET 3.5 in C# 2008:

Most Web page editing programs add an appropriate doctype when you create a new Web page […]

2008, David Sawyer McFarland, JavaScript: The Missing Manual:

(programming) A directive that associates an SGML or XML document (such as a webpage) with a Document Type Definition, potentially affecting how it is parsed and rendered.


bitfield

bitfields (plural)
bit field (alternative)

(programming) A sequence of bits (binary digits) which can be toggled individually as flags.


DAWG

directed acyclic word graph
directed acyclic word graph#English

(programming) Initialism of directed acyclic word graph.


multiton

(programming) The class used for the multiton pattern.


multiple inheritance

(programming, object-oriented programming) The ability to inherit from more than one superclass in a single subclass.

vícenásobná dědičnost

in programming: inheriting from multiple superclasses


nonliteral

(programming, logic) That which is not a literal.


uniquid

(programming, in the PHP programming language) A random identifier based on the system time.


nonprimitive

LL-Q1860 (eng)-Flame, not lame-nonprimitive.wav

(programming, computer graphics, geometry) An object that is not a primitive.


monkey patch

monkey patches (plural)
monkeypatch (alternative)
monkey-patch (alternative)

Apparently from earlier guerrilla patch (“code that sneakily changes other code”), understood as gorilla patch. A monkey patch was then a more carefully written instance of such a patch. Or simply derived from monkey (“to mess with”, verb).

(programming slang) A patch which alters the behaviour of a program by forcibly overriding aspects of the original code at runtime.


monkey patch

en-verb

monkey patch (third-person singular simple present monkey patches, present participle monkey patching, simple past and past participle monkey patched)

monkey patches (present singular third-person)
monkey patching (participle present)
monkey patched (participle past)
monkey patched (past)
monkeypatch (alternative)
monkey-patch (alternative)

Even though that works with some browsers, others provide Anchor objects without click() methods. Add this magic code to your application.js, to Monkey Patch a JavaScript click() event:

2007, Philip C. Plumlee, Test Driven Ajax (on Rails):

(programming slang, transitive) To alter the behaviour of a program by forcibly overriding aspects of the original code at runtime.


pointcut

(computing, programming) In aspect-oriented programming, a set of join points specifying when advice should run during execution.


memberwise

If a copy constructor is not defined, a memberwise copy is performed. This means that a copy operation is applied to each data member in turn.

1997, Adrian P Robson, The programmer's guide to C++:

(computing, programming) In terms of members (items associated with class instances).


join point

(programming) In aspect-oriented programming, a point at which advice (additional code) is triggered (a set of these constituting a pointcut).


directed acyclic word graph

en-noun

directed acyclic word graph (plural directed acyclic word graphs)

(programming) A data structure that represents a set of strings and allows for a query operation that tests whether a given string belongs to the set in time proportional to its length (thus more efficient in some situations than a trie).


autoloader

(programming) A software mechanism that automatically locates and loads classes etc. as required at run time.


dead code

Many software projects contain much dead code in the form of deprecated functions.

If the test data is exhaustive you can even locate dead code: program code that is never executed.

2003, Diomidis Spinellis, Code Reading: The Open Source Perspective, Addison-Wesley Professional, →ISBN, page 372:

(programming) A portion of source code that will never be executed as part of the running program.


infinite loop

(programming) A loop which continues indefinitely.


Lisplike

en-adj

Lisplike (comparative more Lisplike, superlative most Lisplike)

more Lisplike (comparative)
most Lisplike (superlative)

(programming) Resembling or characteristic of the programming language Lisp.


frob

en-verb

frob (third-person singular simple present frobs, present participle frobbing, simple past and past participle frobbed)

frobs (present singular third-person)
frobbing (participle present)
frobbed (participle past)
frobbed (past)

Clipping of frobnicate, from frobnitz, coined circa 1958 by David R. Sawyer of the MIT Tech Model Railroad Club (TMRC). Year of origin uncertain, and could be 1958–1981: frob is not listed in the TMRC dictionaries of 1959 or 1960, and is first listed in the Jargon File (1981 edition), so it may date from the 1960s or 1970s. Possibly variant of or influenced by frotsus (“a protruding arm or trunnion”), which is listed in TMRC 1959 and 1960.

(programming, Linux, Gnu C) To transform and obscure in a trivial fashion with memfrob(3).


goroutine

From Go (“programming language”) + routine, to rhyme with coroutine.

Exercise 14.8: Starting from the Fibonacci-program in Listing 6.10, make a solution which isolates the calculation of the Fibonacci-terms in a goroutine, which sends these results on a channel. Close the channel when finished.

2012, Ivo Balbaert, The Way to Go, page 406:

(programming) A lightweight communicating process in the Go programming language.


tight loop

(programming) A loop which contains few instructions and iterates many times.

(programming) Such a loop which heavily uses I/O or processing resources, failing to adequately share them with other programs running in the operating system.


critical section

en-noun

critical section (plural critical sections)

The instructions between a lock and an unlock form a critical section.

2011, Ganesh Gopalakrishnan, Shaz Qadeer, Computer Aided Verification: 23rd International Conference:

(programming) A piece of code that accesses a shared resource that must not be concurrently accessed by more than one thread of execution.


RAII

With RAII, the closing action cannot be skipped or bypassed, even if the function exits the scope prematurely with an early return or by throwing an exception.

2019, Fedor G. Pikus, Hands-On Design Patterns with C++, page 469:

(programming) Initialism of Resource Acquisition Is Initialization, a popular design pattern in object-oriented programming that ties resources to the lifespan of associated objects to prevent resource leakage.

CADRe

Constructor Acquires, Destructor Releases


JAPH

(computing, programming) A program written in Perl that outputs the text Just another Perl hacker, usually programmed in an obfuscated manner so that the output is not obvious until it is run.


KLOC

From K (“thousand”) + LOC (“lines of code”).

The formula is based on thousands of lines of source code (kLOC) and incorporates Fagan's recommendations for inspection pace, meeting duration, and frequency:
elapsed time (in days) = 3 × n kLOC
Here n is an estimate of how many thousands of lines of code will be inspected.

1991, Glen W. Russell, Experience with Inspection in Ultralarge-Scale Developments (Bell-Northern Research)

It concludes that defects are found 2 to 4 times faster with inspection than with testing, that defects are typically found at the rate of one defect per man hour invested in inspection, and that inspection finds about 37 defects per kloc if it is done properly.

1993, Terry Shepard in Proceedings of the National Workshop on Software Engineering Education (IBM Canada)

In IBM there's a religion in software that says you have to count KLOCs, and a KLOC is a thousand line of code.

1996, Steve Ballmer in Triumph of the Nerds II: Riding the Bear (Robert X. Cringely, Paul Sen), about 38 minutes in, relating events around 1989

(computing, programming) Abbreviation of thousand lines of code.


BCPL

Programming Language
programming language#English

(programming) Initialism of Basic Combined Programming Language: a programming language of the 1960s intended for writing compilers and on which the later language C was based.


MFC

Microsoft Foundation Classes
w:Microsoft Foundation Classes

(programming) Initialism of Microsoft Foundation Classes.


strong typing

(computing, programming) A system that places any of various kinds of restriction on the interactions between objects of different data types.


subarray

(programming) A contiguous subset of an array.


variadic

/vɛəɹiˈædɪk/

C's printf is one of the most widely used variadic functions.

There are some functions and predicates which we tend to think of as being able to take any number of parameters – of being of variable arity or variadic.

1983, Alan Bundy, The Computer Modelling of Mathematical Reasoning, Academic Press, page 48:

The variadic functions that increase the valence of the input relation through the addition of a circumstance to the set of its argument-roles can be represented by means of an operator (or rather, a family of operators) ‘Circ’.

2004, François Récanati, Literal Meaning, Cambridge University Press, →ISBN, page 109:

However, the real max procedure of Scheme is a variadic procedure, which means that it accepts any positive number of arguments: ¶ (max 5 1 3 8 9 7 2 6 4) => 9

2006, Nils M. Holm, Sketchy LISP: An Introduction to Functional Programming in Scheme, 2nd edition, Lulu.com, →ISBN, page 53:

(programming, mathematics, linguistics) Taking a variable number of arguments; especially, taking arbitrarily many arguments.

prinimajuščij peremennoje čisló parametrov

принимающий переменное число́ параметров

each variadic argument

(programming) Belonging to a variadic function.


variadic

/vɛəɹiˈædɪk/

PHP 5.6 introduced variadics that explicitly accept a variable number of parameters.

2017, Andrew Beak, PHP 7 Zend Certification Study Guide, page 44:

(programming) A function that takes a variable number of arguments.


metacircular

en-adj

metacircular (comparative more metacircular, superlative most metacircular)

more metacircular (comparative)
most metacircular (superlative)

(computing, programming) Exhibiting metacircularity.


minify

en-verb

minify (third-person singular simple present minifies, present participle minifying, simple past and past participle minified)

minifies (present singular third-person)
minifying (participle present)
minified (participle past)
minified (past)

LL-Q1860 (eng)-Flame, not lame-minify.wav

When code is minified, all comments are removed, as well as unneeded whitespace characters (space, newline, and tab).

2008, Steve Souders, High Performance Web Sites: Essential Knowledge for Front-End Engineers,, O'Reilly, page 69:

(programming) To remove white space and unnecessary characters from source code in order to reduce its size.


read-eval-print loop

en-noun

read–eval–print loop (plural read-eval-print loops)

read–eval–print loop (canonical)
read-eval-print loops (plural)

It is easier to experiment in languages that provide a read-eval-print loop.

(programming) An interactive programming language interpreter.


mark and sweep

(programming) A form of garbage collection in which every accessible object in memory is flagged, leaving unflagged only those that are no longer reachable and can thus be discarded.


unswizzle

en-verb

unswizzle (third-person singular simple present unswizzles, present participle unswizzling, simple past and past participle unswizzled)

unswizzles (present singular third-person)
unswizzling (participle present)
unswizzled (participle past)
unswizzled (past)

(programming, transitive) To convert memory-dependent pointers to portable symbols or positions during serialization.


LGTM

tlb

(informal, originally programming jargon)

Said to have originated within Google, early 2000s, originally to give positive feedback on other people's work in a code review.

The primary end goal of a code review is to get another engineer to consent to the change, which we denote by tagging the change as “looks good to me” (LGTM). We use this LGTM as a necessary permissions “bit” (combined with the other bits noted below) to allow the change to be committed.

2020, Titus Winters, Tom Manshreck, Hyrum Wright, “Code Review”, in Software Engineering at Google […] , O'Reilly, →ISBN:


waker

From Middle English wakere, equivalent to wake + -er. Compare West Frisian wekker (“alarm clock”, literally “waker”), Dutch wekker, German Wecker.

cog

(programming) In the Rust programming language, a handle that "wakes up" a task by notifying its executor that it is ready to be run.


vtable

Shortening of virtual method table or virtual function table.

This solution allows the Command executor to iterate through a collection of unrelated objects with no vtables and pick out the right method for each one.

Note that nonvirtual functions do not appear in a vtable.

2003, John C. Mitchell, Concepts in programming languages:

The most likely result will be a crash when the code tries to use a vtable entry that contains random garbage.

2003, Steve Heller, C++: a dialogue: programming with the C++ standard library:

(programming) A table of memory pointers to different implementations of a virtual function.


awaiter

From Middle English awaytur; equivalent to await + -er.

(programming) An object that waits for the completion of an asynchronous task.


upcall

(programming) A call from a lower-level subsystem, such as a kernel or framework, to a higher-level subsystem, such as user code.


SLOC

(programming) Initialism of source lines of code.


new up

en-verb

new up (third-person singular simple present news up, present participle newing up, simple past and past participle newed up)

news up (present singular third-person)
newing up (participle present)
newed up (participle past)
newed up (past)

The keyword new creates an object in C++ and derived languages.

If an exception occurs trying to new up bar1 or bar2, the TFoo part of the object won't have changed […]

So you just new up the object you want and once its internal reference count drops to 0, the language deletes it (during a free time as a background thread).

2003, Jonathan Hoyle, “Pointers?”, in comp.lang.basic.realbasic (Usenet):

(programming, informal, transitive) To create (an object) by calling its constructor.


metamethod

en-noun

metamethod (countable and uncountable, plural metamethods)

(programming, Lua) A method belonging to a metatable.


metatable

(programming, Lua) A table (of key-value pairs) associated with another object, which uses the functions (or other data) it contains to define the behaviour of that object under certain conditions.


declarator

(programming) A construct in source code that declares something, such as a variable.


pythonic

(programming) Alternative letter-case form of Pythonic (“using the idioms of the Python programming language”).


undefine

en-verb

undefine (third-person singular simple present undefines, present participle undefining, simple past and past participle undefined)

undefines (present singular third-person)
undefining (participle present)
undefined (participle past)
undefined (past)

(programming, transitive) To remove the definition of; to return to an undefined state.


superglobal

LL-Q1860 (eng)-Flame, not lame-superglobal.wav

(computing, programming, in the PHP programming language) Any of a set of special predefined variables that can be accessed at any point in a program without the need to be explicitly declared as global.


blort

en-noun

blort (countable and uncountable, plural blorts)

Onomatopoetic; in sense 1, also blend of blow + snort.

metasyntactic variable
metasyntactic variable#English

(programming, uncountable) A metasyntactic variable similar to foo and bar.


Cheshire cat

the Cheshire cat (canonical)
Cheshire cats (plural)

/ˌtʃɛʃə ˈkat/

/ˌtʃɛʃɚ ˈkæt/

Term attested since at least the 1780s in the expression grin like a Cheshire cat. The reason why Cheshire was combined with cat is disputed: see here for more information.

the Cheshire cat idiom

the Cheshire cat technique

(programming, attributive) A technique that involves hiding a class's data behind a pointer, so that the code remains binary-compatible even after future changes to members and functionality.


JNI

(programming) Initialism of Java Native Interface.


MMAPI

(programming) Initialism of Mobile Media API.


type safety

(programming, software compilation) The extent to which a programming language is type-safe.

tyyppiturvallisuus

the extent to which a programming language is type-safe


deoptimize

en-verb

deoptimize (third-person singular simple present deoptimizes, present participle deoptimizing, simple past and past participle deoptimized)

deoptimizes (present singular third-person)
deoptimizing (participle present)
deoptimized (participle past)
deoptimized (past)

(transitive, programming) To reverse a previous optimization, typically when the assumptions that made it valid prove to be incorrect.


constness

From const (“a keyword for constant in the C programming language and its derivatives”) + -ness.

affix

a keyword for <i class="Latn mention" lang="en">constant</i> in the C programming language and its derivatives

If you want to change a class member inside a const member function, the traditional approach is to cast away constness by saying (X*)this.

1995, Embedded Systems Programming, volume 8, page 180:

(programming) The declaration of variables or objects as immutable.


stackless

(programming) Without the use of a stack (last-in-first-out data structure).


hyperslice

(computing, programming) A set of concerns in aspect-oriented programming.


PAT

en-noun

PAT (countable and uncountable, plural PATs)

Protocols are abstract as they are, but with PATs, you’re making your protocols generic, which makes your code even more abstract and exponentially complex.

2019, Tjeerd in 't Veen, chapter 8, in Swift in Depth, Manning, →ISBN:

(programming) Initialism of protocol associated type.


rule of three

the rule of three (canonical)
the Rule of Three (alternative)

(programming) A rule of thumb in the C++ programming language, stating that any class that defines a destructor, a copy constructor, or a copy assignment operator should define all three of them.


lasagna code

Modeled after spaghetti code, and based on the layered construction of lasagna; coined by Joe Celko in 1982.

(programming, rare) Computer program code characterized by several well-defined and separable layers forming a hierarchy of subsystems.


domain-specific language

domain-specific language (plural domain-specific languages)

(programming) A programming/specification language that is dedicated to a particular problem domain, a particular problem representation/solution technique.

langage dédié

language dedicated to a particular problem domain


cdr

Acronym of contents of the decrement part of register number. Note that it was based on original hardware and has no meaning today.

acronym

The elements of a list are the successive cars along the "cdr chain." That is, the elements are the car, the car of the cdr, the car of the cdr of the cdr, etc.

2000, Matt Kaufmann, Panagiotis Manolios, J Strother Moore, Computer-aided reasoning: an approach:

(programming) The second part of a cons in Lisp. The remainder of a list when the first element is removed.


cadr

If we let x denote the tree (1 2 3), then the car of x is 1, the cdr of x is (2 3), the cadr of x is 2, the caddr of x is 3, and the cdddr of x is nil.

2000, Matt Kaufmann, Panagiotis Manolios, J. Strother Moore, Computer-Aided Reasoning: An Approach:

(programming) Car of the cdr in Lisp. The second element in a list.


caddr

Contraction of car of the cdr of the cdr.

Following the SEL in the control list are two elements (the cadr and caddr of the C list), both of which are themselves lists of instructions.

1991, Peter M. Kogge, The Architecture of Symbolic Computers, page 156:

For example, in a procedure that manipulates a list data stream, we might know that the mode of the car of the list (that is the current message) is the same mode as the cadr (second message), caddr (third message), etc.

1994, Evan Tick, Giancarlo Succi, Implementations of Logic Programming Systems, →ISBN, page 239:

In effect, lazy evaluation would force things to happen in the proper order: The car of output is the first prompt. The cadr of output is the first square, a value that requires evaluation of the car of input. The caddr of output is the second prompt.

2004, Scott, Programming Principles Of Mulltimedia Systems, →ISBN, page 608:

(programming) Car of the cdr of the cdr in Lisp. The third element in a list.


ptr

1993, lbunch, “C++ dynamic array of ptrs”, in comp.sys.mac.oop.macapp3 (Usenet):

1998, Malcolm Watts, “Passing memory ptrs between lib and C++ code ?”, in comp.os.ms-windows.programmer.memory (Usenet):


upvalue

(computing, programming) A free variable that has been bound (closed over) with a closure.


double precision

(programming) A number storage format that uses two adjacent locations in memory, allowing for greater precision in the values stored.


tickable

A tick is an event that occurs for every N low-level tickable statements executed by the parser within the declare block.

2017, Branko Ajzele, Mastering PHP 7, page 143:

(programming, PHP) Of a program instruction: counted for the purpose of generating periodic signals every few instructions.


JAXB

(programming) Initialism of Jakarta XML Binding.

(programming, dated) Initialism of Java Architecture for XML Binding.


MinGW

(programming) Acronym of Minimalist GNU for Windows.


analyst programmer

en-noun

analyst programmer (plural analyst programmers)

A computer programmer who also does the work of a systems analyst.


antibugging

They were convinced that the error-checking and antibugging that I was suggesting would far exceed the capacity of their machine.

1975, Edward Yourdon, Techniques of program structure and design:

(programming) The strategy of writing code so as to minimise the possibility of error.


VHLL

(programming) Initialism of very high-level language.


unpickle

en-verb

unpickle (third-person singular simple present unpickles, present participle unpickling, simple past and past participle unpickled)

unpickles (present singular third-person)
unpickling (participle present)
unpickled (participle past)
unpickled (past)

To reconstruct the message, the receiver must strip the length header, read the entire message, unpickle the contents, and call logging.makeLogRecord().

2009, David M. Beazley, Python essential reference, page 362:

(transitive, programming, in the Python programming language) To deserialize.


dispatch table

(programming) A table of pointers to functions or methods, commonly used to implement dynamic binding.


unbless

unbless (third-person singular simple present unblesses, present participle unblessing, simple past and past participle unblessed)

unblesses (present singular third-person)
unblessing (participle present)
unblessed (participle past)
unblessed (past)

(transitive, computing, programming, Perl) To convert (a previously blessed object) back to a simple reference.


embarrassingly parallel

en-adj

embarrassingly parallel (comparative more embarrassingly parallel, superlative most embarrassingly parallel)

more embarrassingly parallel (comparative)
most embarrassingly parallel (superlative)

/ɪmˌbæɹəsɪŋli ˈpæɹəlɛl/

/əmˈbɛɹəsɪŋli ˈpɛɹəˌlɛl/

From embarrassingly (in the sense of being embarrassingly or extremely easy) + parallel.

We call such applications "embarrassingly parallel" to emphasize the fact that, while there is a high degree of parallelism and it is possible to make efficient use of many processors, the granularity is large enough that no cooperation between the processors is required within the matrix computations.

1986, Cleve Moler, “Matrix Computation on Distributed Memory Multiprocessors”, in Michael T[homas] Heath, editor, Hypercube Multiprocessors 1986, Philadelphia, Pa.: Society for Industrial and Applied Mathematics, →ISBN, part IV (Numerical Computations), page 182:

In the product algorithm, in fact, only one arithmetic operation, a multiplication, is required, so with a sufficient number of processors it executes in constant time regardless of the degree of the result. […] This is the "embarrassingly parallel" aspect of the algorithms: doing this part in parallel is so trivial it's hardly worth mentioning.

1992, Dennis Weeks, “Embarrassingly Parallel Algorithms for Algebraic Number Arithmetic”, in Richard E. Zippel, editor, Computer Algebra and Parallelism: Second International Workshop, Ithaca, USA, May 9–11, 1990: Proceedings (Lecture Notes in Computer Science; 584), Berlin; Heidelberg, Baden-Württemberg: Springer-Verlag, →ISBN, page 63:

Both of the example applications we've looked at here would be considered embarrassingly parallel. […] By contrast, most parallel sorting algorithms require a great deal of interaction. For instance, consider merge sort, a common method of sorting numbers. It breaks the vector to be sorted into two (or more) independent parts, say the left half and right half, which are then sorted in parallel by two processes. So far, this is embarrassingly parallel, at least after the vector is divided in half. But then the two sorted halves must be merged to produce the sorted version of the original vector, and that process is not embarrassingly parallel.

2011, Norman Matloff, “Parallel R”, in The Art of R Programming: A Tour of Statistical Software Design, San Francisco, Calif.: No Starch Press, →ISBN, page 347:

We develop a parallel variational inference (VI) procedure for use in data-distributed settings, where each machine only has access to a subset of data and runs VI independently, without communicating with other machines. […] [W]e make use of the recently proposed nonparametric VI to facilitate an embarrassingly parallel VI procedure that can be applied to a wider scope of models, including to nonconjugate models. We derive our embarrassingly parallel VI algorithm, analyze our method theoretically, and demonstrate our method empirically on a few nonconjugate models.

2015 October 14, Willie Neiswanger, Chong Wang, Eric Xing, “Embarrassingly Parallel Variational Inference in Nonconjugate Models”, in arXiv, Ithaca, N.Y.: Cornell University, →DOI, →ISSN, →OCLC, abstract:

(programming, parallel computing, of a particular problem) Very easy to separate into a number of parallel tasks.

過易並行 /过易并行

in parallel computing, of a particular problem: very easy to separate into a number of parallel tasks


C`num`

Inspired by the sharp symbol in musical notation. Also chosen because this symbol resembles four connected + symbols; see etymology for C++.

VBers may find the syntax of C# a bit unpalatable.

2008, Andrew Troelsen, Visual Basic .NET and the .NET Platform: An Advanced Guide, page XVIII:

(programming) An object-oriented programming language, resembling Java in some respects, developed by Microsoft Corporation as part of their .NET Framework initiative.


pre-hook

(computing, programming) A section of code that runs immediately before a hook call.


polyfill

Named with reference to the spackling paste Polyfilla.

A common way to group elements for collective use by JavaScript is to assign them the same (CSS) class and then to use getElementsByClassName(). Possibly with a polyfill for the "certain old browser".

2016 April 17, Stefan Weiss, “A few problems with looping thru a set of elements with the same "name" specifier.”, in comp.lang.javascript (Usenet), message-ID <nf03hk$bll$1@news.albasani.net>:

(web development) A plugin that provides the functionality of newer browsers to older versions.

ポリフィル

plugin that provides functionality of newer browsers


polyfill

en-verb

polyfill (third-person singular simple present polyfills, present participle polyfilling, simple past and past participle polyfilled)

polyfills (present singular third-person)
polyfilling (participle present)
polyfilled (participle past)
polyfilled (past)

See the FAQ. Or polyfill String.prototype.trim() if necessary and just call .trim().

2017 January 17, Thomas 'PointedEars' Lahn, “form sending undefined”, in comp.lang.javascript (Usenet), message-ID <1645793.CQOukoFCf9@PointedEars.de>:

(web development, transitive, intransitive) To create or apply a polyfill.


Common Language Specification

Common Language Infrastructure
Common Language Infrastructure

(programming) A subset of the base Common Type System comprising the rules to which any CLS-compliant language targeting the Common Language Infrastructure should conform.


member function

en-noun

member function (plural member functions)

(programming) A function that belongs to a class and can be called on instances of the object defined by that class.


MSIL

Intermediate Language
intermediate language#English

(programming) Abbreviation of Microsoft Intermediate Language.


P/Invoke

Platform Invocation Services
w:Platform Invocation Services

(programming) Abbreviation of Platform Invocation Services.


MVVM

(computing, programming) Initialism of Model–View–ViewModel.


view model

View Models and headless Fragments provide two such mechanisms that ensure data is persisted across configuration changes, while also ensuring that your Activity or Fragment UI can be updated without risk of memory leaks.

2018, Reto Meier, Ian Lake, Professional Android, John Wiley & Sons, →ISBN, page 248:

Once the view model has data requested by the user's event, it notifies and updates the view.

2022, Damodar Lohani, Taking Flutter to the Web […] , Packt Publishing Ltd, →ISBN, page 79:

(programming) An abstraction of a view, especially in the context of the MVVM architectural pattern.


hackathon

If these are opinions I'm sure that it happens to have something to do with the immense amounts of caffeine and sugar that I've ingested over the course of his 50hr hackathon.

1985 January 20, Andy Beals, “Re: net.men.only?”, in net.flame (Usenet), retrieved 2016-12-16, message-ID <3466@mit-eddie.UUCP>:

Just after the Hack-A-Thon. A little tired, but it's still early, just after 3 a.m. I log onto^([sic]) the Vax and find that two of the people from the Hack-A-Thon are already on. I VMSphone RJLEWIS, a hacker and the president of our computer club, to ask him why he left the 'thon early. He answers after quite a few rings - no surprise, he was probably doing some hacking. He answers, "This isn't Crash." Hmm...probably one of his roommates. Another person joins the conversation - RLCOLLINS, one of his roommates - saying "This is Crash." Ok, I'm confused. "Why?," I ask. RJLEWIS responds that this is a person named Debbie and it's her first time on the computer.

1990 November 30, P'relan, “A Callahan's Romance”, in alt.callahans (Usenet), retrieved 2016-12-16, message-ID <3009.27556011@miavx1.acs.muohio.edu>:

I bet you most programmers started out "hacking." You think you're alone in that, but I'm sure you can find hundreds of people in this newsgroup with "48-hour hack-a-thon" or similar kinds of stories. They may have been working with punched cards or with all-text displays, but hacking is hacking. That's why some of the dreaded professional programmers will see your fixation with obscure tricks as nothing more than a phase they've been through themselves.

1992 February 29, David M. Baggett, “Re: 'Demo crews'”, in comp.sys.atari.st (Usenet), retrieved 2016-12-16, message-ID <1992Feb29.043440.25994@wam.umd.edu>:

UNITED ARTISTS, THE ONION, AND THE VIRTUAL GAMING CENTER PERSENT: THE 24 HOUR HACKATHON! n promotion of the new moive "HACKERS" (the fast-paced cyberpunk thriller opens in theaters September 15th), we are giving away a some great prizes! Be the first person to "hack" into our special web site on the internet and win a BRAND NEW COMPUTER SYSTEM! Fifty runners-up will receive special HACKERS gift packs.

1995 September 1, James Dicke, “HACKERS: Win a new computer!”, in milw.general (Usenet), retrieved 2016-12-16, message-ID <4282s8$15l@earth.alpha.net>:

Startup Bus is arguably the looniest of the many hackathons that take place every weekend across the country. A hackathon is a marathon computer-programming competition that, among computer programmers, is slightly less popular than video games, Ultimate Frisbee, or Game of Thrones. It lasts 24 hours to five days, and usually there is a lot of Red Bull and very little sleep.

2015 July 8, Meredith Broussard, “The Dirty Secret About Hackathons”, in The Atlantic:

(informal) An event where programmers and others meet for collaborative software development, usually over several days.


application programming interface

application programming interface (plural application programming interfaces)

application programming interfaces (plural)

(computing, programming) A set of routines, protocols, and tools for building software applications, which makes it possible for software components to interact with one another.

interface de programmation d'application

интерфе́йс программи́рования приложе́ний

interfaz de programación de aplicaciones


watchpoint

From watch + point, on the model of breakpoint.

AdaRAID supports multiple CPUs running concurrently, Ada data types, features include break points, watchpoints, timing, tracing, stepping, walkbacks, and histories of last n executions.

(programming) A debugging mechanism whereby execution is suspended every time a specified memory location is modified; or, any of various similar such mechanisms.


OCP

Open Closed Principle
open/closed principle#English

(computer science, programming) Initialism of Open Closed Principle.


open/closed principle

open-closed principle
open-closed principle#English

(programming, object-oriented programming) Alternative spelling of open-closed principle.


Duff's device

(computing, programming) A particular optimized implementation of a serial copy that uses an unusual C-language construct for loop unwinding.


PEP

PEP (countable and uncountable, plural PEPs)

PEPs are design documents that provide information to the Python community, describing new features (or proposed new features) for Python, its processes, or its environment.

2018, Cody Jackson, Secret Recipes of the Python Ninja: Over 70 recipes that uncover powerful programming tactics in Python, Packt Publishing Ltd, →ISBN, page 282:

(programming, countable) Initialism of Python enhancement proposal.


superexpression

superexpression (countable and uncountable, plural superexpressions)

LL-Q1860 (eng)-Flame, not lame-superexpression.wav

(countable, mathematics, programming) An expression that contains multiple subexpressions.


applicationwide

For example, you may wish to maintain an applicationwide connection string that can be used by all pages, a common DataSet used by multiple pages, or any other piece of data that needs to be accessed on an applicationwide scale.

2007, Andrew Troelsen, Pro C# with .NET 3.0, page 898:

(programming) Throughout an application (software program).


subworker

(programming) A worker thread that is subordinate to another; a subthread.


unscale

en-verb

unscale (third-person singular simple present unscales, present participle unscaling, simple past and past participle unscaled)

unscales (present singular third-person)
unscaling (participle present)
unscaled (participle past)
unscaled (past)

Because OpenGL ES does not understand such a format, the vertex shader will then need to apply a matrix to unscale these values, which affects the vertex shading performance.

2014, Dan Ginsburg, Budirijanto Purnomo, Dave Shreiner, OpenGL ES 3.0 Programming Guide, page 457:

(transitive, programming) To undo a scaling transform upon.


renumberer

LL-Q1860 (eng)-Flame, not lame-renumberer.wav

Bit Bucket software tor the Atari including disassembler, renumberer, character generator[…]

A 260-line program, which took other renumberers between two and four minutes to renumber, took the Monkey Wrench only eight seconds.

1982 July 26, InfoWorld, volume 4, number 29, page 41:

Programmed with a utility such as a program line editor or a renumberer, the EPROM leaves the whole of your RAM free to hold the program on which you are working.

1983, Owen Neville Bishop, Henry Budgett, Simple interfacing projects:

(programming, dated) A program that renumbers lines of code in another program (for example, to allow insertion of further lines between them).


alist

We use alists extensively in this work. A directed graph is an alist associating vertices with edge lists.

J. S. Moore and Q. Zhang, Proof Pearl: Dijkstra’s Shortest Path Algorithm Verified with ACL2, in Joe Hurd and Tom F. Melham (ed.), Theorem proving in higher order logics: 18th international conference, 2005, p. 375


dependee

(programming) An agent that is depended on by a depender, the target of a dependency (used in agent-oriented programming)


predeclare

predeclare (third-person singular simple present predeclares, present participle predeclaring, simple past and past participle predeclared)

predeclares (present singular third-person)
predeclaring (participle present)
predeclared (participle past)
predeclared (past)

(transitive, programming) To declare some source code element (such as a class) in advance of its full description, so that other preceding parts of the code can refer to it.


tracepoint

In addition to standard interactive debugging capabilities (display and modification of program variables, setting tracepoints and breakpoints for subprograms, displaying subprogram call stack, and so on), a number of new features were added for VAX Ada.

1987, A. Nico Habermann, Ugo Montanari, System Development and Ada, page 42:

The first thing to notice is that tracepoints have no equivalent to the Trace commands, that is, there is no way to output information in a Release build using tracepoints.

2005, Karli Watson, Christian Nagel, Jacob Hammer Pedersen, Beginning Visual C# 2005, page 161:

(computing, programming) A kind of breakpoint that performs a custom action.


freestore

(computing, programming) The heap of available memory.


activation record

en-noun

activation record (plural activation records)

(programming) a data structure containing subroutine state information located on the call stack

aktivaatiotietue

programming: data structure containing state information


DX

(programming) Synonym of DevEx (“developer experience”).


TMP

Template metaprogramming
w:Template metaprogramming

(programming) Abbreviation of Template metaprogramming.


intertype

intertype declarations in aspect-oriented programming

(computing, programming) Between data types.


commentation

commentation (countable and uncountable, plural commentations)

In-program commentation is another level of documentation that is compulsory, with standards being set regarding what should be included in source code.

1997, Case Studies in Algorithms and Programming:

(programming) The use of comments in source code.


code monkey

(slang, sometimes derogatory) A computer programmer.


undeclaration

undeclaration (countable and uncountable, plural undeclarations)

(computing, programming) The act of undeclaring something previously declared.


hyperoperator

(programming) An operator that acts on every member of a set.


dunder

Python has a dunder method, __iter__, that defines what the behavior is for looping over an instance.

2012, Matt Harrison, Treading on Python, volume 1, →ISBN, page 101:

(programming, informal) A double underscore, __.


undercommented

en-adj

undercommented (comparative more undercommented, superlative most undercommented)

more undercommented (comparative)
most undercommented (superlative)

LL-Q1860 (eng)-Flame, not lame-undercommented.wav

What will probably result is a grossly undercommented program, with brief comments that are only marginally helpful.

1981, G. Michael Schneider, Steven C. Bruell, Advanced programming and problem solving with PASCAL:

I've only one complaint about the book: the actual code is often poorly formatted and undercommented, so some of the examples are difficult to read.

(computing, programming) Having inadequate documentation in the form of comments in source code.


content coupling

(programming) A form of coupling where one module relies on the internal workings of another module.


lazy initialisation

en-noun

lazy initialisation (countable and uncountable, plural lazy initialisations)

lazy initialisations (plural)
lazy initialization (alternative)

creational design pattern
creational pattern

(programming) A creational design pattern that uses the tactic of delaying an expensive process, like the creation of an object, until the first time it is needed.


SOLID

Single responsibility
single responsibility principle#English

Liskov substitution
Liskov substitution principle#English

Interface segregation
interface segregation principle#English

Dependency inversion
dependency inversion principle#English

(programming, object-oriented programming) Acronym of Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion, a set of principles that, when followed, will lead to a created system that will likely be easier to maintain, and extend over time.


SRP

single responsibility principle
single responsibility principle#English

(programming) Initialism of single responsibility principle.


single responsibility principle

object-oriented programming
object-oriented programming

(programming, object-oriented programming) The principle that every class should have a single responsibility entirely encapsulated by that class.


open-closed principle

the open-closed principle (canonical)
open/closed principle (alternative)

(programming, object-oriented programming) A principle that states that software entities (such as classes, modules, and functions) should be open for extension, but closed for modification.


interface segregation principle

(programming, object-oriented programming) A principle that states that once an interface has become too large, it needs to be split into smaller and more specific interfaces so that any client of the interface will only know about the methods that pertain to itself. In other words, no client should be forced to depend on methods it does not use.


God object

single responsibility principle
single responsibility principle

(programming, object-oriented programming) A poorly designed object that does more than one thing and thus violates the single responsibility principle of SOLID.


God class

(programming, object-oriented programming) The class serving as a template for a God object.


IAT

(programming) Initialism of import address table.


design by contract

Coined by French computer scientist Bertrand Meyer.

coin

(programming) A software design approach that prescribes formal, precise and verifiable interface specifications (contracts) with preconditions, postconditions, and invariants.


subtype polymorphism

(programming, computing theory) Synonym of subtyping.


defensive programming

(programming) A form of defensive design aiming to ensure the continuing functioning of a piece of software in spite of unforeseeable usage of it.


twigil

(programming, Perl language) A character prepended to a variable name to indicate its scope.


nominative type system

en-noun

nominative type system (plural nominative type systems)

(programming) A major type system where compatibility and equivalence of data types are determined by explicit declarations or the names of the types.


separation of concerns

The earliest use in computer science is by Edsger W. Dijkstra in his 1974 paper "On the role of scientific thought". However, the term was used as early as 1924 in the field of legal economics by John R. Commons. (see quotes)

It is what I sometimes have called "the separation of concerns", which, even if not perfectly possible, is yet the only available technique for effective ordering of one's thoughts, that I know of. This is what I mean by "focusing one's attention upon some aspect": it does not mean ignoring the other aspects, it is just doing justice to the fact that from this aspect's point of view, the other is irrelevant. It is being one- and multiple-track minded simultaneously.

1974, Edsger W. Dijkstra, “On the role of scientific thought”, in Selected writings on Computing: A Personal Perspective:

(programming) The process of separating a computer program into distinct features that overlap functionally as little as possible.

فَصْلُ الْاِهْتِمَامَاتْ

programming: separating a computer program into distinct features


AppleScript

(programming) A Mac OS scripting tool used to create scripts and applets.


AspectJ

From aspect and the first letter of Java.

aspect-oriented programming language
aspect-oriented programming language

(programming) An extension that turns Java into an aspect-oriented programming language.


first-class object

first-class object (plural first-class objects)

(programming) An entity that can be constructed at run-time, passed as a parameter, returned from a function, or assigned into a variable.

(programming) An entity that can pass a value as a parameter, can be returned from a subroutine, and can be assigned into a variable. (This is the definition according to Raphael Finkel, who uses the terms of second- and third-class objects.)


second-class object

second-class object (plural second-class objects)

first-class object
first-class object#English

(programming, languages) An entity of which the value can be passed as a parameter, but that can neither be returned from a function, nor be assigned to a variable. (Used by Raphael Finkel, the first-class object does not need to have run-time constructability according to his definition.)


third-class object

third-class object (plural third-class objects)

(programming, languages) An entity of which the value can neither be passed as a parameter, nor be returned from a function, nor assigned to a variable. (Used by Raphael Finkel, the first-class object does not need to have run-time constructability according to his definition.)


first-class citizen

first-class citizen (plural first-class citizens)

(programming, languages) Synonym of first-class object.


third-class citizen

third-class citizen (plural third-class citizens)

third-class object
third-class object#English

(programming, languages) Synonym of third-class object.


first-class entity

first-class entity (plural first-class entities)


first-class value

first-class value (plural first-class values)


third-class entity

third-class entity (plural third-class entities)


third-class value

third-class value (plural third-class values)


second-class citizen

second-class citizen (plural second-class citizens)

second-class object
second-class object#English

(programming languages) Synonym of second-class object.


second-class entity

second-class entity (plural second-class entities)

(programming, languages) Synonym of second-class object.


second-class value

second-class value (plural second-class values)


parametric polymorphism

parametric polymorphism (usually uncountable, plural parametric polymorphisms)

(programming) A way to make a computer language more expressive, while maintaining full static type safety, by allowing a function or a data type to be written generically so that it can handle values identically without depending on their type.


TBT

(web development) Initialism of total blocking time.


ROP

ROP (countable and uncountable, plural ROPs)

return-oriented programming
return-oriented programming#English

(uncountable, programming) Initialism of return-oriented programming.


CDI

CDI (countable and uncountable, plural CDIs)

Moreover, the CDI concept rationalizes the application structure by making the wiring points of one class with others explicit.

2022, Giuseppe Bonocore, Arunee Singhchawla, Hands-On Software Architecture with Java, Packt Publishing Ltd, →ISBN, page 185:

software architecture
software architecture

dependency injection
dependency injection#English

(software architecture) Initialism of context(s) and dependency injection.


object pool pattern

object pool pattern (plural object pool patterns)

(programming) A creational design pattern that uses a set of initialised objects kept ready to use, rather than allocating and destroying them on demand.


prototype pattern

prototype pattern (plural prototype patterns)

(programming) A creational design pattern that determines the type of objects to create by a prototypical instance, which is cloned to produce new objects.


model-view-controller

model–view–controller (canonical)
model-view-controllers (plural)

(software architecture) A type of computer user interface that separates the representation of information from the user's interaction.


manifest typing

(programming) A typing where the software programmer explicitly identifies the type of each declared variable.


event-driven

en-adj

event-driven (comparative more event-driven, superlative most event-driven)

more event-driven (comparative)
most event-driven (superlative)

(programming) Of a program: such that the program flow is determined by events.


event-based

event-based (comparative more event-based, superlative most event-based)

more event-based (comparative)
most event-based (superlative)

LL-Q1860 (eng)-Flame, not lame-event-based.wav

event-based programming


computer programming

en-noun

computer programming (countable and uncountable, plural computer programmings)

computer programmings (plural)
computer-programming (alternative)

(programming) The process of designing, writing, testing, debugging, and maintaining the source code of computer programs.


event-driven programming

(programming, paradigm) A programming paradigm where the flow of the program is determined by events.


event-based programming

event-driven programming
event-driven programming#English

(programming, paradigm) Synonym of event-driven programming.


microframework

(programming) A very lightweight framework.


curly-bracket language

curly-bracket language (plural curly-bracket languages)

curly-bracket languages (plural)
curly bracket language (alternative)

programming language
programming language

(programming) A programming language whose syntax uses curly brackets to enclose blocks, such as C, C++, Java, or C#.


curly-braces language

curly-braces language (plural curly-braces languages)

curly-braces languages (plural)
curly braces language (alternative)

curly-bracket language
curly-bracket language#English

(programming) Synonym of curly-bracket language.


type erasure

type erasure (countable and uncountable, plural type erasures)

Type erasure is often seen as a mysterious, enigmatic programming technique. It is not exclusive to C++ (most tutorials on type erasure use Java for their examples).

2019, Fedor G. Pikus, Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications, Packt Publishing Ltd, →ISBN, page 102:

(C++ programming) A technique by which a class is made generic without requiring compile-time template arguments.


tail call

Tail calls can be implemented without the need for an additional frame on the call stack.

(programming) A function call that is itself the last instruction in a function.


NVI

non-virtual interface
non-virtual interface#English

(programming) Initialism of non-virtual interface.


non-virtual interface

non-virtual interface (plural non-virtual interfaces)

(programming) An interface that controls how methods in a base class are overridden.


EAR

Enterprise Application Archive
w:EAR (file format)

(programming) Initialism of Enterprise Application Archive, a file format used to package Java applications.


variadics

(programming) The use of variadic templates.


non-virtual interface pattern

non-virtual interface pattern (uncountable)

non-virtual interface
non-virtual interface

(programming) A software pattern that controls how methods in a base class are overridden using the non-virtual interface.


castable

en-adj

castable (comparative more castable, superlative most castable)

more castable (comparative)
most castable (superlative)

(programming) Capable of being cast to another data type.


value type

(programming) A data type that represents a value directly, rather than a pointer or reference to something else.

(programming) A data type having deep-copy semantics.


checked exception

en-noun

checked exception (plural checked exceptions)

(programming) An exception that has to be declared in the signature of the method that may raise it.

überprüfte Ausnahme

an exception that has to be declared in the signature of the method that may raise it


syntactic salt

LL-Q1860 (eng)-Flame, not lame-syntactic salt.wav

Coined analogously with syntactic sugar.

(programming) Additions to a programming language that make it harder to write bad code.


copy-on-write proxy

copy-on-write proxy (plural copy-on-write proxies)

(programming) A proxy that controls the copying of an object by deferring the copy until it is required by a client.


smart-reference proxy

smart-reference proxy (plural smart-reference proxies)

(programming) A proxy that provides additional actions whenever an object is referenced, such as counting the number of references to the object.


CRUD

database management system
database management system

(databases, programming) Acronym of create, read, update, delete, the basic operations of a database management system.


LINQ

(programming, .NET) Acronym of Language Integrated Query.


model-view-presenter

model–view–presenter (canonical)
model-view-presenters (plural)

architectural pattern
architectural pattern

(software architecture) A derivative of the model-view-controller (MVC) architectural pattern, where the presenter assumes the functionality of the "middle-man".


boilerplate code

Because you write that same boilerplate code over and over, the C# 3.0 compiler will now do it for you.

2011, Stephen R. Davis, Chuck Sphar, C# 2008 For Dummies, John Wiley & Sons, →ISBN, page 231:


Rubyist

Why do Rubyists choose Ruby? Probably because it gets their work done. But I suspect that the project culture is part of it.

2007, Topher Cyll, Practical Ruby Projects: Ideas for the Eclectic Programmer, page 2:

By convention, Rubyists usually underscore their method names.

2011, Matt Aimonetti, MacRuby: The Definitive Guide: Ruby and Cocoa on OS X, page 14:

(programming) A user of the Ruby programming language.


TLE

TLE (countable and uncountable, plural TLEs)

(programming) Initialism of time limit exceeded; One of the verdicts used in programming contests to show that the submitted code has failed.


code smell

Analogous to a bad smell indicating e.g. rotten food. Apparently coined by American software engineer Kent Beck, in the late 1990s. Popularized via the book Refactoring: Improving the Design of Existing Code, co-authored by Beck.

coin

A well-known code smell is as follows: a function should do one thing.

2021, Christian Clausen, Five Lines of Code: How and when to Refactor, Manning, →ISBN, page 4:

(programming) Anything in a program's source code that suggests the presence of a design problem.


(programming) Initialism of first-generation language, i.e. machine language.


feature envy

A class with feature envy of another class means it is highly coupled to that class. Any change to the class being envied means it affects the class with the envy.

2010, Peter Ritchie, Refactoring with Microsoft Visual Studio 2010, Packt Publishing Ltd, →ISBN:

(programming) The situation where one class in a program makes excessive use of parts of other classes.


typestate

en-noun

typestate (countable and uncountable, plural typestates)

(programming) Information stored with a variable indicating its current data type.


patchset

(computing, programming) A set of software patches.


esolang

esoteric programming language
esoteric programming language#English

(programming) Clipping of esoteric programming language.


control structure

control structure (plural control structures)

In C++ you can and often will nest control structures: place one conditional within another; put a loop within another loop; have a conditional within a loop; and so forth.

2005, Larry Ullman, Andreas Signer, C++ Programming: Visual QuickStart Guide, Pearson Education, →ISBN:

(programming) A structure used to direct the flow of execution of a program.


FSVO

(mathematics, programming, Internet slang) Initialism of for some values of.


pseudoblock

LL-Q1860 (eng)-Flame, not lame-pseudoblock.wav

A pseudoblock surrounding the whole source program can be initialized before actual translation with the entries for standard functions and variables, so that these don't have to be treated separately.

1971, David Gries, Compiler construction for digital computers, page 229:

(computing, programming) A construct that resembles a block of source code but is not a true block.


debug mode

debug mode (countable and uncountable, plural debug modes)

LL-Q1860 (eng)-Flame, not lame-debug mode.wav

(programming) The mode of a compiler or IDE that allows for debugging, with the availability of information such as variable names and line numbers from the source code.


release mode

release mode (countable and uncountable, plural release modes)

(programming) The mode of the compiler where the code is compiled for the end user, most often with optimizations.


mix-in

(computing, programming) Alternative form of mixin.


(programming) Initialism of second-generation language, i.e. assembly language.


The 3GLs include C, C++, Java, and Fortran.

(programming) Initialism of third-generation language.


(programming) Initialism of fourth-generation language, characterized by having its own operating environment (e.g., Foxpro, Mathematica, AMPL).


(programming) Initialism of fifth-generation language: a high-level, constraint-based programming language (e.g. Prolog).


abstract data type

abstract data type (plural abstract data types)

(programming) A data type defined only by data properties and operations to be performed on the data without any specification as to how the data will be represented or the operations performed.


pragmat

(programming) A pragma, or compiler directive, in the ALGOL programming language.


heredoc

Interpolating with string concatenation in heredocs can look a little strange because the closing heredoc delimiter and the string concatenation operator have to be on separate lines […]

2009, Adam Trachtenberg, David Sklar, PHP Cookbook, page 16:


here document

(programming) A block of text included in the source code of a computer program in such a way that it is treated as a single string literal with line breaks etc. as written.


downcall

(programming) A call from a higher-level subsystem, such as user code, to a lower-level subsystem, such as a kernel or framework.


metaoperator

(programming) In the Perl and Raku programming languages, an operator that can combine with other operators.


encloser

enclosers (plural)
incloser (alternative)

(programming) An object, procedure, or other portion of code that defines the scope of a variable.


defunctionalization

defunctionalization (countable and uncountable, plural defunctionalizations)

higher-order function
higher-order function

(computing, programming) A compile-time transformation which eliminates higher-order functions, replacing them by a single first-order apply function.


defunctionalize

en-verb

defunctionalize (third-person singular simple present defunctionalizes, present participle defunctionalizing, simple past and past participle defunctionalized)

defunctionalizes (present singular third-person)
defunctionalizing (participle present)
defunctionalized (participle past)
defunctionalized (past)

(computing, programming) To subject to defunctionalization.


const

Abbreviation of constant, used as a keyword in certain programming languages.

(programming) A variable whose value cannot be changed directly.


const

(programming, of a variable) Whose value cannot be changed directly.

(programming, of a function) Which cannot change the value of its class’s attributes.


ABAP

Initially coined as short for German Allgemeiner Berichts-Aufbereitungs-Prozessor ("generic report preparation processor"); later assigned the English expansion.

(programming) Initialism of Advanced Business Application Programming.


autoflush

LL-Q1860 (eng)-Flame, not lame-autoflush.wav

If the writer is set to autoflush mode, then all characters in the buffer are sent to their destination whenever println is called.

2001, Cay S. Horstmann, Gary Cornell, Core Java 2: Fundamentals, page 715:

With autoflush off, you can easily start generating content, have your code throw it away halfway through, and then issue a redirect.

2002, Dave Rolsky, Ken Williams, Embedding Perl in HTML with Mason:

(computing, programming) Automatic flushing of a buffer.


autoflush

autoflush (third-person singular simple present autoflushes, present participle autoflushing, simple past and past participle autoflushed)

autoflushes (present singular third-person)
autoflushing (participle present)
autoflushed (participle past)
autoflushed (past)

(transitive, computing, programming) To flush (a buffer) automatically.


rem out

rem out (third-person singular simple present rems out, present participle remming out, simple past and past participle remmed out)

rems out (present singular third-person)
remming out (participle present)
remmed out (participle past)
remmed out (past)

From rem (a shortening of remark, used as a comment-marking keyword in some programming languages) + out.

When Windows 98 is installed, it will "REM out" the MSCDEX statement, if there is one, since Windows has its own driver and doesn't need this one.

1998, Ralf Kober, Franck Buechel, Markus Baecker, Win 98 RX: Solve Your Own Windows 98 Computing Problems Easily, page 205:

(programming, dated, transitive) To temporarily disable (a portion of source code) by converting it into a comment.


falsy

From false + -y, to be an antonym to truthy.

In JavaScript, any expression or statement that expects a boolean value will work with a truthy or falsy value, so the fact that && does not always evaluate to true or false does not cause practical problems.

2012, David Flanagan, JavaScript Pocket Reference, page 40:

However, in the second case, both '0' and the empty string () are falsy (in other words, they behave like false) and are therefore equal with respect to ==.

2014, Basarat Syed, Beginning Node.js, →ISBN, page 33:

If the first operand (which comes before the question mark--doIt, in this example) is truthy, the expression evaluates to the second operand (between the question mark and colon), and if it's falsy, it evaluates to the third operand (after the colon).

2016, Kenny Ballou, Learning Elixir, →ISBN, page 92:

(programming) Evaluating to false in a Boolean context.


flexbox

en-noun

flexbox (countable and uncountable, plural flexboxes)

flexboxes (plural)
flex box (alternative)
flex-box (alternative)

Internet Explorer 9 does not support flexbox.

(web development, uncountable) A CSS3 layout model that allows elements on a web page to be arranged in certain ways within a one-dimensional container.

The contents of a flexbox can be positioned in any direction, can have their order swapped dynamically, and can auto-adjust their sizes and positions based on available space.

2012, Sergey Mavrody, Nika Mavrody, Sergey's HTML5 & CSS3: Quick Reference, page 112:

There's still quite a bit of tumult in the standards recommendations and implementations for flexboxes, but IE10 and Windows 8 has a good, solid implementation of this extremely helpful layout technique.

2013, Jeremy Foster, CSS for Windows 8 App Development, page 161:

You can nest flexboxes inside each other.

2014, Andy Harris, HTML5 and CSS3 All-in-One For Dummies:

(web development, countable) An HTML element that uses this model.


type punning

(programming) The circumvention of the system of data types in a programming language in order to achieve an effect that would be difficult or impossible to achieve within the bounds of the formal language.


softcode

en-verb

softcode (third-person singular simple present softcodes, present participle softcoding, simple past and past participle softcoded)

softcodes (present singular third-person)
softcoding (participle present)
softcoded (participle past)
softcoded (past)

From soft + code, modelled on earlier hard code.

Keep things soft (as in softcoding) wherever possible. Visit a lawyer and make 'parameterisation' your middle name; it'll sound good at parties, and changes to the system will be far less painful.

1992, John W. O. Brinkworth, Software quality management: a pro-active approach, →ISBN:

1997, Barbara L. Maia Goldstein, Society of Photo-optical Instrumentation Engineers, Plug and play software for agile manufacturing, SPIE-International Society for Optical Engineering
Best of breed component approaches are better supported because of the softcoding of much of the factory model and integration logic.

I have used this technique to build very flexible code generators, softcoded calculation engines for users, and much more.

1999, Steven Feuerstein, Oracle PL/SQL Programming: Guide to Oracle8i Features, O'Reilly Media, Inc., →ISBN, page 76:

[…] you will need to consider the business requirements first, and only then encode them in your application. Let's discuss two approaches to this: the traditional “hardcoded” technique and the “softcoded” rules-based approach.

2004, Dave Minter, Jeff Linwood, Building Portals with the Java Portlet API, Apress, →ISBN, page 289:

Given the rationale for softcoding, it is clear that you should softcode attributes that may not be known until run time. For simplicity and improved performance, you can hardcode attributes that are certain.

2010, Michael Blaha, Patterns of Data Modeling, CRC Press, →ISBN, page 175:

(programming) To construct a program in a way which ensures that certain values and methods of operation are adjustable at run time.


LoC

LoCs (plural)
loc (alternative)
LOC (alternative)

(programming) Initialism of lines of code.


self-documenting

(computing, programming, of source code) Written and structured in such a way that it can be understood without consulting separate documentation.


spinlock

(programming) A lock which causes a thread trying to acquire it simply to wait in a loop ("spin") while repeatedly checking if the lock is available.


spinlock

spinlock (third-person singular simple present spinlocks, present participle spinlocking, simple past and past participle spinlocked)

spinlocks (present singular third-person)
spinlocking (participle present)
spinlocked (participle past)
spinlocked (past)


rubber duck debugging

From a story in the book The Pragmatic Programmer (1999).

(programming) The practice in which a programmer attempts to solve a bug by explaining their code to an inanimate object, such as a rubber duck.

The Pragmatic Programmer
rubber duck debugging


CTFE

(programming) Initialism of compile-time function execution.


code golf

By analogy with the sport of golf, in which players aim to sink the ball in the hole in the fewest strokes possible.

(programming) A recreational computer programming competition in which participants attempt to write the shortest possible source code to implement a given algorithm.


counterprogramme

A programme that counters or responds to another programme.


bare metal

Real programmers don't write applications programs; they program right down to the bare metal. Applications programming is for wimps who can't do systems programming.

1987, “The Real Programmer's Handbook”, in U-M Computing News, volume 2, UM Libraries, page 7:

After all, this isn't PC Week, or another magazine that primarily covers the happenings of the PC world. This is Embedded Systems Programming, where we often program right down to the bare metal like Real Programmers, unlike those sissy PC guys (insert the sound of a hairy chest being thumped here).

1997, Embedded Systems Programming, Miller Freeman Publications, page 118:

Which has its pluses and minuses—it's really hard to write device drivers for bare metal in a completely type-safe language just because the levels of abstraction are wrong for talking to the bare metal.

2009, Peter Seibel, Coders at Work: Reflections on the Craft of Programming, Apress, →ISBN:

Compared to other modern languages, C is much less forgiving, much more terse, and generally much more ill tempered. However, it is about as close to programming on the bare metal as you can get while still using a well-supported language with good library support for everything from numeric calculations to graphics.

2012, John Ray, William Ray, Sams Teach Yourself Xcode 4 in 24 Hours, Sams Publishing, →ISBN, page 314:

The bare metal hypervisor has a significantly higher level of control over the resources available it because it does not have to go through an intermediary to access the resources.

2012, Peter Membrey, Eelco Plugge, David Hows, Practical Load Balancing: Ride the Performance Tiger, Apress, →ISBN, page 214:

What is a bare-metal setup? Programs that run on bare metal typically follow a very simple format: they do one thing, more or less forever.

2013, Bryon Moyer, Real World Multicore Embedded Systems, Newnes, →ISBN, page 519:

(programming) A runtime environment where little to no abstraction is available: usually employing a low-level programming language, without access to any operating system facilities, and interfacing hardware directly.


memory barrier

Memory barriers are necessary because most modern CPUs employ performance optimizations that can result in out-of-order execution.

(programming) An instruction that enforces an ordering constraint on memory operations issued before and after it.


transitive dependency

en-noun

transitive dependency (plural transitive dependencies)

(programming) In a computer program, library called by another dependency.


call by reference

(programming) Alternative form of call-by-reference.


call by value

(programming) Alternative form of call-by-value.


pass by value

(programming) Alternative form of call by value.


ASI

ASI (countable and uncountable, plural ASIs)

ASIs (plural)
A.S.I. (alternative)
A. S. I. (alternative)

(programming, uncountable) Initialism of automatic semicolon insertion.


static scoping

(programming) The property of being statically scoped.


statically scoped

(programming) Of an identifier: having its scope limited to the block of source code text declares or defines the identifier.


logic programming

(programming) Programming with a paradigm that bases on formal logic


unpythonic

en-adj

unpythonic (comparative more unpythonic, superlative most unpythonic)

more unpythonic (comparative)
most unpythonic (superlative)
unPythonic (alternative)
un-Pythonic (alternative)

(programming) Not following the idioms of the Python programming language.


unchecked exception

en-noun

unchecked exception (plural unchecked exceptions)

(programming) An exception that is not declared in the signature of a method, but results in an abort with a stack trace.


VRAM

graphics processing unit
graphics processing unit#English

(programming) video memory (an area of a computer's memory used to hold data used by a graphics processing unit)


dot release

From dot (the decimal point in a version number) + release.

(computing, programming) Synonym of point release.


declarative programming

(programming) a programming paradigm that expresses the logic of a computation instead of its control flow


imperative programming

(programming) a programming paradigm that describes the computation in statements


class-based

(programming) Structured by defining classes of objects.


prototype-based

(programming) making inheritance possible by cloning objects instead of instantiating them from classes


representational state transfer

representational state transfer (usually uncountable, plural representational state transfers)

representational state transfers (plural)

Coined by American computer scientist Roy Fielding in 2000.

coin

(software architecture) A way of providing interoperability between computer systems on the Internet based on textual representations of Web resources and a predefined set of stateless operations.


ifdef

A keyword in various programming languages, short for if defined.

(computing, programming) A construct in source code that allows another part of the code to run only if a specified identifier is defined in the program.


bitflag

(programming) A bit (binary digit) whose value acts as a flag to enable or disable some behaviour.


introspectability

This shows, I think, that sensitivity to the argument from soft introspectability is an untenable halfway house; we must accept strict introspectability or nothing.

2000, Roger Teichmann, Logic, Cause and Action, →ISBN, page 93:

Besides the open question of the full introspectability of arbitrary application code, there is another mental obstacle: conventional programmers consider that dynamic symbolic models are mere gadget applications, “too slow and not professional" but this situation could change with the maturity of web-based scripting (like wikis, active technology, ...).

2006, Jonathan Gratch, Intelligent Virtual Agents: 6th International Conference, IVA, →ISBN, page 155:

It includes subfactors such as introspectability, controlability, and notifiability of the Web service and of the platform, measured by both taking into account the possibility that these sub-factors can be achieved and whether they are actually achieved.

2010, M. Papazoglou, Klaus Pohl, Michael Parkin, Service Research Challenges and Solutions for the Future Internet, →ISBN, page 162:

object-oriented programming
object-oriented programming

The quality of being subject to introspection.

(programming, object-oriented programming) The quality of supporting type introspection.


nasal demon

From a 1992 post on the Usenet newsgroup comp.std.c; see http://www.catb.org/jargon/html/N/nasal-demons.html.

(programming, slang, humorous, mostly plural) Unexpected behavior of a compiled program as a result of source code that employs an undefined construct.


linting

en-noun

linting (usually uncountable, plural lintings)

(computing, programming) The process of using a software tool to analyse source code and identify possible programming problems.


OPC UA

(communication, programming) Abbreviation of OPC Unified Architecture (an industrial M2M communication protocol for interoperability developed by the OPC Foundation).


OPC DA

(communication, programming) Initialism of OPC Data Access, the first of a group of specifications known as the Classic OPC Specifications.


OPC HDA

(communication, programming) Initialism of OPC Historical Data Access, a group of standards of the OPC Foundation that provides COM specifications for communicating data from devices, like databases, and applications that provide historical data.


OPC AE

(communication, programming) Initialism of OPC Alarms & Events, an OPC Specification for alarms and events.


MQTT

(programming) Initialism of Message Queueing Telemetry Transport, a lightweight publish-subscribe messaging protocol used on top of the TCP/IP protocol.


MQTT-SN

(programming) Initialism of MQ Telemetry Transport for Sensor Networks, a variation of the MQTT protocol for embedded devices on non-TCP/IP networks.


long long

(computing, programming) A kind of integer variable, allowing a greater range of possible values than a long.


UAF

(programming) Initialism of use after free: a class of software vulnerability where memory is erroneously used again after being deallocated.


rubber ducking

rubber-ducking (alternative)
rubberducking (alternative)

Rubber duck debugging
rubber duck debugging