GADT

Generalized Algebraic Data Types, or GADTs for short, are an extension of the variants we saw in Chapter 7 (Variants). GADTs are more expressive than regular variants, which helps you create types that more precisely match the shape of the program you want to write.

2022, Anil Madhavapeddy, Yaron Minsky, Real World OCaml: Functional Programming for the Masses, Cambridge University Press, →ISBN:

generalized algebraic data type
w:generalized algebraic data type

(programming) Initialism of generalized algebraic data type.


uninstantiation

en-noun

uninstantiation (usually uncountable, plural uninstantiations)

(programming) The process of uninstantiating; destruction of an instance.


uninstantiate

en-verb

uninstantiate (third-person singular simple present uninstantiates, present participle uninstantiating, simple past and past participle uninstantiated)

uninstantiates (present singular third-person)
uninstantiating (participle present)
uninstantiated (participle past)
uninstantiated (past)

(programming, transitive) To destroy or annul (an instance of something); to eliminate (a variable, object, etc.) that was created earlier.


GOT

en-noun

GOT (countable and uncountable, plural GOTs)

(programming) Initialism of global offset table.


walrus operator

walrus operator (plural walrus operators)

The notation := has been humorously reinterpreted as the face of a walrus, with two eyes and two tusks.

(programming, informal) The operator := that assigns values to variables in certain programming languages.


positional parameter

positional parameter (plural positional parameters)

In the function call foo(3, 6, type="bar"), there are two different positional parameters, to which are passed the values 3 and 6.

(programming) a parameter that is passed by position, rather than by name, in a function call


named parameter

named parameter (plural named parameters)

In the function call foo(3, 6, type="bar"), type is a named parameter.

(programming) A parameter that is passed by name, rather than by position, in a function call.


TDZ

temporal dead zone
temporal dead zone#English

(programming) Initialism of temporal dead zone.


block-scoped

en-adj

block-scoped (comparative more block-scoped, superlative most block-scoped)

more block-scoped (comparative)
most block-scoped (superlative)

(programming) whose scope is limited to a block


temporal dead zone

en-noun

temporal dead zone (plural temporal dead zones)

(programming) In JavaScript, the lines of code preceding the declaration of a variable.


hypersequential

(programming) Of or relating to a means of serializing a concurrent program so that it can be debugged as though it were sequential, before converting it back to concurrent form.


reference type

(programming) A data type that represents a reference to a value, as opposed to the value itself.


entry point

(programming) A location in a program or software library that can be called from outside, and from which the execution of code begins.


entrypoint

The entrypoint of all DLLs attached to the process at the time the thread starts will be called.

1993, James W. McCord, Win32 API: Desktop Reference, page 480:

Now that the entrypoint is defined, you can now access it from the browser. Pointing your browser to the following URL formatted will direct the request to the entrypoint: […]

2010, John Mertic, The Definitive Guide to SugarCRM: Better Business Applications, page 21:

(programming) Alternative form of entry point


esoteric programming language

esoteric programming language (plural esoteric programming languages)

(programming) A programming language with highly unconventional syntax or operation, designed as an experiment or as a joke rather than for the serious development of software.


NFT

NFT (countable and uncountable, plural NFTs)

(programming) Initialism of non-functional test.


metatype

Coordinate term: metaclass

The Type suffix specifies that this variable will be a metatype and not an object (meaning the implementation class and not an instance of it).

2015, Adam Freeman, Pro Design Patterns in Swift, Apress, →ISBN, page 199:

You can use a variable reference to a type (a metatype) to instantiate that type, but you can't just append parentheses to a variable reference: […]

2019, Matt Neuburg, iOS 13 Programming Fundamentals with Swift […] , O'Reilly Media, →ISBN, page 186:


GIL

Since Asyncio is single-threaded (almost by definition), it is unaffected by the GIL, but it cannot benefit from multiple CPU cores either.

2020, Caleb Hattingh, Using Asyncio in Python, O'Reilly Media, →ISBN, page 7:

global interpreter lock
w:global interpreter lock

(programming) Initialism of global interpreter lock.


C-string

We also said that C-strings are null terminated, so the C-string "Hello" has six characters even though only five are enclosed in double quotation marks.

