In computer programming, glue code is executable code (often source code) that serves solely to "adapt" different parts of code that would otherwise be incompatible. Glue code does not contribute any functionality towards meeting program requirements. Instead, it often appears in code that lets existing libraries or programs interoperate, as in language bindings or foreign function interfaces such as the Java Native Interface, when mapping objects to a database using object-relational mapping, or when integrating two or more commercial off-the-shelf programs. Glue code may be written in the same language as the code it is gluing together, or in a separate glue language. Glue code is very efficient in rapid prototyping environments, where several components are quickly put together into a single language or framework.
Because each component is independent (i.e. it is unaware of its relations and is only connected to another component through glue code), the behavior of a component and its interactions can change during the execution of the script. In addition, a different version of one of the components may behave differently, breaking the glue code.
High-level programming languages can suffer from performance penalties because glue code must run through the language interpreter, even when connecting high-performance subsystems. If performance is crucial, using configuration scripting is often preferred to directly connecting binary interfaces of components. In object-oriented scripting languages, glue code often eliminates the need for class hierarchies and large numbers of classes.
- Adapter pattern
- Scripting language
- Shell script
- Lua (programming language)
- Glue logic
- Wrapper function
- Wrapper library
- Stub (computer science)
- Stolpmann, Gerd. "Chapter 5. Complex packages: Glue code". findlib User's Guide. Caml City.
- Pryce, Nathaniel. "Glue Code". Scripting. Patterns. Department of Computing, Imperial College London. Archived from the original on 2017-03-31.
- Lethbridge, Timothy C.; Laganière, Robert (2001-11-21) [Summer 2001]. "Object Oriented Software Engineering: Practical Software Development using UML and Java". McGraw Hill / University of Ottawa. Glue Code. Archived from the original on 2017-07-12.