trace scheduling

(programming) An optimization technique for compilers that rearranges traces (instruction sequences) according to their frequency of execution, and inserts additional code to compensate for any effects of the rearrangement.


back pointer

(programming) A pointer that reciprocates another structure's pointer to its own containing structure, typically found in doubly linked lists and trees.


Simula

programming language
programming language

(computer languages) A programming language of the ALGOL family that pioneered many object-oriented concepts such as classes and objects.


call-with-current-continuation

en-noun

call-with-current-continuation (countable and uncountable, plural call-with-current-continuations or calls-with-current-continuation)

call-with-current-continuations (plural)
calls-with-current-continuation (plural)

(programming) In Scheme, a procedure that captures the current continuation to pass it as an argument to another continuation.


enbugging

From en- + bug + -ing, coined as an opposite to debugging.

(programming, humorous, rare) The introduction of bugs into a program.


template metaprogramming

(programming) A form of metaprogramming in which templates are used by a compiler to generate temporary source code, which is then merged with the rest of the source code and recompiled.


service worker

(Internet, programming) A scriptable network proxy in a web browser that manages network requests for a web page.


nano-COM

(programming) The use of a very small subset of the Component Object Model, focused exclusively on the Application Binary Interface (ABI) aspects that enable function and method calls across independently compiled modules.


Parsons problem

Parsons problem (plural Parsons problems)

A kind of computer programming puzzle in which the respondent is asked to choose from a selection of source code fragments in order to construct a program that will solve a given problem.


DBSCAN

(programming) Initialism of density-based spatial clustering of applications with noise, a data clustering algorithm.


programming socks

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

(Internet slang) Particularly feminine thigh-highs, facetiously touted as a way to improve one's programming by transfemmes and femboys in the computing community.


FOIT

Coordinate term: FOUT

(web development) Initialism of flash of invisible text.


xBase

Chosen to avoid lawsuits over the unauthorized use of the proprietary name dBASE. See x (“an unknown variable or placeholder”).

(programming) Any programming language that derives from, or is a clone of, the dBASE system.


xvalue

(programming) A value representing an object near the end of its lifetime whose resources can be reused, typically by moving them.


locale-aware

(computing, programming) The automatic detection of a user's language and country settings, thereby supplying the corresponding content at the same URLs.


fixme

(programming, colloquial) A comment explaining that a section of code requires fixing in some way.


fencepost error

fencepost error (plural fencepost errors)

(programming) An off-by-one error arising from the fencepost problem.


Allman style

Named after American computer programmer Eric Paul Allman (born 1955).

(programming) An indentation style for source code in which the brace associated with a control statement is placed on the following line, indented to the same level as the control statement. Statements within the braces are indented to the next level.


autovivification

(programming) The process of autovivifying.


autovivify

en-verb

autovivify (third-person singular simple present autovivifies, present participle autovivifying, simple past and past participle autovivified)

autovivifies (present singular third-person)
autovivifying (participle present)
autovivified (participle past)
autovivified (past)

(programming) In the Perl programming language, to create an array or hash automatically when a previously undefined value is dereferenced.


Kleene plus

After Stephen Cole Kleene (1909-1994), American mathematician.

Coordinate term: Kleene star

(logic, computing theory) The plus symbol, +, used as an operator to concatenate one or more strings from a given set, widely used in regular expressions.


language server

en-noun

language server (plural language servers)

(programming) A server, implemented in software, that provides language-related services to client applications such as source code editors, based on the text being edited and the actions taken by the human editor.


catastrophic backtracking

(regular expressions) An excessively large amount of backtracking that occurs with certain regular expressions, due to an exponentially large number of possible matching paths to check.


prvalue

Short for pure rvalue. According to Bjarne Stroustrup, coined by ISO/IEC JTC 1/SC 22 in 2010.

(programming) An rvalue that is not an xvalue.


rvalue reference

rvalue reference (plural rvalue references)

(programming) In C++, a reference which is bound to an rvalue.


Zig