2017, D. S. Malik, C++ Programming: From Problem Analysis to Program Design, Cengage Learning, →ISBN, page 556:


zero-length

a zero-length array; a zero-length string

(programming) Having a length of zero; containing no elements, text characters, etc.


closing form

(programming) A method to end an implemented functionality.


lower camel case

(programming) The practice of writing identifiers by concatenating multiple component words, where each word excluding the first is capitalized.


upper camel case

(programming) The practice of writing identifiers by concatenating multiple component words, each of which is capitalized.


screaming snake case

From snake case, with the "screaming" part derived from the use of capital letters which typically denote yelling in text.

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


fail fast

en-verb

fail fast (third-person singular simple present fails fast, present participle failing fast, simple past and past participle failed fast)

fails fast (present singular third-person)
failing fast (participle present)
failed fast (participle past)
failed fast (past)

To prevent these gaps from being a problem, write your code to fail fast. Use assertions to signal the limits of your design; if someone tries to use something that isn't implemented, the assertion will cause his tests to fail.

2008, James Shore, Shane Warden, The Art of Agile Development, page 324:

In lieu of those unneeded hooks, write code to fail fast and prevent gaps from becoming a problem.

2015, Rachel Alt-Simmons, Agile by Design, page 182:

Adding abstract to the base class causes your code to fail fast with an error that's easier to fix.

2020, Andrew Stellman, Jennifer Greene, Head First C#, page 339:

One of the most important best practices is to fail fast. Code the service in such a way that unrecoverable errors are discovered as early as possible and, if such an error is detected, have the service fail immediately.

2020, Gabriel N. Schenker, Learn Docker – Fundamentals of Docker 19.x, page 254:

(programming) To report immediately any condition likely to cause a failure, rather than attempting to continue.


SEH

(programming) Initialism of structured exception handling.


tear-off

This makes tearoffs especially risky for objects that may be accessed remotely. Given all of the potential pitfalls of tearoffs, a logical question might be, "when are tearoffs appropriate?" There is no absolute answer; […]

(programming) A COM (Component Object Model) interface that is instantiated only when explicitly requested.


time travel debugging

(programming) A form of software debugging allowing the user to step back and forward through the recorded prior execution of a program.


stackful

A stackful coroutine is a normal function that can be suspended during execution.

2018, Raghavendra Rao K, Kotlin for Enterprise Applications using Java EE, page 64:

(programming) Using a stack (last-in-first-out data structure).


case folding

(programming, information science) Text normalization where uppercase and lowercase characters are treated as equivalent.


CQRS

(programming) Initialism of command–query responsibility segregation (a mechanism that applies the CQS principle by using separate Query and Command objects to retrieve and modify data.)


CQS

command–query separation
w:command–query separation

imperative computer programming
imperative programming#English

(programming) Initialism of command–query separation (a principle of imperative computer programming.)


software forge

(programming) A website that hosts software projects, fostering their development.


memoizer

(programming) An algorithm or software component that memoizes.


relex

programming language
programming language

(programming, by extension) A programming language that differs from another only by the names of keywords, functions, etc.


metaprogrammer

Template metaprogrammers in C++ have demonstrated that compile-time computation is an important technology, but they've had to jump through hoops of syntactic fire to practice it.

2010, Andrei Alexandrescu, The D Programming Language:

(programming) One who uses the technique of metaprogramming.


multidictionary

(programming) Synonym of multimap (“data structure”)


busy loop

(programming) A loop that actively consumes CPU cycles while waiting for an event.


subscriptable

If the container is subscriptable and you remember the position where a particular piece of data was stored, you can use the subscript to efficiently retrieve the data.

2012, Robert Robson, Using the STL: The C++ Standard Template Library, page 249:

(programming) Capable of being subscripted.


self-deletion

en-noun

self-deletion (countable and uncountable, plural self-deletions)

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

(computing, programming) The act of self-deleting.


self-delete

en-verb

self-delete (third-person singular simple present self-deletes, present participle self-deleting, simple past and past participle self-deleted)

self-deletes (present singular third-person)
self-deleting (participle present)
self-deleted (participle past)
self-deleted (past)

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

