Duff's device

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


PEP

en-noun

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)

(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).


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.


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

Coordinate term: UX

(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.


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)

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)

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.


God class

object-oriented programming
object-oriented programming

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


open-closed principle

(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.


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. (When followed, the created system will be more likely easy to maintain, and extend over time.)


SRP

single responsibility principle
single responsibility principle#English

(programming) Initialism of single responsibility principle.


single responsibility principle

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


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.


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.


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.


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.


subtype polymorphism

(programming, computing theory) Synonym of subtyping


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


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.


AppleScript

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


third-class value

third-class value (plural third-class values)

third-class object
third-class object#English

(programming, languages) Synonym of third-class object


third-class citizen

third-class citizen (plural third-class citizens)


third-class entity

third-class entity (plural third-class entities)


first-class value

first-class value (plural first-class values)

first-class object
first-class object#English

(programming, languages) Synonym of first-class object


second-class entity

second-class entity (plural second-class entities)

second-class object
second-class object#English

(programming, languages) Synonym of second-class object


first-class citizen

first-class citizen (plural first-class citizens)


second-class value

second-class value (plural second-class values)


second-class object

second-class object (plural second-class objects)

(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.)


first-class entity

first-class entity (plural first-class entities)


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 object

first-class object (plural first-class objects)

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

(programming, languages) 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.)


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.


ROP

ROP (countable and uncountable, plural ROPs)

return-oriented programming
return-oriented programming#English

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


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.


manifest typing

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


event-based

en-adj

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

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


event-based programming

event-driven programming
event-driven programming#English

(programming, paradigm) Synonym of event-driven programming


event-driven programming

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


event-driven

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.


computer programming

en-noun

computer programming (countable and uncountable, plural computer programmings)

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


microframework

(programming) A very lightweight framework.


curly-braces language

curly-braces language (plural curly-braces languages)

curly-bracket language
curly-bracket language#English

(programming) Synonym of curly-bracket language


curly-bracket language

curly-bracket language (plural curly-bracket languages)

programming language
programming language

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


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

Coined analogously with syntactic sugar.

Coordinate term: 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.


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)

Coordinate term: data structure

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

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.


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.


debug mode

debug mode (countable and uncountable, plural debug modes)

