Programming

Definitions related to software programming, including tech terms about programming languages and words and phrases about software design, coding, testing and debugging.
  • 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.
  • flowchart - A flowchart is a formalized graphic representation of a logic sequence, work or manufacturing process, organization chart, or similar formalized structure.
  • Fortran - Fortran is an imperative programming language used for more than 60 years to create powerful, efficient and accurate applications, particularly in scientific fields.
  • freeware - Freeware (not to be confused with free software) is a type of proprietary software that is released without charge to the public.
  • full-stack developer - A full-stack developer is a type of programmer that has a functional knowledge of all techniques, languages and systems engineering concepts required in software development.
  • functional programming - Functional programming is a programming paradigm that uses functions to construct programs and control how those programs operate.
  • fuzzy logic - Fuzzy logic is an approach to computing based on "degrees of truth" rather than the usual "true or false" (1 or 0) Boolean logic on which the modern computer is based.
  • fuzzy search - A fuzzy search is a technique that uses search algorithms to find strings that match patterns approximately.
  • G-code - G-code (also known as geometric code or RS-274) is the most prevalent programming language for computer numerical control (CNC) machines used in computer-aided design and computer-aided manufacturing (CAD/CAM).
  • Gantt chart - A Gantt chart is a horizontal bar chart developed as a production control tool in 1917 by Henry L.
  • garbage collection (GC) - Garbage collection (GC) is a memory recovery feature built into programming languages such as C# and Java.
  • garbage in, garbage out (GIGO) - Garbage in, garbage out, or GIGO, refers to the idea that in any system, the quality of output is determined by the quality of the input.
  • GitLab - GitLab is an open source code repository and collaborative development platform.
  • GNU GRUB - GNU GRUB (or just GRUB) is a boot loader package that supports multiple operating systems on a computer.
  • GNU Project - The GNU Project is a mass collaborative initiative for the development of free software, specifically a free operating system called GNU.
  • Go programming language - Go, also called Golang or Go language, is an open source programming language that Google developed.
  • Gramm-Leach-Bliley Act (GLBA) - The Gramm-Leach-Bliley Act (GLB Act or GLBA), also known as the Financial Modernization Act of 1999, is a federal law enacted in the United States to control the ways financial institutions deal with the private information of individuals.
  • GraphQL - GraphQL is an open source query language that describes how a client should request information through an API.
  • GRASP (General Responsibility Assignment Software Patterns) - GRASP (General Responsibility Assignment Software Patterns) is a design pattern in software development used to assign responsibilities for different modules of code.
  • grid computing - Grid computing is a system for connecting a large number of computer nodes into a distributed architecture that delivers the compute resources necessary to solve complex problems.
  • Groovy - Groovy is a dynamic object-oriented programming language for the Java virtual machine (JVM) that can be used anywhere Java is used.
  • GRUB (GRand Unified Bootloader) - GRUB (GRand Unified Bootloader) is a boot loader package developed to support multiple operating systems and allow the user to select among them during boot-up.
  • hackathon - A hackathon, also known as a codefest, is a social coding event that brings computer programmers and other interested people together to improve upon or build a new software program.
  • Hadoop - Hadoop is an open source distributed processing framework that manages data processing and storage for big data applications in scalable clusters of computer servers.
  • headless browser - A headless browser is a web browser without a graphical user interface (GUI).
  • heap - In certain programming languages including C and Pascal, a heap is an area of pre-reserved computer main storage (memory) that a program process can use to store data in some variable amount that won't be known until the program is running.
  • hexadecimal - Hexadecimal is a numbering system with base 16.
  • Hibernate - Hibernate is an open source object relational mapping (ORM) tool that provides a framework to map object-oriented domain models to relational databases for web applications.
  • Hofstadter's law - Hofstadter's law states that a project always takes longer than expected, even when the law is taken into account.
  • hook - In programming, a hook is a place and usually an interface provided in packaged code that allows a programmer to insert customized programming.
  • hotfix - A hotfix is code -- sometimes called a patch -- that fixes a bug in a product.
  • HTML (Hypertext Markup Language) - HTML (Hypertext Markup Language) is a text-based approach to describing how content contained within an HTML file is structured.
  • hybrid application (hybrid app) - A hybrid app is a software application that combines elements of both native apps and web applications.
  • hypervisor - A hypervisor is software that facilitates running multiple virtual machines (VMs) with their own operating systems on a single computer host's hardware.
  • IBM IMS (Information Management System) - IBM IMS (Information Management System) is a database and transaction management system that was first introduced by IBM in 1968.
  • IDL (interface definition language) - IDL (interface definition language) is a generic term for a language that lets a program or object written in one language communicate with another program written in an unknown language.
  • IDoc (intermediate document) - IDoc (intermediate document) is a standard data structure used in SAP applications to transfer data to and from SAP system applications and external systems.
  • imperative programming - Imperative programming is a software development paradigm where functions are implicitly coded in all the steps required to solve a problem.
  • infinite loop (endless loop) - An infinite loop -- sometimes called an endless loop -- is a piece of code that lacks a functional exit so that it repeats indefinitely.
  • infrastructure as code (IaC) - Infrastructure as code, also referred to as IaC, is an IT practice that codifies and manages underlying IT infrastructure as software.
  • initialization vector - An initialization vector (IV) is an arbitrary number that can be used with a secret key for data encryption to foil cyber attacks.
  • inline frame (iframe) - An inline frame (iframe) is a HTML element that loads another HTML page within the document.
  • instance - In object-oriented programming (OOP), an instance is a specific realization of any object.
  • instantiation - In programming, instantiation is the creation of a real instance or particular realization of an abstraction or template, such as a class of objects or a computer process.
  • instruction set - An instruction set is a group of commands for a central processing unit (CPU) in machine language.
  • internationalization (I18N) - Internationalization is the process of designing and building a product so that it can be easily adapted to specific languages and cultures.
  • iteration - In agile software development, an iteration is a single development cycle, usually measured as one week or two weeks.
  • iterative - In the world of IT and computer programming, the adjective iterative refers to a process where the design of a product or application is improved by repeated review and testing.
  • iterative development - Iterative development is a way of breaking down the software development lifecycle (SDLC) of a large application into smaller chunks.
  • JAR file (Java Archive) - A Java Archive, or JAR file, contains all of the various components that make up a self-contained, executable Java application, deployable Java applet or, most commonly, a Java library to which any Java Runtime Environment can link.
  • Java - Java is a widely used programming language expressly designed for coding applications and services used in the distributed environment of the internet.
  • Java assert - The Java assert is a mechanism used primarily in nonproduction environments to test for extraordinary conditions that will never be encountered unless a bug exists somewhere in the code.
  • Java Authentication and Authorization Service (JAAS) - The Java Authentication and Authorization Service (JAAS) is a set of application program interfaces (APIs) that can determine the identity of a user or computer attempting to run Java code, and ensure that the entity has the privilege or permission to execute the functions requested.
  • Java compiler - A Java compiler is a program that takes the text file work of a developer and compiles it into a platform-independent Java file.
  • Java Cryptography Extension (JCE) - The Java Cryptography Extension (JCE) is an application program interface (API) that provides a uniform framework for the implementation of security features in Java.
  • Java Database Connectivity (JDBC) - Java Database Connectivity (JDBC) is an API packaged with the Java SE edition that makes it possible to connect from a Java Runtime Environment (JRE) to external, relational database systems.
  • Java Development Kit (JDK) - The Java Development Kit (JDK) provides the foundation upon which all applications that are targeted toward the Java platform are built.
  • Java Mission Control - Java Mission Control is a performance-analysis tool that renders sampled JVM metrics in easy-to-understand graphs, tables, histograms, lists and charts.
  • Java Runtime Environment (JRE) - The Java Runtime Environment (JRE), also known as Java Runtime, is the part of the Java Development Kit (JDK) that contains and orchestrates the set of tools and minimum requirements for executing a Java application.
  • Java string - A Java string is a sequence of characters that exists as an object of the class java.
  • Java virtual machine (JVM) - A Java virtual machine (JVM), an implementation of the Java Virtual Machine Specification, interprets compiled Java binary code (called bytecode) for a computer's processor (or "hardware platform") so that it can perform a Java program's instructions.
  • JavaScript - JavaScript is a programming language that started off simply as a mechanism to add logic and interactivity to an otherwise static Netscape browser.
  • JAX-WS (Java API for XML Web Services) - Java API for XML Web Services (JAX-WS) is one of a set of Java technologies used to develop Web services.
  • job - In certain computer operating systems, a job is the unit of work that a computer operator -- or a program called a job scheduler -- gives to the OS.
  • job scheduler - A job scheduler is a computer program that enables an enterprise to schedule and, in some cases, monitor computer 'batch' jobs (units of work).
  • job step - In certain computer operating systems, a job step is part of a job, a unit of work that a computer operator (or a program called a job scheduler) gives to the operating system.
  • joint application development (JAD) - Joint application development, frequently shortened to JAD, is a methodology that involves the client or end user in the design and development of a software application through a succession of collaborative workshops called JAD sessions.
  • JOLAP (Java Online Analytical Processing) - JOLAP (Java Online Analytical Processing) is a Java application-programming interface (API) for the Java 2 Platform, Enterprise Edition (J2EE) environment that supports the creation, storage, access, and management of data in an online analytical processing (OLAP) application.
  • JSON (JavaScript Object Notation) - JSON (JavaScript Object Notation) is a text-based, human-readable data interchange format used to exchange data between web clients and web servers.
  • just-in-time compiler (JIT) - A just-in-time (JIT) compiler is a program that turns bytecode into instructions that can be sent directly to a computer's processor (CPU).
  • Jython - Jython is an open source implementation of the Python programming language, integrated with the Java platform.
  • Kaizen (continuous improvement) - Kaizen is an approach to creating continuous improvement based on the idea that small, ongoing positive changes can reap significant improvements.
  • Karnaugh map (K-map) - A Karnaugh map (K-map) is a visual method used to simplify the algebraic expressions in Boolean functions without having to resort to complex theorems or equation manipulations.
  • key-value pair (KVP) - A key-value pair (KVP) is a set of two linked data items: a key, which is a unique identifier for some item of data, and the value, which is either the data that is identified or a pointer to the location of that data.
  • KLOC (thousands of lines of code) - KLOC (thousands of lines of code) is a traditional measure of how large a computer program is or how long or how many people it will take to write it.
  • knowledge engineering - Knowledge engineering is a field of artificial intelligence (AI) that tries to emulate the judgment and behavior of a human expert in a given field.
  • Korn shell (ksh) - The Korn shell (ksh) is an operating system (OS) command shell that was developed for Unix by David Korn at Bell Labs.
  • Kotlin - Kotlin is a statically typed, object-oriented programing language that is interoperable with the Java virtual machine, Java Class Libraries and Android.
  • lambda - Lambda, the 11th letter of the Greek alphabet, is used as both a symbol and a concept in various fields of science, mathematics and computing.
  • LAMP (Linux, Apache, MySQL, PHP) - LAMP is an open source Web development platform that uses Linux as the operating system, Apache as the Web server, MySQL as the relational database management system and PHP as the object-oriented scripting language.
  • Lean software development - Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software.
  • lexical scoping (static scoping) - Lexical scoping, also known as static scoping, is a convention used with many modern programming languages.
  • Lisp (programming language) - Lisp, an acronym for list processing, is a functional programming language that was designed for easy manipulation of data strings.
  • logical implication - Logical implication is a type of relationship between two statements or sentences.
  • logical negation symbol - The logical negation symbol is used in Boolean algebra to indicate that the truth value of the statement that follows is reversed.
  • logical OR symbol - In mathematics, the logical OR symbol is a Boolean function that is positioned between two statements to indicate an inclusive disjunction between them.
  • loop - In computer programming, a loop is a sequence of instructions that is continually repeated until a certain condition is reached.
  • MapReduce - MapReduce is a core component of the Apache Hadoop software framework.
  • massive open online course (MOOC) - A massive open online course (MOOC) is a typically free web-based distance learning program that's designed for large numbers of geographically dispersed students.
  • memory dump - A memory dump is the process of taking all information content in RAM and writing it to a storage drive as a memory dump file (*.
  • message passing interface (MPI) - The message passing interface (MPI) is a standardized means of exchanging messages between multiple computers running a parallel program across distributed memory.