(computing, programming, intransitive) Of code, to overwrite itself upon completion, usually with 0x00 or 0xFF bytes that represent an unwritten region.


variabilize

variabilize (third-person singular simple present variabilizes, present participle variabilizing, simple past and past participle variabilized)

variabilizes (present singular third-person)
variabilizing (participle present)
variabilized (participle past)
variabilized (past)

(programming, databases, transitive) Rewrite (a database query, etc.) as a variable.


unconcatenate

unconcatenate (third-person singular simple present unconcatenates, present participle unconcatenating, simple past and past participle unconcatenated)

unconcatenates (present singular third-person)
unconcatenating (participle present)
unconcatenated (participle past)
unconcatenated (past)

However, since we are going to save this combo box back to the file, this would require “unconcatenating” the names before writing them to file, something we would like to avoid.

2001, Patrick G. McKeown, Craig A. Piercy, Learning to Program with Visual Basic, page 181:

The collapse argument tells R to “unconcatenate” the individual lines and create a single string vector.

2014, Larry Pace, R Recipes: A Problem-Solution Approach, page 65:

(programming, transitive) To undo the process of concatenation.


format string

(programming) A string of text characters serving as a template for other strings, such as dd/MM/yyyy for a date.


existential type

en-noun

existential type (plural existential types)

Existential types are fundamentally no more complicated than universal types (in fact, we will see in §24.3 that existentials can straightforwardly be encoded in terms of universals).

2002, Benjamin C. Pierce, Types and Programming Languages, MIT Press, →ISBN, page 363:

Scala 2 supported existential types, a way of abstracting over types. They let you assert that some type exists without specifying exactly what it is, usually because you don't know what it is and you don't need to know it in the current context.

2021, Dean Wampler, chapter 16, in Programming Scala, 3rd edition, O'Reilly, →ISBN:

This behavior is what gives existential types their name: we are asserting that there exists some concrete type that matches the signature, and we leave it up to the compiler to find what that type is.

2021, Jon Gjengset, Rust for Rustaceans, No Starch Press, →ISBN, page 34:

(programming, type systems) A type that hides the underlying concrete type(s).


algebraic data type

algebraic data type (plural algebraic data types)

So named because they have algebraic properties with respect to their cardinality similar to normal integers.

Generally, algebraic data types represent sums of products, where the cases form the alternatives of a sum type, and each case represents a product type that can be constructed from zero to many constitutent types. An EDT is a special case of ADT where each product type is a singleton.

2021, Martin Odersky et al., chapter 19, in Programming in Scala, 5th edition, Artima, →ISBN:

(programming, type theory) A data type formed by combining other types.


CRTP

curiously recurring template pattern#English

(programming) Initialism of curiously recurring template pattern.


sliding window

(programming) A descriptor for a data analysis technique where overlapping windows of data of fixed size are analyzed.


property bag

(programming, in various Microsoft technologies) A collection of properties and their values, similar to an associative array or hash table.


reactive programming

declarative programming
declarative programming

(programming) A declarative programming paradigm where changes to values are automatically propagated, without the need for explicit reassignment.


iteratee

Coordinate term: iterator

functional programming
functional programming

(programming) In functional programming, a composable abstraction for incrementally processing sequentially-presented chunks of data in a purely functional fashion.


VBer

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

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

(programming, informal) A programmer who uses the Visual Basic language.


stringly-typed

From the string data type, punning on strongly-typed.

This is a “stringly typed” example that is easy to break if the key names are mistyped, or change between versions of your app.

2019, Shaun Lewis, Mike Dunn, Native Mobile Development: A Cross-Reference for iOS and Android, O'Reilly Media, →ISBN, page 178:

Enums can be a powerful aide in your quest to produce reliable, robust software. Consider them for your code when you discover yourself introducing “stringly-typed” data, such as message codes.

2021, Tim McNamara, Rust in Action, Simon and Schuster, →ISBN, page 98:

(programming, humorous) Characterized by an excessive use of strings to represent non-textual data.


ILP

(programming) Initialism of instruction-level parallelism.


commentize

en-verb

commentize (third-person singular simple present commentizes, present participle commentizing, simple past and past participle commentized)

