document: Enforcing strict model-view separation in template engines The mantra of every experienced web application developer is the same : thou shalt separate business logic from display . Ironically , almost all template engines allow violation of this separation principle , which is the very impetus for HTML template engine development . This situation is due mostly to a lack of formal definition of separation and fear that enforcing separation emasculates a template 's power . I show that not only is strict separation a worthy design principle , but that we can enforce separation while providing a potent template engine . I demonstrate my StringTemplate engine , used to build jGuru.com and other commercial sites , at work solving some nontrivial generational tasks . My goal is to formalize the study of template engines , thus , providing a common nomenclature , a means of classifying template generational power , and a way to leverage interesting results from formal language theory . I classify three types of restricted templates analogous to Chomsky 's type 1 . .3 grammar classes and formally define separation including the rules that embody separation . Because this paper provides a clear definition of model-view separation , template engine designers may no longer blindly claim enforcement of separation . Moreover , given theoretical arguments and empirical evidence , programmers no longer have an excuse to entangle model and view .
doc_bio_tags: O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O