A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
ANTLR: a predicated-LL(k) parser generator
Software—Practice & Experience
SGML and XML document grammars and exceptions
Information and Computation
LL(k) Parsing for Attributed Grammars
Proceedings of the 6th Colloquium, on Automata, Languages and Programming
Chronica: a temporal web search engine
ICWE '06 Proceedings of the 6th international conference on Web engineering
Web application internationalization and localization in action
ICWE '06 Proceedings of the 6th international conference on Web engineering
From HTTP to HTML: Erlang/OTP experiences in web based service applications
Proceedings of the 2006 ACM SIGPLAN workshop on Erlang
Repleo: a syntax-safe template engine
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
WebDSL: A Case Study in Domain-Specific Language Engineering
Generative and Transformational Techniques in Software Engineering II
HTML templates that fly: a template engine approach to automated offloading from server to client
Proceedings of the 18th international conference on World wide web
A Formal Way from Text to Code Templates
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Development of a Maintenance Environment that Enabling Users to Revise Existing Web Applications
Proceedings of the 2007 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the sixth SoMeT_07
Generating safe template languages
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
ICWE'07 Proceedings of the 7th international conference on Web engineering
Multimedia document authoring based on identification and filling of recurrent structures
WebMedia '09 Proceedings of the XV Brazilian Symposium on Multimedia and the Web
Proceedings of the 12th International Conference on Information Integration and Web-based Applications & Services
Visualisation de digests d'emails en entreprise
23rd French Speaking Conference on Human-Computer Interaction
Less is more: unparser-completeness of metalanguages for template engines
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Object-relational event middleware for web applications
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
CAiSE'06 Proceedings of the 18th international conference on Advanced Information Systems Engineering
Predicate trees: a tool for descriptive subgraph extraction
Proceedings of the 2nd International Conference on Web Intelligence, Mining and Semantics
Luar: a language for agile development of NCL templates and documents
Proceedings of the 18th Brazilian symposium on Multimedia and the web
Towards solver-independent propagators
CP'12 Proceedings of the 18th international conference on Principles and Practice of Constraint Programming
Declarative specification of template-based textual editors
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
IWAAL'12 Proceedings of the 4th international conference on Ambient Assisted Living and Home Care
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Hi-index | 0.00 |
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.