commentizes (present singular third-person)
commentizing (participle present)
commentized (participle past)
commentized (past)

We ended up commentizing the explanatory blurbs to serve a target audience that probably wouldn't need them. They are retained within the source so that they can be easily toggled back to life as needed in future for wider audiences.

I was manually adding “//” for each line I wanted to remove, which was annoying. It turns out that you can use Edit > Commentize to add “//” to the start of all selected lines. The keyboard shortcut in IP7 is Cmd-/. You can reverse the process with Edit > Decommentize or Cmd-\.

2016 October 25, quantixed, “Tips from the blog X: multi-line commenting in Igor”, in quantixed, retrieved 2022-06-16:

(programming, content management) Synonym of comment out


AoS

Coordinate term: SoA

(programming) Initialism of array of structures.


street BASIC

en-noun

street BASIC (countable and uncountable, plural street BASICs)

The term was introduced by computer scientists Thomas Kurtz and John Kemeny.

Street BASIC is becoming the language taught in junior high; it is sandwiched between Logo, which is taught in elementary school, and Pascal, which is taught in high school.

1988, Cynthia Solomon, Computer Environments for Children, page 94:

In 1984, BASIC's original developers responded to what they saw as the problems of “street Basic” by introducing True BASIC, a modern, well-structured version of the language, and the 1988 ANSI BASIC standard incorporated similar features.

2009, Harry Henderson, Encyclopedia of Computer Science and Technology, page 40:

(programming, derogatory) Any variety of the BASIC programming language that lacks good structure and encourages poor programming practices.


tacit programming

(programming) A programming paradigm in which function definitions do not identify the arguments (or "points") on which they operate. Instead, the definitions merely compose other functions, among which are combinators that manipulate the arguments.


point-free

Point-free coding is a byproduct of adopting declarative programming. You can use point-free coding without FP. But because point-free is all about improving the readability of code at a glance and making it simpler to parse, having the guarantees imposed by FP furthers this cause.

2021, Luis Atencio, The Joy of JavaScript, Simon and Schuster, →ISBN, page 104:

(programming) Employing or relating to tacit programming.


anonymous function

anonymous function (plural anonymous functions)

(programming) Synonym of lambda function


MACH

(programming) Acronym of microservices, API-first, cloud-native, headless.


Deutsch limit

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

Named after computer programmer L. Peter Deutsch (1946–).

named-after

visual programming language
visual programming language

(programming) The generally accepted limit, in working with visual programming languages, of 50 or less visual primitives on screen at any given time, used to optimize for information density.


hash rocket

From its use in creating hashes, and its resemblance to a space rocket.

(programming) The operator =>, used in the Ruby programming language to create hashes.


VMT

virtual method table
w:virtual method table

(programming) Initialism of virtual method table.


codebug

en-verb

codebug (third-person singular simple present codebugs, present participle codebugging, simple past and past participle codebugged)

codebugs (present singular third-person)
codebugging (participle present)
codebugged (participle past)
codebugged (past)

Developers can invite others into their workspace to coedit, cobuild, or codebug and can communicate with one another in the workspace itself.

2014, K. Chandrasekaran, Essentials of Cloud Computing, page 152:


skeleton programming

(programming) A top-down approach in computer programming based on simple high-level structures, resembling pseudocode, that are gradually fleshed out with details.


early return

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

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

(programming) The act of returning from a function before reaching the end of that function.


MVW

(programming) Initialism of model-view-whatever.


InnerSource

From inner + source; coined by Irish-American author and publisher Tim O'Reilly in 2000.

coined

(programming) The use of open source software development best practices and the establishment of an open source-like culture within organizations, for the development of software that is proprietary or not open source.


HDFS

(programming) Initialism of Hadoop Distributed File System.


memory-safe

(programming, of a program or programming language) Able to ensure memory safety.


memory-unsafe

(programming, of a program or programming language) Not memory-safe.


memory safety

(programming) Protection from software bugs and security vulnerabilities resulting from improper memory management, such as buffer overflows and dangling pointers.


dynamic-link library

en-noun

dynamic-link library (plural dynamic-link libraries)

