Programming

Definitions related to software programming, including tech terms about programming languages and words and phrases about software design, coding, testing and debugging.
  • 42 (h2g2, meaning of life, The Hitchhiker's Guide to the Galaxy) - In Douglas Adams' "The Hitchhiker's Guide to the Galaxy," 42 is the number from which all meaning ("the meaning of life, the universe, and everything") can be derived.
  • ABAP (Advanced Business Application Programming) - ABAP (Advanced Business Application Programming) is the primary programming language supported on the SAP NetWeaver ABAP application server platform and applications that run on it, such as SAP ERP (formerly R/3), S/4HANA and CRM.
  • abend (abnormal end) - An abend (abnormal end) is an unexpected or abnormal termination of an application or operating system that results from a problem with the software.
  • abstract class - An abstract class is a template definition of methods and variables in a specific class, or category of objects.
  • abstraction - Abstraction (from the Latin abs, meaning away from and trahere, meaning to draw) is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics.
  • ActiveX - ActiveX is a set of object-oriented programming technologies and tools that Microsoft developed for Internet Explorer to facilitate rich media playback.
  • ActiveX controls - ActiveX controls are component program objects that Microsoft developed to enable applications to perform specific functions, such as displaying a calendar or playing a video.
  • address space - Address space is the amount of memory allocated for all possible addresses for a computational entity -- for example, a device, a file, a server or a networked computer.
  • Adobe Flash - Adobe Flash is a software platform used to create rich digital content containing animation, graphic effects, streaming video and other interactive elements to deliver engaging user experiences over many platforms, including desktops and mobile devices.
  • agile test automation pyramid - The agile test automation pyramid is a graphical strategy guide for implementing automated software testing.
  • AJAX (Asynchronous JavaScript and XML) - AJAX (Asynchronous JavaScript and XML) is a technique aimed at creating better and faster interactive web apps by combining several programming tools including JavaScript, dynamic HTML (DHTML) and Extensible Markup Language (XML).
  • alphanumeric (alphameric) - Alphanumeric, also referred to as alphameric, is a term that encompasses all of the letters and numerals in a given language set.
  • Amdahl's law - Amdahl's law -- also known as Amdahl's argument -- is an intuitive observation and an associated formula.
  • Apache Solr - Apache Solr is an open source search platform built upon a Java library called Lucene.
  • Apex (Salesforce) - Salesforce Apex is a Microsoft-certified framework for building software as a service (SaaS) apps on top of Salesforce's customer relationship management (CRM) functionality.
  • API gateway (application programming interface gateway) - An API gateway is a software pattern that sits in front of an application programming interface (API) or group of microservices to facilitate requests and delivery of data and services.
  • application lifecycle management (ALM) - Application lifecycle management (ALM) is an integrated system of people, tools and processes that supervise a software application from its initial planning and development, through testing and maintenance, and into decommissioning and retirement.
  • application security - Application security, or appsec, is the practice of using security software, hardware, techniques, best practices and procedures to protect computer applications from external security threats.
  • aspect-oriented programming (AOP) - Aspect-oriented programming (AOP) is an approach to programming that allows global properties of a program to determine how it is compiled into an executable program.
  • assembler - An assembler is a computer program that takes in basic instructions and converts them into a pattern of bits that the computer's processor can use to perform basic operations.
  • attribute - In general, an attribute is a property, quality, or characteristic that something or someone has.
  • automated testing - Automated testing is a software testing technique that automates the process of validating the functionality of software and ensures it meets requirements before being released into production.
  • backdoor (computing) - A backdoor attack is a means to access a computer system or encrypted data that bypasses the system's customary security mechanisms.
  • backslash - The backslash ( \ ) is a typographic and/or keyboard mark that is widely used in programming languages and other computing contexts.
  • bash (Bourne again shell) - Bash (Bourne Again Shell) is the free and enhanced version of the Bourne shell distributed with Linux and GNU operating systems.
  • Bean - In its JavaBeans application program interface for writing a component, Sun Microsystems calls a component a "Bean" (thus continuing their coffee analogy).
  • best practice - A best practice is a standard or set of guidelines that is known to produce good outcomes if followed.
  • binary file - A binary file is a file whose content is in a binary format that consists of a series of sequential bytes, each of which is eight bits in length.
  • binary-coded decimal - Binary-coded decimal is a system of writing numerals that assigns a four-digit binary code to each digit 0 through 9 in a decimal (base 10) number.
  • bitwise - Bitwise operations manipulate data at the bit level rather than with bytes or larger units of data, as is more common.
  • Boolean - In computing, the term Boolean means a result that can only have one of two possible values: true or false.
  • Bootstrap - Bootstrap is a free, open source front-end development framework for the creation of websites and web apps.
  • Bourne shell - The Bourne shell is the original Unix shell -- command execution program, often called a command interpreter -- that was developed in 1979 at what at the time was Bell Labs.
  • BPEL (Business Process Execution Language) - BPEL (Business Process Execution Language) is an XML-based language that allows web services, APIs and human processes in a service-oriented architecture (SOA) to interconnect and share data in a business workflow.
  • brogrammer - A brogrammer is a male programmer with traits often associated with fraternity brothers (bros) rather than the coder's stereotypical geek persona.
  • BSD licenses - BSD licenses are a low restriction type of license for open source software that does not put requirements on redistribution.
  • bug - In computer technology, a bug is a coding error in a computer program.
  • build - In a programming context, a build is a version of a program that, as a rule, is a pre-release version and is identified by a build number rather than by a release number.
  • business logic - In programming, business logic is the part of a software program responsible for implementing the business rules that define how data should be created, modified, transformed, communicated and in other ways managed and controlled.
  • Business Process Modeling Language (BPML) - Business Process Modeling Language (BPML) is an XML standard metalanguage used to outline business processes in an easy-to-understand way.
  • bytecode - Bytecode is computer object code that an interpreter converts into binary machine code so it can be read by a computer's hardware processor.
  • C shell - C shell (csh) is a Unix shell that provides a command-line user interface (UI) to interact with an operating system (OS).
  • C# (C-Sharp) - C#, pronounced "C-sharp," is an object-oriented programming language from Microsoft that enables developers to build applications that run on the .
  • C++ - C++ is an object-oriented programming (OOP) language that is viewed by many as the best language for creating large-scale applications.
  • Capability Maturity Model (CMM) - The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process.
  • cellular automaton (CA) - A cellular automaton (CA) is a collection of cells arranged in a grid of specified shape, such that each cell changes state as a function of time, according to a defined set of rules driven by the states of neighboring cells.
  • change control - Change control includes the various steps needed to process changes made to a product or system.
  • chatbot - A chatbot is a software or computer program that simulates human conversation or "chatter" through text or voice interactions.
  • CICS (Customer Information Control System) - CICS (Customer Information Control System) is middleware that sits between the z/OS IBM mainframe operating system and business applications.
  • class - In object-oriented programming, a class is a template definition of the methods and variables in a particular kind of object.
  • class library (in object-oriented programming) - In object-oriented programming, a class library is a collection of classes and other reusable software components, such as interfaces and value types.
  • COBOL (Common Business Oriented Language) - COBOL (Common Business-Oriented Language) is a high-level programming language for business applications.
  • code - In computer programming, 'computer code' refers to the set of instructions, or a system of rules, written in a particular programming language (i.
  • codebase (code base) - A codebase, or code base, is the complete body of source code for a software program, component or system.
  • Common Information Model (CIM) - The Common Information Model (CIM) is a computer industry standard that defines device and application characteristics so system administrators and management programs can control devices and applications from different manufacturers.
  • Common Language Runtime (CLR) - The Common Language Runtime (CLR) is programming that manages the execution of programs written in any of several supported languages, allowing them to share common object-oriented classes written in any of the languages.
  • compiler - A compiler is a special program that translates a programming language's source code into machine code, bytecode or another programming language.
  • component - In programming and engineering disciplines, a component is an identifiable part of a larger program or construction.
  • computer instruction - A computer instruction is an order given to a computer processor by a computer program.
  • Concurrent Versions System (CVS) - CVS also is an abbreviation for Computer Vision Syndrome.
  • connection - In telecommunication and computing in general, a connection is the successful completion of necessary arrangements so that two or more parties (for example, people or programs) can communicate at a long distance.
  • const - Const (constant) in programming is a keyword that defines a variable or pointer as unchangeable.
  • content personalization - Content personalization is a branding and marketing strategy in which webpages, email and other forms of content are tailored to match the characteristics, preferences or behaviors of individual users.
  • context menu (right-click menu) - A context menu is a pop-up menu that provides shortcuts for actions the software developer anticipates the user might want to take.
  • continuous deployment - Continuous deployment is a strategy for software development and releases in which every code change is automatically run through a pipeline of tests and inspections before being pushed into production.
  • cross-site scripting (XSS) - Cross-site scripting (XSS) is a type of injection attack in which a threat actor inserts data, such as a malicious script, into content from otherwise trusted websites.
  • cruft - Cruft is the elements of a program, system or product that are either useless, poorly designed or both.
  • Cygwin - Cygwin is a collection of open source tools that allows Unix or Linux applications to be compiled and run on a Microsoft Windows operating system (OS) from within a Linux-like interface.
  • data abstraction - Data abstraction is the reduction of a particular body of data to a simplified representation of the whole.
  • data preprocessing - Data preprocessing, a component of data preparation, describes any type of processing performed on raw data to prepare it for another data processing procedure.
  • data type - In software programming, data type refers to the type of value a variable has and what type of mathematical, relational or logical operations can be applied without causing an error.
  • debugging - Debugging, in computer programming and engineering, is a multistep process that involves identifying a problem, isolating the source of the problem and then either correcting the problem or determining a way to work around it.
  • declarative programming - Declarative programming is a method to abstract the control flow for logic required for software to perform an action.
  • decompile - To decompile means to convert executable or ready-to-run program code -- sometimes called object code -- into some form of higher-level programming language that humans can easily understand.
  • deprecated - In information technology (IT), deprecation means that although something is available or allowed, it is not recommended or that -- in the case where something must be used -- to say it is deprecated means that its failings are recognized.
  • development environment - In software, web and mobile application development, the development environment is a workspace with a set of processes and programming tools used to develop the source code for an application or software product.
  • DevOps Dojo - A DevOps Dojo is a place where DevOps team members go for hands-on training.
  • diskpart (Disk Partition Utility) - Diskpart is a command line utility in Windows operating systems (OSs) that is used to manage disks, partitions, and volumes.
  • Distributed Component Object Model (DCOM) - Distributed Component Object Model (DCOM) is an extension to Component Object Model (COM) that enables software components to communicate with each other across different computers on a local area network (LAN), on a wide area network (WAN) or across the internet.
  • domain-driven design (DDD) - Domain-driven design (DDD) is a software development philosophy centered around the business domain, or sphere of knowledge, of that software's users.
  • Drupal - Drupal is a free, open source content management system (CMS) to build and maintain websites, online directories, e-commerce stores, intranets and other types of digital content.
  • DRY principle - The DRY (don't repeat yourself) principle is a best practice in software development that recommends software engineers to do something once, and only once.
  • dynamic link library (DLL) - A dynamic link library (DLL) is a collection of small programs that larger programs can load when needed to complete specific tasks.
  • ebXML (Electronic Business XML) - EbXML (Electronic Business XML or e-business XML) is a project to use the Extensible Markup Language (XML) to standardize the secure exchange of business data.
  • Eclipse (Eclipse Foundation) - Eclipse is a free, Java-based development platform known for its plugins that allow developers to develop and test code written in other programming languages.
  • embedded Tomcat - An embedded Tomcat server consists of a single Java web application along with a full Tomcat server distribution, packaged together and compressed into a single JAR, WAR or ZIP file.
  • emulation - Emulation, in a software context, is the use of an application program or device to imitate the behavior of another program or device.
  • encapsulation (object-orientated programming) - In object-oriented programming (OOP), encapsulation is the practice of bundling related data into a structured unit, along with the methods used to work with that data.
  • encoding and decoding - Encoding and decoding are used in many forms of communications, including computing, data communications, programming, digital electronics and human communications.
  • entity - An entity is a single thing with a distinct separate existence.
  • event handler - In programming, an event handler is a callback routine that operates asynchronously once an event takes place.
  • exception handler - An exception handler is code that stipulates what a program will do when an anomalous or exceptional event occurs and disrupts the normal flow of that program's instructions.
  • exception handling - Exception handling is the process of responding to unwanted or unexpected events when a computer program runs.
  • executable file (EXE file) - An executable file (EXE file) is a computer file that contains an encoded sequence of instructions that the system can execute directly when the user clicks the file icon.
  • feature flagging - Feature flagging is a simple programming design pattern that allows developers to turn application features on or off without having to redeploy or change code already in production.
  • file extension (file format) - In computing, a file extension is a suffix added to the name of a file to indicate the file's layout, in terms of how the data within the file is organized.
  • filter (computing) - The term filter in computing can mean a variety of things, depending on the technology or technical discipline in question.
  • Firebase Cloud Messaging (FCM) - Firebase Cloud Messaging (FCM), formerly called Google Cloud Messaging (GCM), is a free cloud service from Google that allows app developers to send notifications and messages to users across a variety of platforms, including Android, iOS and web applications.
  • first-order logic - First-order logic (FOL) refers to logic in which the predicate of a sentence or statement can only refer to a single subject.
  • fist to five (fist of five) - Fist to five, or fist of five, is a consensus-building technique used by Agile software development teams to poll team members and come to an agreement.