Stack is a concept introduced in algebraic geometry to generalize algebraic varieties and schemes. They were originally proposed by David Mumford on the compactifications of moduli of curves; such stack is now called a Deligne-Mumford stack. They were later generalized by Michael Artin to Artin stacks, or sometimes also called algebraic stacks. More generally a stack is a category acting like a moduli space with a universal family parametrizing a family of mathematical objects such as schemes or topological spaces.