Programming Abbreviations

154 abbreviations · part of Technology & Computer Abbreviations

Abbreviations used by software developers: interfaces and tooling (API, SDK, IDE), data formats (JSON, XML, YAML), design principles (DRY, KISS, SOLID), development practices (TDD, CI/CD), version control, language runtimes, computer-science fundamentals and code-review shorthand. Many appear in job ads, documentation and pull-request comments, and some, such as npm and pip, are deliberately playful or recursive names.

AbbreviationStands forDescription
ABIApplication binary interfaceThe low-level contract between compiled program components, defining how functions are called, how data is laid out in memory and how system calls work.
ADRArchitecture decision recordA short document recording one significant architecture decision, its context, the options considered and the consequences.
ADTAbstract data typeA data type defined by its behavior, meaning the operations it supports and their rules, rather than by its implementation.
AMQPAdvanced Message Queuing ProtocolAn open wire-level protocol for message-oriented middleware, defining how clients and brokers exchange queued messages reliably.
AOTAhead-of-time (compilation)Compiling code to native machine code before the program runs, producing a ready-to-execute binary with fast startup and no compiler needed at runtime.
APIApplication programming interfaceA defined set of rules, endpoints and data formats through which one piece of software requests services or data from another.
ASCIIAmerican Standard Code for Information InterchangeCharacter encoding that assigns the numbers 0 to 127 to English letters, digits, punctuation and control codes, so that A is 65 and a space is 32.
ASTAbstract syntax treeA tree representation of source code's structure produced by a parser, in which each node is a construct such as a function, operator or variable.
awkAho, Weinberger and KernighanA Unix text-processing language that reads input line by line, splits each line into fields and runs actions on lines matching patterns, ideal for extracting columns…
BashBourne Again ShellThe command-line shell and scripting language that is the default on most Linux distributions, used to run commands, automate tasks and write shell scripts. macOS used…
BASICBeginner's All-purpose Symbolic Instruction CodeA family of easy-to-learn programming languages built into most home computers of the late 1970s and 1980s, where users typed numbered lines such as 10 PRINT "HELLO".
BDDBehavior-driven developmentAn extension of TDD that describes software behavior in plain-language scenarios, usually in Given-When-Then form, which double as automated acceptance tests.
BFSBreadth-first searchA graph traversal algorithm that visits all neighbors of a node before moving further away, using a queue.
BNFBackus-Naur formA notation for describing the grammar of programming languages and data formats with production rules that define each construct in terms of smaller ones.
BSTBinary search treeA tree data structure in which each node's left subtree holds smaller keys and its right subtree larger ones, allowing search, insertion and deletion in logarithmic…
CDContinuous deliveryA practice in which every change that passes the automated pipeline is kept in a releasable state and can go to production at any time, usually after a manual approval…
chmodChange modeThe Unix command that sets file permissions, controlling who can read, write or execute a file.
CIContinuous integrationThe practice of merging every developer's changes into a shared main branch frequently, often several times a day, with an automated build and test run on each change…
CI/CDContinuous integration and continuous delivery (or deployment)The combined practice of automatically building and testing every code change (CI) and then automatically preparing or releasing it to production (CD).
CLICommand-line interfaceA text-based way of operating software by typing commands, options and arguments at a prompt, such as git commit or npm install.
CLRCommon Language RuntimeThe virtual machine at the heart of Microsoft's .NET platform, which runs compiled intermediate-language code, manages memory with garbage collection and handles…
COBOLCommon Business-Oriented LanguageA verbose, English-like programming language designed for business data processing and still running core systems at banks, insurers and government agencies.
COMComponent Object ModelMicrosoft's binary interface standard, introduced in 1993, that lets software components written in different languages interact on Windows.
COWCopy-on-writeA resource-management technique in which copies share the same data until one of them is modified, and only then is a real copy made.
CQRSCommand Query Responsibility SegregationAn architecture pattern that separates the model for updating data (commands) from the model for reading it (queries), so each can be optimized and scaled…
CRLFCarriage return and line feedThe two-character sequence, written \r\n with ASCII codes 13 and 10, that ends lines in Windows text files and in internet protocols such as HTTP, SMTP and FTP.
CRUDCreate, read, update, deleteThe four basic operations of persistent storage and the typical actions of database-backed apps.
CVSConcurrent Versions SystemAn early open-source centralized version control system that let multiple developers work on the same files and merge their changes; it was standard in open-source…
DAOData access objectA design pattern that hides database operations behind an interface, such as UserDao.findById(), so business logic does not depend on SQL or a particular storage engine.
DDDDomain-driven designAn approach to software design that models code closely on the business domain, using a shared "ubiquitous language" with domain experts and dividing large systems into…
DFSDepth-first searchA graph and tree traversal algorithm that explores as far as possible along each branch before backtracking, usually implemented with recursion or a stack.
DIDependency injectionA technique in which an object receives the services it depends on from outside, typically through its constructor, instead of creating them itself.
DPDynamic programmingAn algorithm design technique that solves problems by breaking them into overlapping subproblems and storing each answer so it is computed only once, either top-down…
DRYDon't repeat yourselfA software principle stating that every piece of knowledge or logic should have a single, authoritative representation in a system, so changes need to be made in only…
DSAData structures and algorithmsThe core computer-science subject covering how data is organized, in arrays, linked lists, trees, graphs and hash tables, and how problems are solved efficiently…
DSLDomain-specific languageA small language designed for one kind of task rather than general programming, such as SQL for queries, CSS for styling, regular expressions for text matching or HCL…
DTOData transfer objectA simple object that carries data between layers or across a network boundary, with fields but little or no behavior.
DXDeveloper experienceHow easy and pleasant it is for developers to use a tool, API, platform or codebase, including documentation, error messages, setup time and feedback loops.
E2EEnd-to-end (testing)Testing that exercises a whole application the way a user would, from the interface through back-end services and databases, to confirm complete workflows such as…
EDAEvent-driven architectureA software design in which services communicate by producing and reacting to events, such as "order placed", rather than calling each other directly.
EOFEnd of fileA condition, and in some languages a special value, signaling that no more data can be read from a file or input stream.
EOLEnd of lineThe character or characters that mark the end of a line of text: a line feed (LF) on Unix, Linux and macOS, and a carriage return plus line feed (CRLF) on Windows.
ESBEnterprise service busA middleware architecture in which applications connect to a central bus that routes, transforms and orchestrates messages between them; it was popular in large…
ESMECMAScript modulesThe standard JavaScript module system, using import and export statements, supported natively by browsers and Node.js.
FFIForeign function interfaceA mechanism that lets code in one programming language call functions written in another, most often C libraries.
FIFOFirst in, first outInventory costing method that assumes the oldest units purchased or produced are sold first, so cost of goods sold reflects older costs and ending inventory reflects…
FORTRANFormula TranslationOne of the oldest high-level programming languages, designed for numerical and scientific computing and still widely used in weather forecasting, physics simulations…
FPFunctional programmingA programming paradigm that builds software from pure functions, which return the same output for the same input and avoid side effects, and treats functions as values…
FSMFinite-state machineA model of computation with a fixed set of states, transitions triggered by inputs, and exactly one current state at a time.
GCGarbage collectionAutomatic memory management in which the runtime finds objects a program can no longer reach and frees their memory, so developers do not release memory by hand.
GCCGNU Compiler CollectionThe free compiler suite from the GNU Project for C, C++, Fortran, Ada, Go and other languages, standard on most Linux systems and used to build the Linux kernel itself.
GDBGNU DebuggerThe standard command-line debugger on Linux and many Unix systems, used to step through C, C++, Rust and other compiled programs, set breakpoints, inspect variables and…
GILGlobal interpreter lockA lock in CPython, the standard Python interpreter, that lets only one thread execute Python bytecode at a time.
GoFGang of FourNickname for Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, authors of the 1994 book "Design Patterns: Elements of Reusable Object-Oriented Software"…
grepGlobally search for a regular expression and printA Unix command-line tool that searches files or input for lines matching a pattern and prints them.
gRPCgRPC Remote Procedure CallsA high-performance open-source RPC framework that uses HTTP/2 for transport and Protocol Buffers for compact binary messages, generating client and server code in many…
GUIDGlobally unique identifierMicrosoft's name for a UUID, the 128-bit identifier used throughout Windows, COM, .NET and SQL Server to label components, interfaces and database rows.
HATEOASHypermedia as the Engine of Application StateA REST constraint under which API responses include links to related actions and resources, so clients discover what they can do next from the response itself rather…
i18nInternationalizationDesigning software so it can be adapted to different languages, regions and scripts without code changes, by moving user-facing text into translation files and handling…
IDEIntegrated development environmentAn application that combines a code editor, build tools, debugger and often version control and refactoring features in one interface.
IIFEImmediately invoked function expressionA JavaScript pattern that defines a function and runs it at once, creating a private scope so variables do not leak into the global namespace.
IoCInversion of controlA design principle in which a framework calls the developer's code rather than the developer's code calling the framework, for example through callbacks, event handlers…
IPCInter-process communicationMechanisms that let separate processes exchange data and coordinate, such as pipes, sockets, shared memory, message queues and signals.
J2EEJava 2 Platform, Enterprise EditionThe platform of APIs for building large server-side Java applications, including servlets, JavaServer Pages, Enterprise JavaBeans and messaging.
JDKJava Development KitThe package developers install to build Java applications, containing the javac compiler, the Java runtime, standard libraries and tools such as the jar packager and…
JITJust-in-timeProduction and inventory strategy in which materials arrive only as they are needed for production or sale, minimizing inventory and waste.
JREJava Runtime EnvironmentThe components needed to run, but not compile, Java programs: the Java Virtual Machine plus the standard class libraries.
JSONJavaScript Object NotationA lightweight text format for structured data built from objects in curly braces, arrays in square brackets, strings, numbers, booleans and null.
JVMJava Virtual MachineThe runtime engine that executes Java bytecode, giving Java its "write once, run anywhere" portability across operating systems.
KISSKeep it simple, stupidA design principle holding that systems work best when kept simple, so unnecessary complexity should be avoided.
l10nLocalizationAdapting internationalized software for a specific language and region, including translating text, formatting dates and currencies, swapping images and following local…
LGTMLooks good to meCode-review shorthand meaning the reviewer has checked a change and approves it for merging.
LIFOLast in, first outInventory costing method that assumes the most recently acquired units are sold first, so cost of goods sold reflects the latest prices.
LINQLanguage Integrated QueryA .NET feature that builds query capabilities directly into C# and Visual Basic, letting developers filter, sort and join collections, databases and XML with one…
LispList processingA family of programming languages built on nested lists and prefix notation with many parentheses, in which code and data share the same structure.
LLVMLLVM (originally Low Level Virtual Machine)A collection of modular compiler and toolchain technologies that turn an intermediate representation into optimized machine code for many processors.
LOCLines of codeA count of the lines in a program's source code, used as a rough measure of size, effort or productivity.
LRULeast recently usedA cache eviction policy that discards the item not accessed for the longest time when space runs out, on the theory that recent use predicts future use.
MATLABMatrix LaboratoryA commercial numerical computing environment and programming language from MathWorks, widely used in engineering, signal processing, control systems and academic…
mkdirMake directoryThe command that creates a new directory, or folder, on Unix, Linux, macOS and Windows command lines.
MQMessage queueA component that stores messages from producing applications until consuming applications are ready to process them, decoupling services and smoothing load spikes.
MRMerge requestGitLab's name for a proposal to merge code changes from one branch into another, with review, discussion and CI results attached; it is the equivalent of a GitHub pull…
MVCModel-view-controllerA software design pattern that separates an application into the model (data and business rules), the view (what users see) and the controller (handling input and…
MVVMModel-view-viewmodelA UI architecture pattern in which a view model exposes data and commands that the view binds to automatically, keeping display logic separate from both the interface…
NaNNot a numberA special floating-point value representing an undefined or unrepresentable result, such as 0 divided by 0 or the square root of a negative number.
NIHNot invented hereThe tendency of teams or companies to reject external libraries, products or ideas and build their own instead, often at greater cost. "NIH syndrome" is a common…
NoSQLNot only SQLA broad category of databases that store data in models other than relational tables, such as documents (MongoDB), key-value pairs (Redis), wide columns (Cassandra) and…
NPENullPointerExceptionThe Java error thrown when code tries to use a reference that points to nothing, such as calling a method on a null variable.
npmnpm (often expanded as Node Package Manager)The default package manager for Node.js and the largest public software registry, used to install, publish and manage JavaScript libraries.
OOMOut of memoryA condition in which a program or system cannot allocate more memory.
OOPObject-oriented programmingA programming paradigm that organizes code into objects combining data (fields) and behavior (methods), usually defined by classes.
ORMObject-relational mappingA technique, and the libraries implementing it, that maps database tables to classes in object-oriented code, so developers work with objects instead of writing SQL by…
OSOperating systemCore software that manages a computer's processor, memory, storage and devices and provides common services to applications.
PATPersonal access tokenA long, randomly generated string that replaces a password when authenticating scripts, command-line tools and API calls to services such as GitHub, GitLab and Azure…
PCREPerl Compatible Regular ExpressionsA C library implementing the regular-expression syntax and features of Perl, such as lookahead, lazy quantifiers and named groups.
PEPPython Enhancement ProposalA design document proposing a new feature, process or convention for the Python language, debated by the community and accepted or rejected by Python's steering council.
PHPPHP: Hypertext PreprocessorA server-side scripting language designed for web development that powers WordPress, MediaWiki and many content management systems and online stores.
PIDProcess identifierThe number an operating system assigns to each running process, used to monitor, signal or terminate it.
pippip Installs PackagesThe standard package installer for Python, which downloads libraries from the Python Package Index and installs them with their dependencies.
PoCProof of conceptA small, often throwaway implementation built to show that an idea, technology or approach is feasible before investing in full development.
POJOPlain old Java objectAn ordinary Java object that does not depend on special framework classes or interfaces.
PRPull requestA request to merge a set of code changes from one branch into another, typically on GitHub, Bitbucket or Azure DevOps, where teammates review the diff, discuss it and…
PRNGPseudorandom number generatorAn algorithm that produces a sequence of numbers that looks random but is fully determined by a starting value called a seed.
PTALPlease take a lookCode-review shorthand asking someone to review a change, or to look again after the author has addressed earlier comments.
pwdPrint working directoryThe Unix and Linux shell command that prints the full path of the current directory, such as /home/ana/projects.
PyPIPython Package IndexThe official public repository of third-party Python software, hosting hundreds of thousands of projects that pip installs by name.
QAQuality assurance (software)The discipline and team responsible for preventing defects and verifying that software meets requirements, through test planning, manual and automated testing, and…
RAIIResource acquisition is initializationA C++ idiom that ties a resource, such as memory, a file handle or a lock, to an object's lifetime, so the resource is released automatically in the destructor when the…
regexRegular expressionA pattern language for matching text, used to search, validate and replace strings, such as ^\d{5}$ for a five-digit ZIP code.
REPLRead-eval-print loopAn interactive programming shell that reads an expression typed by the user, evaluates it, prints the result and waits for the next input.
RESTRepresentational state transferAn architectural style for web APIs in which resources are identified by URLs and manipulated with standard HTTP methods such as GET, POST, PUT and DELETE, usually…
RNGRandom number generatorRandomness in a game, such as loot drops, critical hits or spawn locations, determined by a random number generator.
RoRRuby on RailsA web application framework for the Ruby language that favors convention over configuration, generating much of a database-backed app's structure automatically.
RPCRemote procedure callA communication model in which a program calls a function that actually runs on another computer, with the network details hidden so the call looks local. gRPC…
SAFeScaled Agile FrameworkA framework for applying agile practices across large organizations by coordinating many teams into "agile release trains" that plan together in regular program…
SCMSource control managementAnother name for version control, the tracking and management of changes to source code, also applied to the platforms around it.
SDESoftware development engineerThe job title Amazon and Microsoft have used for software engineers, with levels such as SDE I, SDE II and Senior SDE.
SDKSoftware development kitA bundle of tools needed to build software for a specific platform or service, typically including libraries, documentation, code samples, compilers or emulators and…
SDLCSoftware development life cycleThe structured series of phases a software project passes through, typically planning, requirements, design, implementation, testing, deployment and maintenance.
sedStream editorA Unix command-line tool that edits text as it flows through, most often to find and replace patterns, delete lines or extract sections without opening a file in an…
SemVerSemantic VersioningA version-numbering scheme in the form MAJOR.MINOR.PATCH, where the major number rises for breaking changes, the minor number for backward-compatible features and the…
SOStack OverflowThe largest question-and-answer website for programmers, where developers post coding problems and community members answer, vote and edit. "SO" is common shorthand in…
SOAService-oriented architectureA design approach in which applications are built from loosely coupled, reusable services that communicate over a network through well-defined interfaces, often SOAP…
SOAPSimple Object Access ProtocolAn XML-based messaging protocol for exchanging structured data between systems, typically over HTTP, with a formal contract described in WSDL.
SoCSeparation of concernsA design principle of dividing a program into distinct sections that each handle a separate concern, such as data access, business logic and presentation, so each can…
SOLIDSingle responsibility, open-closed, Liskov substitution, interface segregation, dependency inversionA mnemonic for five object-oriented design principles: each class has one reason to change, code is open to extension but closed to modification, subtypes can replace…
SQLStructured Query LanguageThe standard language for defining, querying and updating data in relational databases, using statements such as SELECT, INSERT, UPDATE and DELETE.
SRPSingle-responsibility principleThe first SOLID principle: a class or module should have only one reason to change, meaning it serves one actor or concern.
SRSSoftware requirements specificationA document describing what a software system must do and the constraints it must meet, including functional requirements, performance targets, interfaces and design…
STLStandard Template LibraryA C++ library of generic containers, algorithms and iterators, such as vector, map, sort and find, that work with any data type through templates.
SVNSubversion (Apache Subversion)A centralized version control system in which developers commit changes to a single server repository, widely used in the 2000s before Git took over.
SWESoftware engineerA job title and common shorthand for a software engineer, a professional who designs, builds, tests and maintains software.
TCOTail call optimizationA compiler or interpreter optimization in which a function call made as the very last action of another function reuses the current stack frame instead of adding a new…
TDDTest-driven developmentA development practice in which the programmer writes a failing automated test before writing the code to make it pass, then refactors, repeating in short cycles called…
TOMLTom's Obvious, Minimal LanguageA configuration file format designed to be easy to read and to map unambiguously to a hash table, using sections in square brackets and key = value pairs.
TSTypeScriptA programming language from Microsoft that adds static types to JavaScript and compiles to plain JavaScript, catching many errors before code runs.
UATUser acceptance testingFinal testing phase in which business users or clients verify that a system or product meets their requirements in realistic scenarios before it is accepted and…
UBUndefined behaviorIn C and C++, code whose result the language standard does not define, such as reading past an array's end, using freed memory or overflowing a signed integer.
UIDUser identifierThe number Unix-like operating systems use to identify each user account, stored with every file and process to enforce permissions.
UMLUnified Modeling LanguageA standardized visual notation for designing and documenting software, with diagram types such as class, sequence, use case, activity and state diagrams.
UTF-8Unicode Transformation Format, 8-bitVariable-width encoding of Unicode that stores each character in one to four bytes while keeping plain English text byte-for-byte identical to ASCII.
UUIDUniversally unique identifierA 128-bit identifier written as 32 hexadecimal digits in five groups, such as 123e4567-e89b-12d3-a456-426614174000, generated so that collisions are practically…
VBAVisual Basic for ApplicationsMicrosoft's programming language built into Excel, Word, Access, Outlook and other Office apps, used to write macros that automate repetitive tasks and build custom…
VCSVersion control systemSoftware that records changes to files over time so developers can review history, revert mistakes, work on parallel branches and merge contributions.
VS CodeVisual Studio CodeA free source-code editor from Microsoft for Windows, macOS and Linux, with built-in Git, debugging and a huge extension marketplace.
WETWrite everything twiceA tongue-in-cheek label for code that duplicates logic instead of sharing it, the opposite of DRY.
WIPWork in progressPartly finished goods in a manufacturing process, recorded as inventory and valued at the materials, labor and overhead costs incurred so far.
WSDLWeb Services Description LanguageAn XML format that describes a SOAP web service's operations, message formats, data types and endpoint addresses, allowing tools to generate client code automatically.
XMLExtensible Markup LanguageA markup language for storing and exchanging structured data with custom tags and strict rules for well-formed documents.
XPExtreme ProgrammingAn agile software methodology emphasizing frequent releases, pair programming, test-driven development, continuous integration, simple design and close collaboration…
XSLTExtensible Stylesheet Language TransformationsA language for transforming XML documents into other XML, HTML or plain text, using template rules that match parts of the input.
YAGNIYou aren't gonna need itAn Extreme Programming principle that developers should not add features or flexibility until they are actually needed, since predicted requirements often never arrive…
YAMLYAML Ain't Markup LanguageA human-friendly data format that uses indentation instead of brackets, widely used for configuration in Kubernetes, Docker Compose, GitHub Actions, Ansible and many…
zshZ shellAn interactive Unix shell and scripting language compatible with most Bash syntax, adding stronger tab completion, spelling correction and theming.

More technology & computer abbreviations