(programming, Microsoft) A software library containing some combination of code, data, and resources, capable of being loaded at run time and shared by multiple applications.


listcomp

When you come across something that looks like a listcomp but is surrounded by parentheses, you're looking at a generator: […]

2016, Paul Barry, Head First Python: A Brain-Friendly Guide, O'Reilly, →ISBN, page 508:

(programming, Python) A list comprehension.


genexp

Coordinate term: listcomp

To generate data for other sequence types, a genexp is the way to go.

2022, Luciano Ramalho, chapter 2, in Fluent Python, 2nd edition, O'Reilly, →ISBN:

(programming, Python) A generator expression.


index register

(programming) A processor register (or an assigned memory location) used to point to operand addresses during the run of a program, useful for stepping through strings and arrays.


one true brace style
one true brace style#English

(programming) Initialism of one true brace style.


one true brace style

(programming, informal) A source code formatting preference resembling K&R style, but where functions have their opening braces on the same line separated by a space, and the braces are not omitted for a control statement with only a single statement in its scope.


Barton-Nackman trick

The technique was introduced by John Barton and Lee Nackman.

curiously recurring template pattern
curiously recurring template pattern

(programming) A form of restricted template expansion in C++, characterized by an in-class friend function definition appearing in the base class template component of the curiously recurring template pattern.


useR

(programming, slang) Someone who uses the R programming language.


CRAN

Comprehensive R Archive Network
w:Comprehensive R Archive Network

(programming) Acronym of Comprehensive R Archive Network.


linalg

(slang or programming) Abbreviation of linear algebra.


expression template

expression template (plural expression templates)

(programming, C++) A template that builds structures representing a computation at compile time, where expressions are evaluated only as needed to produce efficient code.


post-build

a post-build event

a post-build verification script

(programming) After the build step that creates an executable program from source code.


null-terminated

PostgreSQL has given you a text value, and text values are not null-terminated. You will need to convert fileNameText into a null-terminated string.

2003, Korry Douglas, Susan Douglas, PostgreSQL […] , Sams Publishing, →ISBN, page 225:

(programming, of data) Stored in memory followed by a null character.


datathon

(informal, programming) A kind of hackathon focusing on the use of large data sets.


despaghettify

en-verb

despaghettify (third-person singular simple present despaghettifies, present participle despaghettifying, simple past and past participle despaghettified)

despaghettifies (present singular third-person)
despaghettifying (participle present)
despaghettified (participle past)
despaghettified (past)

From de- + spaghetti + -ify, compare spaghetti code.

You could do, but I need to despaghettify the code first.

My program is not huge <5000 lines, but it has been hacked about since 1978, with dire results. I get a bad headache trying to follow the logic. I would be happy to upload and then download the despaghettified code so as not to infringe licence regulations. Please help!

1993 January 19, ro...@ruchem.ru.ac.za, “spaghetti”, in comp.lang.fortran (Usenet):

I just wanted to give kudos to the new(ish) PrepModules feature. I finally got around to implementing it, and it allowed me to considerably de-spaghettify some of my scripts. Thanks!

2004 May 17, Chip Seraphine, “PrepModules() rocketh mightily”, in gnu.cfengine.help (Usenet):

Still, some examples would be nice. I can't distribute claxmod, as is, 'cause there are passwords hard-coded into it. With a little work, a more "generic" example could be developed that could be used as an example (de-spaghettified, preferably).

2014 May 29, fbkotler, “Re: R.I.P. Nathan Baker”, in alt.lang.asm (Usenet):

(transitive, programming) To refactor spaghetti code.


subpass

On the GPU, each subpass requires a SetRenderTarget() call, which incurs a small cost.

2005, Proceedings of ACM SIGGRAPH 2005, page 780:

(programming) Part of a pass or iteration.


parallelizer

(programming) A process or algorithm that parallelizes code.


fmt

fmt (third-person singular simple present fmts, present participle fmting, simple past and past participle fmted)

fmts (present singular third-person)
fmting (participle present)
fmted (participle past)
fmted (past)


type class

A type class is defined with a trait that defines the abstraction. It can have any extension (instance) methods, as well as type-level members, meaning across instances.

