1. A method for building an expression, the method comprising: utilizing any formal grammar of a context-free language; displaying an expression on a computer display via a graphical user interface; replacing at least one non-terminal display object within the displayed expression with any of a) at least one non-terminal display object, and b) at least one terminal display object; and repeating the replacing step a plurality of times for a plurality of non-terminal display objects until no non-terminal display objects remain in the displayed expression, wherein the non-terminal display objects correspond to non-terminal elements within the grammar, and wherein the terminal display objects correspond to terminal elements within the grammar.