(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.


mix-in

(computing, programming) Alternative form of mixin


(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).


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


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

(programming) Initialism of third-generation language.


abstract data type

abstract data type (plural abstract data types)

Coordinate term: algebraic data type

(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.


downcall

(computing, 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.


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.


defunctionalization

en-noun

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.


encloser

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


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

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

en-verb

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.


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

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

(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.


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.

(computing, 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 value

(programming) Alternative form of call-by-value


call by reference

(programming) Alternative form of call-by-reference


pass by value

(programming) Alternative form of call by value


ASI

ASI (countable and uncountable, plural ASIs)

(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)

(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.


imperative programming

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


declarative programming

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


prototype-based

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


class-based

(programming) Structured by defining classes of objects.


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

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 (first of a group of specifications known as the Classic OPC Specifications.)


OPC HDA

(communication, programming) Initialism of OPC Historical Data Access (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 duck debugging
rubber duck debugging


match-merge

en-verb

match-merge (third-person singular simple present match-merges, present participle match-merging, simple past and past participle match-merged)

match-merges (present singular third-person)
match-merging (participle present)
match-merged (participle past)
match-merged (past)

The lists are match-merged, so if you are on both lists, you are not twice as likely to be chosen.

"When you want to match-merge several data sets and the data sets do not all match by the same variables […]"

2012, Michele M. Burlew, SAS Hash Object Programming Made Easy:

(programming) To merge sets of objects while excluding duplicates.


exotype

(programming) A type (of object) that is defined programmatically at runtime based on external data.


Lispish

en-adj

Lispish (comparative more Lispish, superlative most Lispish)

more Lispish (comparative)
most Lispish (superlative)

(programming, informal) Characteristic or reminiscent of the Lisp programming language.


Pythonic

Pythonic (comparative more Pythonic, superlative most Pythonic)

more Pythonic (comparative)
most Pythonic (superlative)

The Pythonic style isn't regimented or enforced by the compiler. It has emerged over time through experience using the language and working with others.

2015 February 12, Brett Slatkin, Effective Python, Addison-Wesley Professional, →ISBN, page 1:

Pythonic code—when you first hear of it, you might think it is a programming paradigm, similar to object-oriented or functional programming. While some of it could be considered as such, it is actually more of a design philosophy.

2016 August 31, Fabrizio Romano, Dusty Phillips, Rick van Hattem, Python: Journey from Novice to Expert, Packt Publishing Ltd, →ISBN, page 850:

(programming) Using the idioms of the Python programming language.


footgun

This is a footgun! ES6 should have specified that it either fulfills, rejects, or just throws some sort of synchronous error. Unfortunately, because of precedence in Promise libraries predating ES6 Promise, they had to leave this gotcha in there, […]

2015, Kyle Simpson, You Don't Know JS: Async & Performance, O'Reilly Media, →ISBN:

If it is what Douglas Crockford might call a “footgun,” then at the very least, condoning and standardizing the “footwounds” will make problems easier to search for and fix.

2017, Evan Burchard, Refactoring JavaScript: Turning Bad Code Into Good Code, O'Reilly Media, →ISBN, page 262:

Let's have a look at one of the ways a service locator can become a foot gun. We're going to look at the anti-pattern of using the DI container directly in your code, thereby breaking inversion of control and generally shooting yourself in the foot.

2021, Joseph Edmonds, Lorna Jane Mitchell, The Art of Modern PHP 8, page 295:

shooting themself in the foot
shoot oneself in the foot

(programming slang, humorous, derogatory) Any feature likely to lead to the programmer shooting themself in the foot.


pumpking

Blend of pumpkin + king, anecdotally from the use of a stuffed pumpkin toy that was handed between employees as a token of permission to make changes, ensuring that only one person could make changes at any particular time.

In addition, various people are pumpkings for different areas. For example, Andy Dougherty and Jarkko Hietaniemi share the Configure pumpkin, and Tom Christiansen is the documentation pumpking.

1999 winter, Nathan Torkington, “Hacking the Perl Core”, in The Perl Journal, volume 4, number 4 (number 16 overall), Boston, Mass.: Readable Publications, →ISSN, →OCLC, archived from the original on 2020-10-31:

Releases are coordinated by a ‘patch pumpkin holder’, or ‘pumpking’ – a quality controller who, with help from Larry [Wall], decides which contributions make the grade and when and bears the heavy responsibility of releasing a new Perl.

2000, Simon Cozens, with Peter Wainwright, Beginning Perl, Birmingham, West Midlands: Wrox Press, →ISBN, page 24:

Each release of Perl is assigned a "pumpking." This person controls all changes to the actual source code of the language itself. The pumpking for 5.6 was Gurusamy Sarathy, and the pumpking for 5.8 is Jarkko Hietaniemi.

2002, Clinton Pierce, “Basic Perl”, in Charlotte Clapp, editor, Perl Developer’s Dictionary, Indianapolis, Ind.: Sams Publishing, →ISBN, page 6:

Thanks to Doug Miles, the Phoenix Perl Mongers Pumpking, for his tireless dedication to the Phoenix Perl community, which he brought together. Writing Perl in the valley would be a lot lonelier without his hard work.

2005, Scott Walters, Perl 6 Now: The Core Ideas Illustrated with Perl 5 (Expert’s Voice in Open Source), Berkeley, Calif.: Apress, →ISBN, page xxii:

(programming, slang) A Perl user working on shared source code who has been temporarily designated as the only person who is allowed to make changes.


weakly-typed

A weakly-typed language will most possibly not generate an error or refuse to compile, if the argument passed to a function does not match the expected type closely.

(programming) Belonging to a type system that likely will not result in an error if a passed variable does not closely match the expected type.


strongly-typed

(programming) Belonging to a type system that enforces variables matching (or easily convertible to) the expected types.


dynamically-typed

A dynamically typed language does not require the programmer to declare the type of data a variable holds before using it. Python is a dynamically typed language.

2022, Ronald T. Kneusel, Strange Code: Esoteric Languages That Make Programming Fun Again, No Starch Press, →ISBN, page 54:

(programming) Belonging to a type system that checks the variable types at runtime.


statically-typed

Statically typed languages have some great benefits. You always know what type of data you are dealing with, so you don't have to deal with surprises, such as when 2 + '2' = '22', because you're not even allowed to add variables of different types.

2014, Steven Foote, Learning to Program, Addison-Wesley Professional, →ISBN, page 96:

(programming) Having, or relating to, a type system that checks the variable types at compile time.


sigilless

(computing, programming, rare) Without sigils.


dedentation

A new code block is recognized when the amount of indentation has increased, and its termination is signaled by a "dedentation," or a reduction of indentation matching a previous level's.

2011, Understanding FOSS Version 3.0i revised:

Again, as with every code subblock, indentation (and dedentation) are used to delimit blocks of code as well as to indicate which block of code statements belong to […]

2006, Wesley Chun, Core Python Programming:

(programming, informal, rare) The reversal of indentation, moving the text cursor back out from its indented position.


string substitution

en-noun

string substitution (plural string substitutions)

(programming) The semantics-free search and replacement of one sequence of text characters with another.


newless

en-adj

newless (comparative more newless, superlative most newless)

more newless (comparative)
most newless (superlative)

This is an example of newless instantiation.

(programming, not comparable) Not containing or using an operator new.


MGCC

(databases, programming) Synonym of MVCC (multigenerational concurrency control)


MVCC

multiversion concurrency control
w:multiversion concurrency control

database management system
database management system#English

programming language
programming language#English

transactional memory
transactional memory#English

(databases, programming) Initialism of multiversion concurrency control (a concurrency control method commonly used by database management systems to provide concurrent access to the database and in programming languages to implement transactional memory.)


Jensen's device

Devised by Danish computer scientist Jørn Jensen.

(programming) A particular programming technique that exploits call-by-name to change the value of an index variable during execution of a loop.


smart pointer

(programming) A form of pointer with additional features such as automatic memory management or bounds checking.


lambda function

en-noun

lambda function (plural lambda functions)

(programming) An anonymous function; a function that is defined in an inline, ad-hoc manner, and often doesn't have a name (not bound to an identifier).


calltip

(programming) A pop-up reminder of the signature of a function or method, to aid the programmer while writing code.


docstring

From doc + string; see doc (“documentation”).

(programming) A string literal specified in source code that is used, like a comment, to document a specific segment of code, but remains available at run-time.


minilanguage

The success of Logo in general and turtle graphics in particular stimulated the development of the mini-language approach to teaching the principles of programming.

1997 March, Peter Brusilovsky et al., “Mini-languages: A Way to Learn Programming Principles”, in Education and Information Technologies, →DOI:

domain-specific language
domain-specific language

(programming) A relatively small and simple domain-specific language.


falsiness

(computing, programming) The property of being falsy, i.e. evaluating to false in a Boolean context.


callback hell

However, the use of callbacks can lead to a maintainability issue known as callback hell. We will now write a real-life example to showcase what a callback hell is and how easily we can end up dealing with it.

2015, Remo H. Jansen, Learning TypeScript:

(programming, colloquial) (mostly of the JavaScript language) The situation where callbacks are nested within other callbacks several levels deep, potentially making it difficult to understand and maintain the code.


coclass

(programming) A class that implements a COM (Common Object Model) interface.


object-based programming

(programming) A programming paradigm that encapsulates states and operations inside "objects" to design applications and computer programs.

基于對象編程

programming paradigm that uses objects to design application and computer programs


Comet

Coined by software engineer Alex Russell in March 2006. After the Comet brand of cleaning products, as a pun on Ajax, which is also both a Web programming technique and a brand of cleaning products.

(programming) A web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.


Huey, Dewey and Louie

After the nephews of Donald Duck in Disney cartoons.

(business, programming, uncommon) Three hypothetical customers, user personas, or similar constructs.


dangling pointer

dangling pointer (plural dangling pointers)

(programming) A pointer (variable that holds the address of a memory location) that does not reference a valid object.

ponteiro pendente

pointer that does not reference a valid object


eager load

en-verb

eager load (third-person singular simple present eager loads, present participle eager loading, simple past and past participle eager loaded)

eager loads (present singular third-person)
eager loading (participle present)
eager loaded (participle past)
eager loaded (past)

(programming, databases) To fetch data as early as possible, before it used.


lazy load

lazy load (third-person singular simple present lazy loads, present participle lazy loading, simple past and past participle lazy loaded)

lazy loads (present singular third-person)
lazy loading (participle present)
lazy loaded (participle past)
lazy loaded (past)

Collection-valued relationships lazy load by default, so the EAGER fetch type must be explicitly applied to those mappings if eager loading is desired.

2006, Mike Keith, Merrick Schincariol, Pro EJB 3: Java Persistence API, Apress, →ISBN, page 151:

(programming, databases) To fetch data only when it is absolutely required.


snake case

Coined in 2004 by Ruby programmer Gavin Kistner, from its resemblance to the long body of a snake, and by analogy with other naming schemes based on lower- and upper-case letters.

Some evidence shows that coders are better able to read code (their code and code written by others) when using snake_case, not camelCase naming.

2018, Camille McCue, Sarah Guthals, Helping Kids with Coding For Dummies®, John Wiley & Sons, Inc., →ISBN, page 130:

While both camelCase and snake_case are perfectly valid syntax in Java, the development community functions better when everyone adopts the same style convention.

2020, Jeanne Boyarsky, Scott Selikoff, OCP Oracle Certified Professional Java SE 11 Programmer I: Study Guide, Exam 1Z0-815, John Wiley & Sons, Inc., →ISBN, page 49:

We were incorporating third-party Python libraries for some of our projects, leading to a mix within our codebase of our own CamelCase format with the externally preferred snake_case style.

2020, Titus Winters, Tom Manshreck, Hyrum Wright, Software Engineering at Google: Lessons Learned from Programming Over Time, O’Reilly Media, Inc., →ISBN:

(programming) The practice of writing identifiers using underscores to separate words.


refcount

(programming) A counter variable that keeps track of the number of references to a specific block of memory.


untrace

untrace (third-person singular simple present untraces, present participle untracing, simple past and past participle untraced)

untraces (present singular third-person)
untracing (participle present)
untraced (participle past)
untraced (past)

It is important to untrace a function before modifying its definition, since some tools may not be smart enough to realize that the version of reScale on the session frame is only for debugging!

1998, John M. Chambers, Programming with Data: A Guide to the S Language, page 268:

(computing, programming, transitive) To remove a trace from.


untaint

untaint (third-person singular simple present untaints, present participle untainting, simple past and past participle untainted)

untaints (present singular third-person)
untainting (participle present)
untainted (participle past)
untainted (past)

(transitive, computing, programming) To mark (a previously tainted variable) as safe.


ajaxification

(programming) The use of Ajax in JavaScript source code.


block comment

(programming) A comment in source code that occupies several consecutive lines.


undef

(programming) Abbreviation of undefined.


CUD

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


INT

en-noun

INT (countable and uncountable, plural INTs)

(programming) Abbreviation of interrupt.


load-and-go

(programming, often attributive) The assembly and loading into memory of a program as a single operation, without generating and saving an intermediate object program.


mock out

en-verb

mock out (third-person singular simple present mocks out, present participle mocking out, simple past and past participle mocked out)

mocks out (present singular third-person)
mocking out (participle present)
mocked out (participle past)
mocked out (past)

Now that we know we have mocked out the objects and verified that the method we expected was called, we are ready to write a unit test.

2011, Scott Millett, Jerrel Blankenship, Matthew Bussa, Pro Agile .NET Development with SCRUM (page B-18)

(programming, transitive) To replace (source code or other software elements) with a stub that exhibits the desired behaviour, typically for use in automated testing.


gnisrap

From parsing spelled backwards. Introduced by Thomas R. G. Green in a 1987 paper.

Similarly we believe our model could handle the different 'psychological complexity' levels of certain drawing programs to which Kiss and Pinder draw attention. In fact, our approach has much in common with theirs at the gnisrap end, but they do not consider the parsing side.

1987, Human-computer Interaction — INTERACT '87: Proceedings..., page 69:

Green et al (1987) have proposed a number of extensions to Rist's model. In their parsing/gnisrap model of coding, they describe the process by which a skeletal plan is instantiated in a programming notation.

1996, Wayne D. Gray, Deborah Ann Boehm-Davis, Empirical Studies of Programmers: Sixth Workshop, page 60:

(programming) The cognitive process of creating a mental model of a computer program by reading the code.


pseudo-type

(programming) A data type that can be only used in certain places, for example as the argument to a function.


LTS

leaning toothpick syndrome
leaning toothpick syndrome#English

(programming) Initialism of leaning toothpick syndrome.


test double

A test double is something that stands in for a real system when tests are being run. It comes from the idea of a double who stands in for the real actor when shooting a movie.

2010, Ken Pugh, Lean-Agile Acceptance Test-Driven-Development, Pearson Education, →ISBN:

(programming) An object or procedure that looks and behaves like its release-intended counterpart, but is actually a simplified version to reduce complexity and facilitate testing.


doubly-linked

a doubly-linked list

(programming, of a data structure) Whose elements each link to the previous and the next element.


gradual typing

(programming) A type system where some variables are statically-typed and some are dynamically-typed.


type-check

type-check (third-person singular simple present type-checks, present participle type-checking, simple past and past participle type-checked)

type-checks (present singular third-person)
type-checking (participle present)
type-checked (participle past)
type-checked (past)


C-style string

After the C programming language, which uses this type of string by default.

Coordinate term: Pascal string

(programming) A string which uses a null value to mark its own end.


Pascal string

After the Pascal programming language, which uses this type of string by default.

(programming) A string whose length is stored as a separate value.


plain old data

(programming) Data structures that are represented as passive collections of field values.


shared pointer

(programming) A smart pointer that allows other pointers to point to the same address.


binary-safe

(programming, distributed computing) Guaranteed not to corrupt or alter binary data.


NELIAC

programming language
programming language

(programming) Initialism of Navy Electronics Laboratory International ALGOL Compiler: a dialect and compiler implementation of the ALGOL 58 programming language.


dasherize

dasherize (third-person singular simple present dasherizes, present participle dasherizing, simple past and past participle dasherized)

dasherizes (present singular third-person)
dasherizing (participle present)
dasherized (participle past)
dasherized (past)

(programming, informal) To convert (a string) to use hyphens as word separators.


errno

(programming, informal) A value or variable that identifies the kind of error (or lack thereof) that has occurred during the execution of a program or subroutine.


NRVO

(programming) Initialism of named return value optimization.


curly-brace language

en-noun

curly-brace language (plural curly-brace languages)

curly-bracket language
curly-bracket language#English

(programming) Synonym of curly-bracket language


object-oriented language

object-oriented language (plural object-oriented languages)

(programming) Any programming language that encapsulates the state and operations inside objects that support inheritance.

limbaj de programare orientată pe obiecte


docblock

(programming) A specially formatted comment in source code, used to document a specific segment of the code.


curiously recurring template pattern

curiously recurring template pattern (plural curiously recurring template patterns)

curiously recurring template patterns (plural)

Title of a 1995 article which describes this idiom.

(programming) An idiom in which a class X derives from a class template instantiation using X itself as template argument.


bitarray

(programming) An array (or list) of bits (representing Boolean variables)


flip-flop operator

flip-flop operator (plural flip-flop operators)

(programming) An operator specifying a range of conditions, such that the related code executes only if the first condition is true, and only until the second condition becomes true.


dialecting

REBOL's unique dialecting capability enables information to flow automatically over managed, encrypted, and authenticated connections.

2007, Jessica Keyes, X Internet: The Executable and Extendable Internet, page 133:

(programming) The creation of domain-specific languages within an existing programming language.


Standard ML

(programming) A functional, modular programming language.


premature optimization

premature optimization (countable and uncountable, plural premature optimizations)

It was first coined by Donald Knuth in his 1974 monograph The Art of Computer Programming which won a Turing Award.

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

1973, Donald Knuth, The Art of Computer Programming:

2016, Amitt Mahajan, Why you’re mispricing your VR seed round, VentureBeat
Similar to engineering, premature optimization can cause you to focus on items that don’t materially affect your outcome and can divert your attention away from those that do.

(programming) The act of wasting resources on optimising source code that does not represent a significant bottleneck.

The Art of Computer Programming
Turing Award


delay slot

(programming) A slot for an additional instruction that is executed out of sequence, before the instruction (typically a jump or branch) that immediately precedes it in code.


MCI

(programming) Initialism of Media Control Interface.


micro-optimization

(programming, computer architecture) Optimization at the level of individual instructions and operations.


SuperBASIC

structured programming
structured programming

(programming) An extended version of the BASIC programming language that allowed for structured programming.


class-based programming

class-based programming (plural class-based programmings)

(programming) A programming style, where inheritance is achieved by using classes of objects.


prototype-based programming

prototype-based programming (plural prototype-based programmings)

(programming) A programming style, where inheritance is achieved by using existing objects via delegation that act as prototypes.


array decay

(programming) The conversion of an array variable into a pointer to its first element.


garbage collected

Java is a garbage collected language.

(programming) Featuring garbage collection.

You should use a garbage collected class here.

(programming) Suscepible to garbage collection.


magic string

(programming) A text input that is never expected to be received in normal conditions and that activates otherwise hidden functionality.


length operator

length operator (plural length operators)

(programming) An operator that returns the length of a string in bytes, characters, or code points, or the number of consecutive numerically indexed values in a table or array.


do-while loop

(programming) a construction in which a series of commands are performed once initially, and then repeatedly for as long as a specified condition evaluates to true.


subclasser

(programming) One who or that which subclasses.


type hinting

(programming) The specification of data types in an otherwise untyped language, to indicate variables having a particular type.


symbolic constant

symbolic constant (plural symbolic constants)

(programming) An identifier that is substituted by a pre-defined value prior to compilation.


forward declaration

forward declaration (countable and uncountable, plural forward declarations)

(programming) The declaration of an identifier before it is given a complete definition, so that the compiler can know its data type and memory size.


include guard

(programming) In C and C++, a preprocessor directive used in header files to prevent them from being included multiple times.


narrowing conversion

narrowing conversion (plural narrowing conversions)

(programming) A conversion from one data type to another where the new data type’s size is smaller than the old one’s, such that the conversion may result in loss of information.


widening conversion

widening conversion (plural widening conversions)

(programming) A conversion from one data type to another where the new data type’s size is the same or greater than the old one’s, guaranteeing that there will be no loss of information.


Four-Russians

Introduced by four Russians, V. L. Arlazarov, E. A. Dinic, M. A. Kronrod, and I. A. Faradzev, in 1970.

Four-Russians method

Four-Russians technique

(attributive, programming) Method of Four Russians: a technique for speeding up certain matrix operations by partitioning the matrix into smaller blocks associated with lookup tables


numeric promotion

numeric promotion (plural numeric promotions)

Numeric promotion is not a general feature of the Java programming language, but rather a property of the specific definitions of the built-in operations.

2000, James Gosling, The Java Language Specification, page 78:

(programming) The conversion of a numeric data type into one that can hold more information. For example, the conversion of a long into a double.


tribool

(programming) A variable that behaves similar to a Boolean, but allows three values instead of two.


scoped enumeration

scoped enumeration (plural scoped enumerations)

(programming) In C++, an enumeration that automatically defines its own name as a scope.


dangling else

(programming) A potential ambiguity in a programming language that occurs when an else clause can be associated with either a nested conditional or with the clause that encloses the nested conditional.


jump out

en-verb

jump out (third-person singular simple present jumps out, present participle jumping out, simple past and past participle jumped out)

jumps out (present singular third-person)
jumping out (participle present)
jumped out (participle past)
jumped out (past)

Jump out of a loop completely under certain conditions, thereby terminating the execution of a loop.

2009, Rakesh Tyata, A Step in Programming with C, →ISBN, page 48:

(programming) To exit a loop, function, etc. ending its execution before it has reached its terminating condition.


pyramid of doom

en-noun

pyramid of doom (plural pyramids of doom)

It turns out that one way we can look at Bind is as a recipe against the pyramid of doom.

2022, Enrico Buonanno, Functional Programming in C#, Second edition, Simon and Schuster, →ISBN:

(programming, informal) The presence of many levels of nested indentation in source code, making it difficult for a person to read.


Scratch

visual programming language
visual programming language#English

(programming) A free educational visual programming language developed by the Massachusetts Institute of Technology Media Lab.


Scratcher

(programming) A user of the Scratch visual programming language.


visual programming language

visual programming language (plural visual programming languages)

(programming) A programming language that lets users create programs by manipulating program elements graphically rather than by writing code.


foreach loop

(programming) A section of code similar to a for loop, but repeating a series of instructions for every item in a collection.


stringize

en-verb

stringize (third-person singular simple present stringizes, present participle stringizing, simple past and past participle stringized)

stringizes (present singular third-person)
stringizing (participle present)
stringized (participle past)
stringized (past)

(programming, transitive) To convert to, or treat as, a string of text characters.


stringization

These new features are charizing, stringization, token concatenation, string concatenation, trigraph replacement, and predefined macros.

1993, Mark Andrews, Visual C++ Object-oriented Programming, page 186:

(programming) The process of stringizing.


charizing

(programming) Conversion to, or treatment as, a char (text character).


token-pasting operator

en-noun

token-pasting operator (plural token-pasting operators)

(programming) The operator ## in the C or C++ preprocessor, which permits separate tokens to be joined into a single token.


datetime

If you anticipate dealing with a database with multiple time zones, we suggest you consider a region-to-GMT offset table and store all times as absolute GMT datetimes for ease of calculation.

2002, Tamar E. Granor, Doug Hennig, Ted Roche, Hacker's Guide to Visual FoxPro 7.0, page 24:

(programming) A variable or data type that can hold both date and time components.


fat comma

(programming, Perl) The operator =>, used in declaring hashes.


typechecker

The catch is that to get the full benefits of the type checker, the programmers have to add complex annotations to their code.

2015 April 2, James Somers, “Toolkits for the Mind”, in MIT Technology Review:

(programming) A system or algorithm that verifies values against their required data types, according to the type system of the language.


paamayim nekudotayim

From Hebrew פעמיים נקודתיים (“double colon”); introduced in the Israeli-developed Zend Engine 0.5 used in PHP 3. The correct word should be nekudatayim, but Israelis commonly say the word with this mistake.

uder

פעמיים נקודתיים

(programming) The scope resolution operator :: in the PHP programming language.


bytestring

However, the underlying file model of these approaches is that of Unix files (i.e., bytestrings), whereas we assume record-structured files with key-based access.

1994, Richard T. Snodgrass, Marianne Southall Winslett, Association for Computing Machinery. Special Interest Group on Management of Data, Proceedings (page 255)

Standard Python strings are really bytestrings, and a Python character, being such a string of length 1, is really a byte.

2005, Alex Martelli, Anna Ravenscroft, David Ascher, Python Cookbook:

(programming) A text string treated as a series of single bytes rather than a series of characters of possibly varying storage size.


style sheet language

en-noun

style sheet language (plural style sheet languages)

(programming) A computer language that expresses the presentation of structured documents.

Stylesheet-Sprache

a computer language that expresses the presentation of structured documents


predeclaration

(programming) A declaration made in advance; forward declaration.


conditional comment

conditional comment (plural conditional comments)

(programming) A comment in source code that can be interpreted as a directive by some systems, but is ignored by those others that are not aware of the convention; formerly used to overcome compatibility issues between web browsers.


forward-declare

en-verb

forward-declare (third-person singular simple present forward-declares, present participle forward-declaring, simple past and past participle forward-declared)

forward-declares (present singular third-person)
forward-declaring (participle present)
forward-declared (participle past)
forward-declared (past)

(transitive, programming) Synonym of predeclare


bareword

(programming, chiefly Perl) A sequence of text characters in source code that do not form a keyword nor part of a quoted string, and may potentially be interpreted in various ways.


behavioral subtyping

(programming, language theory) A subtype relation of the form that each subtype object satisfies the specification of the supertype.


weak typing

(computing, programming) A system that does not place any restriction on the interactions between objects of different data types.


premature optimisation

en-noun

premature optimisation (countable and uncountable, plural premature optimisations)

premature optimization
premature optimization#English

(programming) Alternative form of premature optimization


off-by-one error

off-by-one error (plural off-by-one errors)

(programming) A logic error where a value, typically the number of iterations of a loop, is specified incorrectly, being either 1 less or 1 more than it should be.


LLVM

(programming) Initialism of Low Level Virtual Machine. (collection of modular and reusable compiler and toolchain technologies that are used to develop compiler front ends and back ends)


IDLE

(programming, Python) Initialism of Integrated DeveLopment Environment.

(programming, Python) Initialism of Integrated Development and Learning Environment.


augmented assignment

augmented assignment (countable and uncountable, plural augmented assignments)

(programming) An assignment by which an operator takes a variable as one of its arguments and then assigns the result back to this variable.


code completion

code completion (countable and uncountable, plural code completions)

(programming, uncountable) Autocompletion of source code.

(programming) A token predicted by means of autocompletion.


singlecast

(programming, of a delegate) Having a single target; not multicast.


costatement

(programming) A list of statements that effectively execute together (though not simultaneously), such that each can yield execution to the others to avoid delaying the program. They are used to implement cooperative multitasking.


special case

en-verb

special case (third-person singular simple present special cases, present participle special casing, simple past and past participle special cased)

special cases (present singular third-person)
special casing (participle present)
special cased (participle past)
special cased (past)

Special-casing the 100 most common words in English might speed things up.

1988, Jon Louis Bentley, More Programming Pearls: Confessions of a Coder, page 10:

If these programs work as well as they can even without going through QuickDraw, what's the penalty for going around the system and special casing?

1992, Scott Knaster, Keith Rollin, Macintosh Programming Secrets, page 46:

Other languages have since special-cased that kind of computation with, for example, generators in Python or something where you can yield values.

2009, Peter Seibel, Coders at Work: Reflections on the Craft of Programming, page 258:

(transitive, intransitive, chiefly programming) To treat something as a special case; to handle in an explicitly different way.


concat

concat (third-person singular simple present concats, present participle concatting, simple past and past participle concatted)

concats (present singular third-person)
concatting (participle present)
concatted (participle past)
concatted (past)

Abbreviation; also used as a keyword or function name in some programming environments.


OOM

If you write infinitely recursive code, you might generate an OOM error.

(programming) Initialism of out of memory.


double free

(programming) The situation where a program attempts to free a previously allocated resource more than once, potentially resulting in undefined behaviour that may be exploited by an attacker.


safe navigation operator

en-noun

safe navigation operator (plural safe navigation operators)

One operator I haven't talked about yet is the safe navigation operator (?.). By preceding a dot with a question mark, you can safely navigate to methods or properties of an object even if that object is null.

2009, Bashar Jawad, Groovy and Grails Recipes, page 57:

The safe navigation operator (?.) provides navigation on the nested properties without getting any exception when a null value is evaluated from any of the properties iterated.

2015, Mert Caliskan, Kenan Sevindik, Beginning Spring, page 278:

C# 6 introduced a cascading nulls operator, also called the null-conditional operator and the safe navigation operator.

2017, Gary McLean Hall, Adaptive Code: Agile coding with design patterns and SOLID principles:

(programming) A binary operator that returns its second argument, unless the first argument is null, in which case it returns null; used to simplify code that would otherwise need multiple explicit checks for nullity.


retval

(programming) Abbreviation of return value.


leaning toothpick syndrome

leaning toothpick syndrome (uncountable)

Introduced in the official Perl documentation, in reference to the shape of the backslash character.

(programming) The situation in which a quoted string expression becomes difficult to read because it contains a large number of escape characters, usually backslashes, to avoid delimiter collision.


clean coder

(programming) A programmer who writes generally clean code.


thunker

And 32-bit Windows applications require the bundled MetaWare Applications Development Kit (ADK), a 32-to-16 bit Windows thunker similar to but predating the Microsoft Win32s system.

1995, Personal Computer Magazine, volume 14, numbers 7-8, page 222:

There were no 32-bit scanner drivers or TWAIN modules, none were forthcoming from Microsoft […] Then along came the TWAIN_32 standard of the universal thunker.

1996, Deke McClelland, Robert Phillips, Photoshop 3 for Windows 95 Bible, page 721:

(programming) A software mechanism that thunks.


readtable

(programming) In Lisp and related languages, a data structure specifying how text characters are to be interpreted syntactically.


Haskeller

Relatively advanced Haskellers might find the exports of default Prelude lacking or even devastating: encouraging the use of String, asynchronous exceptions (error), and partial functions.

2016, Samuli Thomasson, Haskell High Performance Programming, Packt Publishing Ltd, →ISBN, page 363:

(programming) A person who programs in Haskell.


prototype-oriented programming

(programming) A programming paradigm that encapsulates states and operations inside "prototypes" to design applications and computer programs.

prototyporientierte Programmierung

programming paradigm that uses prototypes to design application and computer programs


IIFE

You’ve already seen it mentioned a few times, but in case it wasn’t clear, I’m proposing the term “Immediately-Invoked Function Expression”, and “IIFE” if you like acronyms. The pronunciation “iffy” was suggested to me, and I like it, so let’s go with that. What is an Immediately-Invoked Function Expression? It’s a function expression that gets invoked immediately. Just like the name would lead you to believe.

2010 November 15, Ben Alman, “Immediately-Invoked Function Expression (IIFE)”, in (Please provide the book title or journal name):

(programming) Initialism of immediately-invoked function expression.


shadow memory

(programming) The use of one part of computer memory to store information about other parts of memory, used for example to keep track of which parts have been allocated by the program.


call site

(programming) The section of code from which another section is called.


toplevel

(programming) Alternative form of top-level


compile-time

(programming) Properties of the program that can be reasoned about during compilation.


off-side rule

The computer-programming sense was coined by British computer scientist Peter Landin in 1966 and named after the rule in football.

coin

Blocks in Pythons are delimited by white space indentation: the increase in indentation delimited the start of statements while the decrease signifies the end of the current block (off-side rule).

2018, Encyclopedia of Bioinformatics and Computational Biology, Elsevier, →ISBN, page 195:

(programming) In some programming languages, the convention by which the indentation of a line of source code affects its meaning.


overindex

en-verb

overindex (third-person singular simple present overindexes, present participle overindexing, simple past and past participle overindexed)

overindexes (present singular third-person)
overindexing (participle present)
overindexed (participle past)
overindexed (past)

(programming, transitive) To attempt to access an element beyond the bounds of (an array).


return-oriented programming

(programming) A computer security exploit technique by which the attacker gains control of the call stack to hijack program control flow and then executes prepared instruction sequences ("gadgets") that are already present in the machine's memory.


code cave

Once a code cave is created, you can execute it using either thread injection or thread hijacking.

2016, Nick Cano, Game Hacking: Developing Autonomous Bots for Online Games:

In ELF executables, there aren't a whole lot of code caves (such as in the PE format), so you are not likely to be able to shove more than just a meager amount of shellcode into existing code slots […]

2016, Ryan "elfmaster" O'Neill, Learning Linux Binary Analysis (page 97)

(programming) A sequence of null bytes in a process's memory, offering the capacity for the injection of custom instructions by a hacker.


most vexing parse

The phrase was introduced by Scott Meyers in Effective STL (2001).

(programming) A specific form of syntactic ambiguity resolution in the C++ programming language, whereby attempts to declare a variable may be undesirably interpreted as attempts to declare a function.


zero-based

Zero-based budgeting
Zero-based numbering

(programming) Of an array or list: such the first element of the array or list is called the "zeroth".


VCL

(Delphi, programming) Initialism of Visual Component Library.


FMX

(Delphi, programming) Initialism of FireMonkey.


VMCI

(programming) Initialism of Virtual Machine Communication Interface.


arraylet

(programming) Any of the subarrays that make up a larger array-like data structure whose elements do not have to be stored contiguously.


self-interpreter

(programming) A metacircular interpreter where the host programming language is also the language being interpreted.


ungolfed

the original, ungolfed code

(programming) Not having been written in short form according to the challenge of code golf.


gap buffer

(programming) A dynamic array that allows efficient insertion and deletion operations clustered near the same location.


ODR

One Definition Rule
w:One Definition Rule

(programming, C++) Initialism of One Definition Rule.


pessimization

en-noun

pessimization (countable and uncountable, plural pessimizations)

(programming) A change to program code that makes it less efficient, the opposite of an optimization.


optimize out

en-verb

optimize out (third-person singular simple present optimizes out, present participle optimizing out, simple past and past participle optimized out)

optimizes out (present singular third-person)
optimizing out (participle present)
optimized out (participle past)
optimized out (past)

The loop that counts from 1 to 1,000,000 is optimized out by the compiler, because nothing happens inside the loop and the value is not used afterwards.

(transitive, programming) To omit (some portion of program logic) through optimization, when it is found to be unused or unnecessary.


ROMable

Let's C does support ROMable code and can be linked with PL/M and compatible languages via an "alien" function type.

It produces ROMable code which can be loaded directly into target systems via Intel ICE emulators.

1990, 16-/32-bit embedded processor handbook, pages 2–19:

(programming) Able to execute from read-only memory.


sequence point

(programming) Any point during a computer program's execution at which it is guaranteed that all side effects of previous evaluations will have been performed, and no side effects from subsequent evaluations have yet been performed.


Rustacean

/ɹʌsˈteɪʃən/

New Rustaceans commonly get stuck on strings for a combination of three reasons: […]

2019, Steve Klabnik, Carol Nichols, The Rust Programming Language, page 137:

We covered a whole lot of ground here in a subject that's probably the heaviest to grasp for a new Rustacean.

2019, Rahul Sharma, Vesa Kaihlavirta, Mastering Rust, page 210:

You'll find that the Rust community loves to track the progress of a certain area using their “Are We X Yet” sites. This is a tradition from the Mozilla community, which many Rustaceans are also involved in.

2020, Shing Lyu, Practical Rust Projects, page 154:

(programming, informal) A user of the Rust programming language.


retpoline

(programming, neologism) A code construct that uses return operations to prevent speculative execution.


tree shaking

(programming) In JavaScript, automatic dead code elimination during the build.


peepholing

peephole optimization
peephole optimization

(programming) The use of peephole optimization.


succ

You can follow the pointer to see that we got it right, so that each succ and prev points to the right god.

2014, Bjarne Stroustrup, Programming: Principles and Practice Using C++, page 614:

(chiefly programming) Abbreviation of successor.


thenable

(programming) An object or function that exposes a then method returning a promise.


free list

(programming) A data structure, used in dynamic memory allocation, that connects free (unallocated) regions of memory together in a linked list.


logpoint

(programming, rare) A point in program code at which a message is logged for debugging.


awaitable

(programming) Able to be executed in an asynchronous manner, with the caller receiving any result at a later stage.


awaitable

(programming) An operation that can be executed in an asynchronous manner, with the caller receiving any result at a later stage.


freelist

(programming) Alternative form of free list


kebab case

In allusion to the appearance of a shish kebab, with various food items assembled on a skewer.

(programming) The practice of writing identifiers using hyphens to separate words.


remotable

(programming) Offering support for remoting.


SFINAE

substitution failure is not an error
w:substitution failure is not an error

(programming) Initialism of substitution failure is not an error.


pseudohandle

(programming) A special value that can be treated as a handle (e.g. to identify a process) but is not a true handle.


subproperty

The Origin property represents a coordinate and has X and Y subproperties.

(chiefly programming) A property of another property.


Elvis operator

The notation ?: has been humorously reinterpreted as an emoticon representing the eyes and hairstyle of Elvis Presley.

(programming, informal) A binary operator that returns its first operand if that operand evaluates to true, and otherwise evaluates and returns its second operand.


Yoda condition

/ˌjəʊdə kənˈdɪʃn̩/

/ˌjəʊdə kənˈdɪʃən/

An allusion to the somewhat grammatically reversed speech style of Yoda, a character in the Star Wars franchise—for example, “Truly wonderful, the mind of a child is.” The term was possibly coined by Félix Cloutier (username “zneak”) in 2010, based on Yoda notation which is claimed to have been coined by Thomas M. Tuerke and published online in 2006.

A great convention to stick to, the Yoda condition requires you to keep the comparison variable on the right side of the conditional statement.

2013, Adam Onishi, “Getting Started”, in Pro WordPress Theme Development, Berkeley, Calif.: Apress, Springer Nature, →ISBN, page 14:

A computer programmer is trying to explain a recent problem to a journalist friend, and she says, "This jimmy had put in Yoda conditions and had been refactoring my previous work so that in the end it was just hooker code." The journalist friend looks baffled.

2014, Kirk Hazen, “The Winding Paths of Language in Education”, in An Introduction to Language (Linguistics in the World), Malden, Mass.: Wiley-Blackwell, →ISBN, page 331:

// what happens if the debug parameter is removed // from the request and becomes a null? // should really be using a Yoda Condition here ;)

2015, Jim Manico, August Detlefsen, “Access Control”, in Iron-clad Java: Building Secure Web Applications (Oracle Press), New York, N.Y.: McGraw-Hill Education, →ISBN, page 66:

Writing if(isHungry = true) by accident will set isHungry to true every time the if statement is hit! To avoid this possibility, we can just write if(isHungry). Alternatively, some (wise) people use what are called Yoda conditions to check an if statement: if(true == isHungry). The reason we write the if statement in this way is that, if we accidentally write if(true = isHungry), this will generate a compiler error, catching the mistake.

2015 February, William Sherif, “If, Else, and Switch”, in Learning C++ by Creating Games with UE4: Learn C++ Programming with a Fun, Real-world Application that Allows You to Create Your Own Games!, Birmingham, West Midlands: Packt Publishing, →ISBN, page 48:

Leo grimaces at Caleb. "I never asked—how did you figure it out?" / "Yoda conditions. You may as well have signed your name." At my blank look, Caleb says, "Your boyfriend writes his code backwards."

2020, Amy Noelle Parks, “Evie”, in The Quantum Weirdness of the Almost-kiss, New York, N.Y.: Amulet Books, Abrams Books, →ISBN:

Programmers normally write conditions such as x == 7 with the variable name (an lvalue) on the left and the literal (an rvalue) on the right. Placing the literal on the left, as in 7 == x (which is syntactically correct and is sometimes called a "Yoda condition"), enables the compiler to issue an error if you accidentally replace the == operator with =. The compiler treats this as a compilation error because you can't change a literal's value.

2022, Paul Deitel, Harvey Deitel, C++20 for Programmers: An Objects-natural Approach (Deitel Developer Series), Boston, Mass.: Pearson Prentice Hall, →ISBN:

(programming, informal) A logical condition with the usual order of operands reversed for various reasons, such as avoiding accidental misuse of = (assignment) instead of == (equality), a mistake that is harder to spot when using the normal order of operands.

Star Wars: Episode II – Attack of the Clones


literate programming

(programming) A programming paradigm in which a program is given as an explanation of the program logic in a natural language (such as English), interspersed with snippets of macros and traditional source code, from which compilable representation can be generated.


RVO

(programming) Initialism of return value optimization.


stringable

en-adj

stringable (comparative more stringable, superlative most stringable)

more stringable (comparative)
most stringable (superlative)

(programming) Able to be converted to a string of text characters.


noise word

For example, in the COBOL goto statement, written GO TO , the keyword GO is required, but TO is an optional noise word which carries no information and is used only to improve readability.

1975, Terrence W. Pratt, Programming Languages: Design and Implementation, page 381:

(programming) A word that may be included in source code for clarity but does not change the meaning.


dereferencer

(programming) Any operator that dereferences something.


as-if rule

(programming) A rule by which compilers are allowed to apply any optimizing transformation to a program provided that it makes no change to the observable behavior of the program.


NOP sled

(programming) A series of identical values in memory that instruct the CPU to take no action and proceed to the next instruction, used in shellcode etc. to increase the chances of any random instruction access executing the sequence that follows.


aspect-oriented programming

(programming) A programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns.


data race

(programming) A problematic situation where one thread could potentially read or write a memory location while another thread is writing to it.


Kotlin

Named after Kotlin Island (Russian Ко́тлин (Kótlin)), near St. Petersburg, by analogy to the related language Java, whose name ultimately comes from an Indonesian island.

(programming) A cross-platform, statically typed, general-purpose object-oriented programming language with type inference, designed to interoperate with Java.


code morphing

(programming) The obfuscation of intermediate-level code (such as compiled Java or .NET languages) by breaking it up into smaller sequences and replacing them by equivalent constructs.


compilation behaviour

(programming) The practice of repeatedly modifying a failing program in an attempt to make it compile, without immediately thinking about the semantics.


type hint

(programming) An instance of type hinting: the specification of a data type in an otherwise untyped language.


logic error

(programming) a case in which a programmer writes viable code that however produces undesired results


stacklessness

(programming) The property of being stackless.


pseudoinstruction

The compiler constructs one or several instructions corresponding to the respective pseudoinstruction and adds them to the object program just being formed.

1967, Information processing machines, number 13, page 239:

(programming) A command that resembles, but is not in fact, a machine instruction, such as a special directive or a command that is mapped to a sequence of real instructions.


Tcler

(programming) A user of the Tcl programming language.


type juggling

(programming) In the PHP programming language, the automatic treatment of variables as a certain data type depending on the context in which they are used.


SASL

St Andrews Static/Standard Language
w:SASL (programming language)

(programming) Initialism of St Andrews Static/Standard Language.


turbofish

/ˈtɝboʊˌfɪʃ/

From turbo- + fish; coined by Anna Harren in 2015, originally in jest, later adopted by official documentation.

For static method calls, you can supply the type parameter explicitly using the turbofish ::<> notation:

2017 November 21, Jim Blandy, Jason Orendorff, Programming Rust: Fast, Safe Systems Development, "O'Reilly Media, Inc.", →ISBN:

The turbofish operator in generic functions appears right after the function name and before the parenthesis.

2019 January 31, Rahul Sharma, Vesa Kaihlavirta, Mastering Rust, Packt Publishing Ltd, →ISBN, page 122:

You can add a turbofish to a function call with the syntax function::<Type>(). For example, collect::<Vec<MyType>>().

2021 June 30, Herbert Wolverson, Hands-on Rust, Pragmatic Bookshelf, →ISBN:

(programming) A syntactic element in Rust, ::<>, with arguments between < and >, that specifies the generic arguments of a function in an expression.


alertable

Since your thread is in an alertable state, as soon as an APC entry appears, the system wakes your thread and empties the queue (by calling the callback routines).

2000, Jeffrey Richter, Jason D. Clark, Programming Server-side Applications for Microsoft Windows 2000:

If you know the HANDLE of a thread you wish to signal, and that thread has performed an alertable wait, then queueing an APC is often significantly quicker than waking the target thread by using kernel objects (as we are about to review).

2008, Joe Duffy, Concurrent Programming on Windows:

Every thread has a queue of APCs attached to it, and these are processed when the thread is in an alertable state, such as when they call functions like WaitForSingleObjectEx, WaitForMultipleObjectsEx, and Sleep.

2012, Michael Sikorski, Andrew Honig, Practical Malware Analysis:

(programming) Capable of receiving and responding to notifications from other threads of execution.


conditional operator

en-noun

conditional operator (plural conditional operators)

(programming) synonym of ternary operator


Voldemort type

Named after Lord Voldemort in the Harry Potter novels, who is typically called "He Who Must Not Be Named" or "You-Know-Who" by other characters, as he magically enforces a ban on his name being spoken.

RandomNumberGenerator becomes a type that is inside generator's scope. It is simply not visible outside of generator. It cannot be named — hence it's a Voldemort Type.

2012 May 7, Walter Bright, “Voldemort Types In D”, in Dr Dobb's:

A recent issue I discovered (and no doubt has been encountered before) is that using Voldemort types in D can result in insane symbol bloat.

2016 May 23, Steve Schveighoffer, “Have your Voldemort types, and keep your disk space too!”, in Steve Schveighoffer's Blog:

(programming) A data type that is unspeakable.


impl

(programming) Clipping of implementation.


JHTML

Hypertext Markup Language
Hypertext Markup Language#English

(programming) Initialism of Java within Hypertext Markup Language.


jagged array

(programming) An array of arrays in which the component arrays are of varying lengths.


dense array

(programming) An array in which most of the values are non-zero.


bit array

(programming) An array structure which store bit (0,1) values.


sparse array

(programming) An array in which most of the values are zero.


anaphoric macro

anaphoric macro (plural anaphoric macros)

(programming) A macro that captures some supplied form that can then be referred to within the macro.


Blub paradox

Coined by Paul Graham, who used a hypothetical programming language called Blub as an example.

(programming) The situation where a programmer sees less powerful programming languages than those he/she knows as lacking in important features, but more powerful ones as having bizarre or unnecessary features.


indify

en-verb

indify (third-person singular simple present indifies, present participle indifying, simple past and past participle indified)

indifies (present singular third-person)
indifying (participle present)
indified (participle past)
indified (past)

(programming) Change a particular functionality to use invokedynamic calls.


recomment

recomment (third-person singular simple present recomments, present participle recommenting, simple past and past participle recommented)

recomments (present singular third-person)
recommenting (participle present)
recommented (participle past)
recommented (past)

When all these things are done and the blank lines are removed (and the code recommented), we have […]

1997, William B. Jones, Assembly Language for the IBM PC Family, page 586:

Once you have run the program, you can “recomment” the line back to the way it was.

2015, Jack Purdum, Beginning C for Arduino, Second Edition:

(transitive, programming) To convert (a portion of source code, configuration, etc.) back to a comment, so that it no longer takes effect.


scope block

(programming) the region of a computer program where a name binding is valid


subalgorithm

(programming) An algorithm that forms a part of a larger algorithm.


name binding

(programming) the association of entities (data and/or code) with identifiers


global scope

(programming) A type of scope that has an effect throughout an entire computer program.


call by sharing

(programming) An evaluation strategy where arguments passed to a function can be mutated in a way that is visible to the caller (unlike call-by-value) but access is not given to the specific variables passed as arguments (unlike call-by-reference).


code folding

(programming) A feature in many code editors that allows blocks of code to be "folded"; i.e. collapsed or hidden such that they can be shown again later.


walkback

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

Walkbacks, inspectors, and debuggers are the heart of Smalltalk's debugging facilities. Walkbacks are displayed when Smalltalk detects an error or a breakpoint. The debugger offers many tools for detecting and correcting code errors.


load module

(programming) The executable form of a program that is produced by a linkage editor, taking as input the output of a compiler and/or assembler


voodoo programming

(programming, informal) A slapdash approach to programming involving guesswork or plagiarism rather than proper analysis and comprehension.


Zalgo

Said to have been coined in 2004 by Dave “Shmorky” Kelly as the name of a mysterious malevolent entity appearing in webcomics and creepypasta.

Anyway. My personal opinion is that people are making a bigger deal about it than it needs to be. Just be aware that there could maybe potentially be an issue in your app if you release Zalgo, but don't spend the hours going through and wrapping everything in nextTick just to say you are Zalgo-free even if Zalgo being released has ever doomed you.

2013 August 30, Paul, “Re: [nodejs] Downside to not wrapping sync callbacks in nextTick()?”, in nodejs (Usenet), message-ID <53ece666-5929-41ba-843c-edc4350af00d@googlegroups.com>:

This works wonderfully, until you hit an exception in one of your zalgo-promise functions.

2013 August 30, Dean Landolt, “Re: [nodejs] Downside to not wrapping sync callbacks in nextTick()?”, in nodejs (Usenet), message-ID <CAPm8pjp2ogU58Z5RsZ_RQb_O=iB3RBeoh1eyM6xp-0Vwm7cebQ@mail.gmail.com>:

Another crucial detail is to consider the unleashing Zalgo anti-pattern (we have seen it in action in Chapter 1, Node.js Design Fundamentals).

2014 December 30, Mario Casciaro, Luciano Mammino, “Chapter 6”, in Node.js Design Patterns, Packt, →ISBN, page 281:

The explosion in execution branches makes explaining and testing this approach difficult, and reliable behavior in a production environment more challenging. Isaac Schlueter has written a popular blog post about this titled “Designing APIs for Asynchrony,” in which he refers to the inconsistent behavior as “releasing Zalgo.”

2015 July, Daniel Parker, “Chapter 1: Asynchronous JavaScript”, in JavaScript with Promises: Managing Asynchronous Code, O'Reilly Media, →ISBN, page 6:

The JavaScript community, for instance, has discovered a monstrous entity named “Zalgo.” […] When you are passing around lambdas, it is easy to release Zalgo if you mix synchronous and asynchronous styles.

2015, Robert Fischer, “Chapter 2: Understanding Lambdas in Java 8”, in Java Closures and Lambda, →ISBN, Don’t Release Zalgo, page 29:

(programming, humorous) A notional entity said to be "released" due to unpredictable program behaviour resulting from an API's inconsistent use of synchronous versus asynchronous operations.


const-correct

(programming) Exhibiting const correctness.