2021, Dean Wampler, chapter 5, in Programming Scala, 3rd edition, O'Reilly, →ISBN:

(programming) A type system construct that supports ad hoc polymorphism (independent of the type hierarchy), first pioneered in Haskell.


multistring

The AIM screen name of person as a multistring with two labels: kABAIMWorkLabel, and kABAIMHomeLabel

2003, Michael Beam, James Davidson, Cocoa in a Nutshell:

Multistring values are relatively simple to edit.

2006, Guy Hart-Davis, Mastering Windows XP Home Edition, page 320:

After that, two possibilities are offered: the first is to recover a string by thresholding the multistring and the second is to transform the Pattern Recognition algorithm that uses the median to use multistrings instead of strings.

2008, Niels da Vitoria Lobo, Takis Kasparis, Michael Georgiopoulos, Structural, Syntactic, and Statistical Pattern Recognition, page 432:

(programming, data structures) A data structure that represents multiple text strings.


kangaroo code

Sometimes, especially when working on large projects or with multiple programmers, it can become hard to avoid kangaroo code, that is, code that jumps from function to function and even jumps around within the same class.

2016, J. F. DiMarzio, The Debugger's Handbook, page 25:

(programming, slang, rare) Poorly structured program code with many jumps.


KVO

KVO, on the other hand, is a mixed bag. It can be useful, and it can cause trouble. It's implemented in a highly magical way, and some of its usage is quite awkward.

2014, Rob Napier, Mugunth Kumar, iOS 7 Programming Pushing the Limits, John Wiley & Sons, →ISBN, page 406:

(programming, Apple platforms) Initialism of key-value observing.


pseudostatement

If the label of a BEGIN pseudostatement is missing, the preceding and following cards are tested for clues: […]

1972, Bary W. Pollack, Compiler Techniques, page 287:

(programming) A construct resembling a statement that is not a true statement.


UFCS

Nim's default import behavior allows flexible Uniform Function Call Syntax (UFCS) and operator overloading.

2017, Dominik Picheta, Nim in Action, Simon and Schuster, →ISBN:

Uniform Function Call Syntax
w:Uniform Function Call Syntax

(programming) Initialism of Uniform Function Call Syntax.


DevEx

Coordinate term: UX

[…] ensure that the platform teams have a focus on user experience (UX) and particularly developer experience (DevEx).

2019, Matthew Skelton, Manuel Pais, Team Topologies: Organizing Business and Technology Teams for Fast Flow, IT Revolution, →ISBN:

developer experience
developer experience#English

(programming) Abbreviation of developer experience.


BEAM

Elixir is a functional, dynamic language built on top of Erlang and the Erlang VM (BEAM).

2016, Kenny Ballou, Learning Elixir, Packt Publishing Ltd, →ISBN, page 1:

Bogdan's Erlang Abstract Machine
w:BEAM (Erlang virtual machine)

(programming, Erlang) Acronym of Bogdan's Erlang Abstract Machine.


if-then

List Formatter makes properly-spaced & indented listings with page breaks; each statement on new line, if-thens and loops called out; a great de-bugger!

Storing (closed) predicate definitions in this form (if all the predicates are so stored, and there never were any cuts or if-thens in the first place, we have the well-known "completion" of a logic program) makes the coding of source-level tools simpler.

1985, 1985 Symposium on Logic Programming: July 15-18, 1985; Sheraton Boston Hotel Boston, Mass., IEEE Computer Society Press, →ISBN, page 71:

1. The problem is well bounded, 2. There are many empirical if/thens that lead to a correct solution, 3. The total number of if/thens is sufficient to bring you close to a right answer (Mazur 1987).

1989 December, David W. Long, Michael R. Wagner, “Insect Pest Management Expert Systems in Multiresource Management of Ponderosa Pine”, in Multiresource Management of Ponderosa Pine Forests: Nov. 14 - 16, 1989, Flagstaff, Arizona (General Technical Report RM-185), page 260:

Many if-thens will degrade vector performance below that of a scalar version that computes only the correct branch.

1992, Donald L. DeAngelis, Louis J. Gross, editors, Individual-Based Models and Approaches in Ecology: Populations, Communities and Ecosystems, Chapman and Hall, →ISBN, pages 154–155:

