Factor is a concatenative programming language . Like Tcl , it is something of a chameleon , serving as a layer upon which facilities for various programming paradigms can be built . As a stack-based language , it also shares some of the core characteristics of Forth .