Skip to content

rossant/programming-yin-yang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

A list of antonyms commonly used in programming

There are only two hard things in Computer Science: cache invalidation and naming things. ― Phil Karlton

Good programmers name things well. Finding the most appropriate and common terms for complex concepts and abstractions may be difficult, especially for non-native English speakers. This page proposes English words and antonyms that are commonly used in programming.

This is a work in progress, feel free to open issues and propose pull requests.

One related effort is Microsoft's list of PowerShell verbs, "Approved Verbs for PowerShell Commands", https://docs.microsoft.com/en-us/powershell/developer/cmdlet/approved-verbs-for-windows-powershell-commands

abstract / concrete

Abstract type.

accept / reject

acquire / release

Concurrent computing. Acquire and release semantics. Mutex, semaphores.

add / remove

allocate / free

Memory management.

allow / deny

ancestor / descendent

Trees.

and / or

Boolean algebra.

any / all

Quantifiers.

assemble / disassemble

Assembly language. Disassembler.

assign / deassign

attach / detach

authorize / unauthorize

balance / unbalance

begin / end

best / worse

bind / unbind

Network socket.

blocking / non-blocking

break / continue

Control flow.

client / server

Client-server model.

coalesce / fragment

Coalescing. Fragmentation. Memory segmentation. Memory management.

coarse / fine

Granular computing. Granularity.

commit / rollback

Rollback. Database transaction. Version control.

compile / decompile

compress / decompress

Data compression.

confirm / cancel

conjunction / disjunction

Logical conjunction. Logical disjunction. Mathematical logic.

connect / disconnect

constant / variable

construct / destruct

Constructor (object-oriented programming). Destructor. Creational pattern.

consume / produce

Producer-consumer problem.

contiguous / noncontiguous

Difference Between Contiguous and Noncontiguous Memory Allocation.

continuous / discontinuous

Continuous function.

create / destroy

cyclic / acyclic

Cyclic graph. Directed acyclic graph. Cycle. Cycle graph. Graph theory.

decidable / undecidable

Decidability. Decision problem.

definite / indefinite

deterministic / stochastic

Deterministic system. Stochastic process.

digital / analog

Digital signal. Analog signal.

direct / indirect

direct / inverse

dirty / clean

Dirty data

divide / conquer

Divide and conquer algorithm

download / upload

drag / drop

enable / disable

enlarge / narrow

enqueue / dequeue

enter / leave (exit)

expand / collapse

Accordion (UI).

extend / shorten

FIFO / LIFO

Stack (abstract data type)

finite / infinite

first / last

fold / unfold

Fold (higher-order function).

forget / remember

forward / backward

free / bound

Free variables and bound variables.

freeze / unfreeze

front / back

Front and back ends. Multiple buffering.

gather / distribute

get / set

grant / revoke

SQL Security and privileges.

greater / lower

greedy (eager) / lazy

Greedy algorithm. Lazy evaluation. Greedy and lazy quantifiers in regular expressions. Eager learning. Lazy learning.

group / divide

head / tail

14 tail and head commands in Linux/Unix Linked list.

heap / stack

Heap data structure. Stack (abstract data type). Memory management.

hit / miss

Cache.

homogeneous / heterogeneous

horizontal / vertical

implicit / explicit

Explicit and implicit methods in numerical analysis. Zen of Python.

import / export

inbound / outbound

include / exclude

increase / decrease

increment / decrement

indent / dedent

Indentation.

inflate / deflate

DEFLATE data compression algorithm.

initial / final

inner / outer

input / output

insert (create) / delete

intended / unintended

internal / external

intersection / union

Intersection. Union. Set theory.

join (merge) / split

Join in SQL. Joining lists and splitting strings in Python.

key / value

Key-value database. Associative array. Attribute-value pair.

label / unlabel

Labeled data in machine learning.

linear / nonlinear

Linearity. Nonlinear system.

link / unlink

load / dump (store)

Load/store architecture. Load-store unit.

local / global

Global variable.

local / remote (distant)

lower / upper

major / minor

Semantic versioning. Software versioning.

map / reduce

MapReduce.

master / slave

Master/slave configuration.

Note: prefer the terms primary / secondary.

minimal / maximal

named / unnamed

next / previous

open / close

optimal / suboptimal

ordered / disordered

pack / unpack

Pack and unpack in Perl. Pack and unpack in MPI.

parent / child

Parent process. Child process. Fork. Tree data structure. Document Object Model (DOM).

passive / active

pending / finished

positive / negative

postfix (suffix) / prefix

precede / follow

press / release

primary / secondary

public / private

Access modifiers.

push / pop

Stack (abstract data type)

push / pull

read / write

record / retrieve

recover / lose

reference / dereference

register / unregister

request / response

Request-response communication.

restricted / unrestricted

run time / compile time

Compile time. Run time. Runtime system.

search / find

select / deselect

send / receive

sequential / parallel

Sequential algorithm. Parallel computing.

set up / tear down

Unit testing.

show / hide

silent / verbose

single / multiple

soft / hard

solvable / unsolvable

Turing degree.

sort / unsort

Sorting algorithm.

source (origin) / destination

sparse / dense

Sparse matrix

stable / unstable

Stability in sorting algorithms. Stable-unstable semantics.

start / stop

stateful / stateless

Stateless protocol.

static / dynamic

Type system. Static analysis.

strong / weak

Strong and weak typing.

sub / super

subscribe / unsubscribe

subset / superset

Subset.

superclass / subclass

Object-oriented programming.

supervised / unsupervised

Supervised learning. Unsupervised learning.

symmetric / asymmetric

synchronous / asynchronous

Synchronization. Synchronous programming language. Asynchrony. Futures and promises.

top / bottom

top-down / bottom-up

Top-down and bottom-up design.

total / partial

Total order. Partially ordered set.

tractable / intractable

Parameterized complexity. Computational complexity theory.

trim / expand

true / false

Boolean data type.

up / down

validate / invalidate

Cache invalidation.

value / reference

Evaluation strategy.

virtual / real

Virtual class. Virtual reality.

visible / invisible

wait / resume

Wait system call.

weighted / unweighted

Graph.

Sources

Programming antonyms:

Programming glossaries:

Naming things well:

License

CC0

To the extent possible under law, Cyrille Rossant has waived all copyright and related or neighboring rights to this work.

Releases

No releases published

Packages

No packages published