Think of this process as programming with pictures, complete with loops, pauses, if-thens, and so on.

Finally, they use descriptions and statements from set theory to provide material for flowcharting problems that contain multiple decisions (nested if-thens).

2000, Harold J. Rood, Logic and Structured Design for Computer Programmers, Brooks/Cole, →ISBN, page ix:

Simple statements (like assignments and if-thens) are executed serially.

2001, Mark Guzdial, Squeak: Object-Oriented Design with Multimedia Applications, Prentice Hall, →ISBN, page 35:

But I think that the badge system is very motivating, and if one of your goals is to get students to become more proficient in the programming, then this is certainly a way to do that. Because you set not a very high bar toward attaining these things and some of them I think are quite challenging – you know, doing the ones for lists, and the if-thens, and all that.

2004, Jim, quotee, “Co-Evolution of Design and Pedagogy Online”, in Sasha A. Barab, Rob Kling, James H. Gray, editors, Designing for Virtual Communities in the Service of Learning (Learning in Doing: Social, Cognitive and Computational Perspectives), Cambridge University Press, →ISBN, page 253:

However, you can neither create multiple if-thens that execute simultaneously, nor create a rule based on a file’s Kind—so this utility’s utility is limited (November 2003).

Have you noticed any similarities between “programming” a mechanical system and writing software? / The logical problems are absolutely the same. In the mechanical and in the computer, there are equivalents of variables and if-thens.

2005 February, Make: Technology on Your Time, volume 01, O’Reilly Media, Inc., →ISBN, page 160:

There’s some recursive programming in her that gives more weight to associative and metaphorical thinking than to logical if-thens.

2012, Kim Stanley Robinson, 2312, Hachette, →ISBN:

(programming) A conditional statement; a line of code that specifies a Boolean condition to check and a statement to execute when that Boolean evaluates to true.


bottom type

A new notion to many Java developers will be the idea that a class hierarchy can have common bottom types. These are types that are subtypes of all types. Scala's types Null and Nothing are both bottom types.

2017, Toby Weston, Scala for Java Developers: A Practical Primer, Apress, →ISBN, page 25:

(type theory, programming) The type that is a subtype of all other types.


carry-lookahead

A simpler scheme is to connect the carry-ins and carry-outs of the units in a ripple chain. This approach is most common in chip design because the wiring for the carry-lookahead tree is hard to design and area-consuming.

2004, Wayne Wolf, FPGA-Based System Design:

(programming) A command that checks whether there will be a carry (bit or digit that is carried in an addition operation) for the current digit in an ongoing addition operation.


alloc

alloc (third-person singular simple present alloc's, present participle alloc'ing, simple past and past participle alloc'ed)

alloc's (present singular third-person)
alloc'ing (participle present)
alloc'ed (participle past)
alloc'ed (past)

If you simply use alloc then init, you can't check for the existence of the object before it gets alloc'ed. If you use a single +new method (or something similar), then you can check for the existence of the object before it gets allocated in memory.

1994 June 12, Eric M Hermanson, “Re: +new vs. +alloc -init”, in comp.sys.next.programmer (Usenet):

Alloc enough space for any possible padding.

2001, John Viega, Gary R. McGraw, Building Secure Software:

Among the things this analyzer is capable of detecting is simple memory leaks. For example, it can find an object you alloc'ed but forgot to release.

2011, Stephen G. Kochan, Programming in Objective-C, page 413:

Could not alloc enough memory

2012, Helmut J. Helpenstein, CAD Geometry Data Exchange Using STEP, page 86:

Generally, the data ins the stack should not be changed, a simple packing would choose to push such information into the stack (to alloc a new space on the stack).


SoA

Coordinate term: AoS

(programming) Initialism of structure of arrays.


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.


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.


DBSCAN

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


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.


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.


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.


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


rest parameter

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


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 syntax

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


spread operator

en-noun

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.


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.


stack-based

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


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.


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.


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)

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


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.


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.


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.


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.


component-oriented

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


prototype-oriented

object-oriented programming
object-oriented programming

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


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.


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.


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.


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.