(computer languages) A general-purpose imperative, statically typed, compiled programming language intended as a modern successor to the C language.


C--

From the name of the C language (on which it was based) and --, the decrement operator in both languages, coined as an inside joke, indicating that C-- is a reduced form of C.

(computer languages) A C-like programming language, designed to be generated mainly by compilers for high-level languages rather than written by human programmers.


referenceness

Coordinate term: valueness

(programming, rare) The quality of being a reference or a reference type.


binding time

binding time (countable and uncountable, plural binding times)

(programming) The point in time when symbolic references to data are converted into physical machine addresses.

(programming) The point in time when a variable is assigned its type in a programming language.


assembly time

assembly time (countable and uncountable, plural assembly times)

(programming) The amount of time required for a computer to translate symbolic computer language into instructions of a machine language.


wakelock

(programming) A lock that can be acquired by software for the purpose of preventing the mobile device from going into a locked standby state during a particular operation.


deoptimizer

(programming) A process or algorithm that deoptimizes.


Atwood's Law

Coined by American software developer, author, blogger and entrepreneur Jeff Atwood in 2007 (see quotation below).

coinage

This was later codified in a more formal W3C document, The Rule of Least Power. I propose a corollary to this rule, which in the spirit of recent memes, I'll call Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.

2007 July 17, Jeff Atwood, “The Principle of Least Power”, in Coding Horror, archived from the original on 2024-02-07:

