Mantrat för varje erfaren webbprogramutvecklare är detsamma: du ska skilja affärslogik från display. Ironiskt nog tillåter nästan alla mallmotorer att bryta mot denna separationsprincip, som är själva drivkraften för HTML-mallmotorutveckling. Denna situation beror främst på en brist på formell definition av separation och rädsla att genomdriva separation emaskulerar en malls makt. Jag visar att inte bara är strikt separation en värdig designprincip, utan att vi kan genomdriva separation samtidigt som vi tillhandahåller en kraftfull mallmotor. Jag visar min StringTemplate motor, som används för att bygga jGuru.com och andra kommersiella webbplatser, på jobbet lösa några icke-triviala generationella uppgifter Mitt mål är att formalisera studien av mall motorer, alltså, att ge en gemensam nomenklatur, ett sätt att klassificera mall generationell kraft, och ett sätt att utnyttja intressanta resultat från formella språkteori. Jag klassificerar tre typer av begränsade mallar liknande Chomskys typ 1.3 grammatikklasser och definierar formellt separation inklusive de regler som förkroppsligar separation. Eftersom detta dokument ger en tydlig definition av modell-vy separation, mall motordesigners kan inte längre blint kräva verkställighet av separation. Dessutom har programmerare, med tanke på teoretiska argument och empiriska bevis, inte längre någon ursäkt för att trassla ihop modell och syn.
Parr Ref ger en definition av strikt åtskillnad mellan modell och vy i mallmotorer, samt en definition av mall och en klassificering av de olika typer en mall kan tillhöra.
Enforcing strict model-view separation in template engines
{'venue': "WWW '04", 'journal': None, 'mag_field_of_study': ['Computer Science']}