Since that time, web developers have produced nearly every type of application, including full-blown, cloud-based office suites (see Zoho.com), social APIs like Facebook's JavaScript SDK, and even graphically intensive video games. ¶ All of this is serving to prove Atwood's Law (http://bit.ly/1pFCjtR): "Any application that can be written in JavaScript, will eventually be written in JavaScript."

2014, Eric Elliott, Programming JavaScript Applications, Sebastopol, C.A.: O'Reilly, →ISBN, page 2:

(programming, humorous) A tongue-in-cheek "law" of software development stating that "any application that can be written in JavaScript, will eventually be written in JavaScript."


pure virtual method

en-noun

pure virtual method (plural pure virtual methods)

object-oriented programming
object-oriented programming

(object-oriented programming) A virtual method having no implementation in a particular class, thus making the class abstract and uninstantiable. It can be overridden in subclasses.


pure virtual function

pure virtual function (plural pure virtual functions)

pure virtual method
pure virtual method#English

(object-oriented programming) Synonym of pure virtual method


rest operator

From rest (“that which remains”), as it is often used to provide the last few arguments to a function call.

Coordinate term: spread operator

(programming) An operator that collapses a number of individual values into an array.


spread operator

spread operator (plural spread operators)

Coordinate term: rest operator

The spread operator causes the elements of a collection to be treated as individual parameters to functions that accept a variable number of arguments.

2021, David Greenhalgh, Josh Skeen, Andrew Bailey, Kotlin Programming: The Big Nerd Ranch Guide:

(programming) An operator that expands an array or similar data structure into its individual elements.


rest parameter

(programming) A final parameter to a function, allowing it to accept an indefinite number of arguments as an array.


spread syntax

(programming) The use of the spread operator in source code.


polymorphic iteration

polymorphic iteration (countable and uncountable, plural polymorphic iterations)

When we write methods that take iterators as parameters, we are using polymorphic iteration.

2004, Eric Freeman, Elisabeth Robson, Bert Bates, Head First Design Patterns: A Brain-Friendly Guide, page 347:

The results described here provide the foundations for a series of results, including the definition of a linear version of Gödel's system Τ with a decidable typing system for polymorphic iteration.

2007, Sandra Alves, Maribel Fernández, Mário Florido, Ian Mackie, “Linear Recursive Functions”, in Hubert Comon-Lundh, Claude Kirchner, Hélène Kirchner, editor, Rewriting, Computation and Proof, page 184:

Use the Iterator pattern to provide a uniform interface for traversing different aggregate structures (that is, to support polymorphic iteration).

2011, Amnon H. Eden, Codecharts: Roadmaps and blueprints for object-oriented programs, page 145:

(computing, programming) The use of an iterator class or interface to enable traversal over the members of any type of collection for which there is a corresponding descendant of that iterator by code which need not know the type of the collection.


varint

This is the case with the number of inputs in a normal transaction, so using varints helps to save space.

2019, Jimmy Song, Programming Bitcoin: Learn How to Program Bitcoin from Scratch, O'Reilly, →ISBN, page 91:

(programming) Clipping of variable-length integer.


slugify

en-verb

slugify (third-person singular simple present slugifies, present participle slugifying, simple past and past participle slugified)

slugifies (present singular third-person)
slugifying (participle present)
slugified (participle past)
slugified (past)

The slugify filter will slugify the given string: […]

2020, Nigel George, Mastering Django, GNW Independent Publishing, page 68:

(programming, uncommon) To transform (a string) into a slug.


Joda-Time

Derives from a four letter name, beginning with the letter j whose domain name was available at the time. It is not an acronym.

Several alternative Date replacement packages emerged, including the simple and sensible Date4J and the more comprehensive Joda-Time package.

2001, Ian F. Darwin, Java Cookbook, page 617:

Joda time is a complete alternative to the JDK date and time classes and seeks to replace them.

Joda-Time is a powerful open source library well known and used in the market that works with time, dates, and chronology:

2014, Rodrigo Turini, Practical Java 8 - Lambdas, Streams and New Resources:

Later the decision was made to integrate Joda-Time or something similar to it into Java's core libraries

2015, Terrill Brett Spell, Pro Java 8 Programming, page 94:

The design of these classes was inspired by the Joda-Time library, which is a popular open-source date and time library for Java.

2023, Cybellium Ltd, Mastering Java, page 156:

(computing, software, programming) A widely used date and time processing library.


referand

(programming, rare) A referent; that which is referred to.


Boehm collector

en-noun

Boehm collector (plural Boehm collectors)

(programming) A kind of mark-and-sweep garbage collector .


empty string

From empty (“containing no elements”) + string (“ordered sequence of text characters”).

com

(programming) A string with a length of zero.


Time Simulator

(computing, programming) A stack-based simulation language.


Time Complex Simulator

(computing, programming) A complex and arithmetic version of the Time Simulator language.


aspectualize

en-verb

aspectualize (third-person singular simple present aspectualizes, present participle aspectualizing, simple past and past participle aspectualized)

aspectualizes (present singular third-person)
aspectualizing (participle present)
aspectualized (participle past)
aspectualized (past)

The mixin and aspect code generators in JULIA provide a lightweight, flexible yet efficient means to aspectualize components.

2004, Eric Bruneton, Thierry Coupaye, Matthieu Leclercq, Vivien Quema, Jean-Bernard Stefani, Ivica Crnkovic, “An Open Component Model and Its Support in Java”, in Component-Based Software Engineering:

Many works are dedicated to aspectualize component models.

2010, Abdelhakim Hannousse, Gilles Ardourel, Re/mi Douence, “Views for Aspectualizing Component Models”, in Bram Adams, Michael Haupt, Daniel Lohmann, editor, Proceedings of the 9th Workshop on Aspects, Components, and Patterns for Infrastructure Software, page 25:

(programming) To use as an implementation for aspects.


stack-based

(computing, programming) Of data, utilizing one piece of data from atop the stack, and returning data back atop the stack.


time parameter

(programming) A parameter that represents time.


system time

en-noun

system time (countable and uncountable, plural system times)

(computing, programming) The passage of time of a computer system, including the passing of days on the calendar.


coding time

coding time (countable and uncountable, plural coding times)

(programming) The amount of time required from the first commit, to a branch, eventually the submission of a pull request.


date-time

(programming) Of or pertaining to the datetime variable or data type.


dataclass

(object-oriented programming, Python) A class designed for holding values rather than providing methods.

object-oriented programming; Python; object-oriented programming; Python


overcomment

en-verb

overcomment (third-person singular simple present overcomments, present participle overcommenting, simple past and past participle overcommented)

overcomments (present singular third-person)
overcommenting (participle present)
overcommented (participle past)
overcommented (past)

(transitive, programming) To annotate (code) with too many comments.


undercomment

undercomment (third-person singular simple present undercomments, present participle undercommenting, simple past and past participle undercommented)

undercomments (present singular third-person)
undercommenting (participle present)
undercommented (participle past)
undercommented (past)

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

(transitive, programming) To annotate (code) with too few comments.


superalgorithm

(programming) An algorithm made up of lesser algorithms (subalgorithms).


vararg

(programming) Any of the arguments to a variadic function.


subject-oriented

(computing, programming) Of or pertaining to a software paradigm in which the state (fields) and behavior (methods) of objects are not seen as intrinsic to the objects themselves, but are provided by various subjective perceptions ("subjects") of the objects.


hack up

hack up (third-person singular simple present hacks up, present participle hacking up, simple past and past participle hacked up)

hacks up (present singular third-person)
hacking up (participle present)
hacked up (participle past)
hacked up (past)

(transitive, programming) To quickly and simply create (a piece of code).


language-oriented

(programming) Of or pertaining to a software development technique that involves creating a new programming language to solve problems, in which the programmer treats a language as a software building block.


data-oriented

software engineering
software engineering

(programming) Of or pertaining to a software engineering approach that focuses on data as the central point of an application.


component-oriented

(programming, software engineering) Of or pertaining to a software development approach that focuses on building components that are loosely-coupled and reusable.


attribute-oriented

(programming, software engineering) Of or pertaining to a technique that adds metadata, or attributes, to program code, which affect the system's semantics.


agent-oriented

(programming, software engineering) Of or pertaining to a programming paradigm where the construction of the software is centered on the concept of externally specified software agents.


process-oriented

(programming, software engineering) Of or pertaining to a programming paradigm that separates the concerns of data structures and the concurrent processes that act upon them.


prototype-oriented

(programming, software engineering) Of or pertaining to a style of object-oriented programming that uses existing objects as prototypes to reuse behavior.


role-oriented

computer programming
computer programming

(programming, software engineering) Of or pertaining to a form of computer programming which aims at expressing objects in terms that are analogous to a human conceptual understanding of the world.


C family

en-noun

C family (usually uncountable, plural C families)

(programming) Any one of the several programming languages which share significant features of the C programming language.


LLL

low-level language
low-level language#English

(programming) Initialism of low-level language.


-lang

From lang, itself a shortened form of language.

"One of the biggest ones to point out is that async runtimes are still a bit unclear," noted Thomas. He also said the learning curve was difficult, which chimes with top obstacles to Rust adoption revealed in Rustlang's most recent survey of developers.

2020 April 30, Liam Tung, “Microsoft: Why we used programming language Rust over Go for WebAssembly on Kubernetes app”, in ZDNET, archived from the original on 2024-06-30:

Threat actors are increasingly shifting to "exotic" programming languages such as Go, Rust, Nim, and Dlang that can better circumvent conventional security protections, evade analysis, and hamper reverse engineering efforts.

2021 July 27, Ravie Lakshmanan, “Hackers Turning to 'Exotic' Programming Languages for Malware Development”, in The Hacker News, archived from the original on 2024-05-20:

I don't mind people saying Golang. Once. In a title or a tag or something. So search engines can find it. Once. Once. Fucking once.

[2021 October 8, u/theclapp, “What's up with people not liking the term "golang"?”, in Reddit, r/golang, archived from the original on 2024-08-11:

For the Golang community, it didn't help that the language came out of Google, an advertising platform with accessories.

2023 May 17, Thomas Claburn, “Google Go language goes with opt-in telemetry”, in The Register, archived from the original on 2024-08-02:

Vlang's simplicity and performance are promising, but its novelty results in a lack of comprehensive libraries and the small community. The language is also under constant changes which may cause instability and compatibility issues.

2023 July 26, Alex Lashkov, “The New Wave of Programming Languages: Pony, Zig, Crystal, Vlang, and Julia”, in Hackaday, archived from the original on 2024-07-08:

The researchers noted that DLang is an uncommon choice for writing malware, but a shift towards newer languages and frameworks is one that's been accelerating over the last few years – in malware coding as in the larger programming world.

2023 December 11, Connor Jones, “Memory-safe languages so hot right now, agrees Lazarus Group as it slings DLang malware”, in The Register, archived from the original on 2024-08-02:

programming languages
programming language#Noun

(programming, informal) Combining with the names of programming languages, especially those which may be confused with common English words.


HKT

higher-kinded type
higher-kinded type#English

(programming) Initialism of higher-kinded type.


Lubarsky's law of cybernetic entomology

The origin of the name Lubarsky in this connection is unknown.

(programming) The humorous observation that any given program always contains at least one more bug.


copartition

(programming) A partition of data streams such that the data in each of the streams has the same partition configuration.


copartition

en-verb

copartition (third-person singular simple present copartitions, present participle copartitioning, simple past and past participle copartitioned)

copartitions (present singular third-person)
copartitioning (participle present)
copartitioned (participle past)
copartitioned (past)

(programming, of partitioned data streams) To ensure that two streams of partitioned data have matching partition configurations.


docroot

Another common use of docroots gives people private web sites on a web server. A typical convention maps URIs whose paths begin with a slash and tilde (/~) followed by a username to a private document root for that user. The private docroot is often the folder called public_html inside that user's home directory, but it can be configured differently (Figure 5-10).

2002, David Gourley, Brian Totty, HTTP: The Definitive Guide, Beijing, Sebastopol, C.A.: O'Reilly, →ISBN, page 122:

(web development) A folder located on a web server which contains all of a website's pages.


niebloid

From Niebler + -oid, named after Eric Niebler.

If your libraries should provide customization points, it's probably a good idea to implement them using niebloids.

2021 April 23, Adrian Ostrowski, Piotr Gaczkowski, Software Architecture with C++, Packt, →ISBN, page 172:

The niebloids suppress ADL by not being functions. Only functions have overloads to be resolved.

2022 April 14, Bo Persson, “ambiguous reference to 'find' in std and std::ranges namespaces”, in comp.lang.c++ (Usenet):

(programming) An entity that can be called as a function but which is not visible to argument-dependent name lookup.


Befunge

Derived from a typing error for before in an online conversation.

An esoteric programming language in which programs are arranged on a two-dimensional grid, and the flow of control can be sent in different directions.


precedence rule

en-noun

precedence rule (plural precedence rules)

(computing theory, programming) A set of rules specifying the order in which parts of an expression are parsed, especially when parentheses are not present.


option type

(programming) A polymorphic type that represents encapsulation of an optional value.


barrel file

The first thing you want to do to build your framework is export the functions that you want to expose to the developer using it from the src/index.js barrel file. Whatever you export from this file makes the public API of the framework.

2024, Ángel Sola Orbaiceta, Build a Frontend Web Framework (From Scratch), Shelter Island, N.Y.: Manning Publications Co., →ISBN, page 111:

(programming) A JavaScript or TypeScript module which does nothing except import various files and then export them together, for the convenience of other developers who only need to know about and work with that single barrel file.


curly bracket language

curly bracket language (plural curly bracket languages)

curly-bracket language
curly-bracket language#English

(programming) Alternative form of curly-bracket language


curly braces language

curly braces language (plural curly braces languages)

curly-braces language
curly-braces language#English

(programming) Alternative form of curly-braces language


curly brace language

curly brace language (plural curly brace languages)

curly-brace language
curly-brace language#English

(programming) Alternative form of curly-brace language


drawcall

(computer graphics, programming) The sending of a command to the graphics API.


prototype-based scripting language

prototype-based scripting language (usually uncountable, plural prototype-based scripting languages)

prototype-based scripting languages (plural)

(computing, programming) A programming language that uses prototypes to allow objects to inherit properties and methods from other objects.


if-then-else

(programming) A statement that executes different code based on whether a condition is true or false.


nowdoc

now + doc, modelled on earlier heredoc, with now as another adverb indicating presence.

(programming) In the PHP programming language, a kind of here document that does not interpolate variables.


scrutinee

The reason that simpl doesn't make progress here is that it notices that, after tentatively unfolding bar m, it is left with a match whose scrutinee, m, is a variable, so the match cannot be simplified further.

2024, Benjamin C. Pierce et al., Logical Foundations (Software Foundations):

functional programming
functional programming

(computing, functional programming) The expression that is subject to scrutiny in a pattern match construct.


binary blob

You put up with the closed hardware because it performs well, and it supports the standard software, development tools, and APIs that keep the computing world spinning. For others, it's anathema—if you can't see the source code for these "binary blobs," they are inherently untrustworthy and should be used sparingly or not at all.

2022 January 31, Andrew Cunningham, “Review: MNT Reform laptop has fully open hardware and software—for better or worse”, in Ars Technica, archived from the original on 2024-09-28:

(programming, often derogatory) A piece of software which is only available as a binary file (as opposed to being open-source), thus making the program very difficult to audit or modify.


off-by-one bug

off-by-one error
off-by-one error#English

(programming) Synonym of off-by-one error


facet name

(computing, programming) A technical name that identifies a facet in code, such as in a shortcode.


HTTP verb

(programming, Internet) A HTTP method; any of a predefined set of words (such as GET, OPTIONS or POST) that are part of an HTTP request and indicate the desired action to be performed on a given resource.


direct buffer

Coordinate term: non-direct buffer

(computing, programming) A portion of native memory that is shared with Java and can be used for direct reads.


non-direct buffer

non-direct buffer (plural non-direct buffers)

Coordinate term: direct buffer

(computing, programming) A buffer whose underlying data is a byte array that is allocated in the Java heap area.


OBOE

(programming) Initialism of off-by-one error.


PLINQ

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


semicoroutine

Each incarnations needs some block structure information (static and dynamic link, display or such like), a return label, n+1 label variables for the activation points of the cooperation (in the "semicoroutine" case) and of the n coprocedures and the space needed for parameters and locals.

1974, Information Processing (IFIP transactions: Computer science and technology), Unesco, page 409:

C# 2.0 added semi-coroutine functionality through the iterator pattern and yield keyword.

2024, Vaskaran Sarcar, Parallel Programming with C# And . NET: Fundamentals of Concurrency and Asynchrony Behind Fast-Paced Applications, Apress, →ISBN, page 359:

(programming) A type of coroutine with limited control over its execution flow that can yield values multiple times, suspending its execution and allowing the caller to resume it later. However, unlike full coroutines, semicoroutines do not specify where the execution will continue after yielding; control is always returned to the caller.


membar

The crucial thing to remember about memory visibility is that the perceived *sequence* of two operations is not guaranteed to be the same as seen from two different threads unless membars are used to guarantee it.

2003 September 25, Mike Mowbray, “Threads and initialization only once”, in comp.programming.threads (Usenet):

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


metaprogrammable

(programming) Having support for metaprogramming.


procedure call

(computing, programming) A statement that invokes a procedure in a program.


incrementalize

en-verb

incrementalize (third-person singular simple present incrementalizes, present participle incrementalizing, simple past and past participle incrementalized)

incrementalizes (present singular third-person)
incrementalizing (participle present)
incrementalized (participle past)
incrementalized (past)

(programming, transitive) To make (an operation) incremental, using results from previous iterations instead of performing a complete recalculation every time.


golflang

esoteric programming language
esoteric programming language

(programming) An esoteric programming language designed for code golf.


embeddable programming

(programming) The use of programming languages to create software for embedded systems.


hidden code

(computing, programming) Code that is embedded in software or another system and is disguised to make it difficult to detect.


programming style

en-noun

programming style (countable and uncountable, plural programming styles)

(programming) The conventions and patterns used in writing source code, resulting in a consistent and readable codebase.