Domain Specific Language generation based on a XML Schema.
1. Domain Specific Language
generation based on
a XML Schema
13/12/2018
ÁREA DEPARTAMENTAL DE ENGENHARIA DE ELETRÓNICA E TELECOMUNICAÇÕES E DE COMPUTADORES
MESTRADO EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES
1
Autor : Luís Duarte Nº 39378
Orientador: Fernando Miguel Gamboa de Carvalho
2. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 2
• O que são?
• Externas.
• XSD.
Domain Specific Languages
3. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 3
• O que são?
• Externas.
• XSD.
• Expressões regulares.
Domain Specific Languages
4. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 4
• O que são?
• Externas.
• XSD.
• Expressões regulares.
• Internas.
• LINQ.
Domain Specific Languages
5. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 5
Domain Specific Language Externa - HTML
Componente Estática
Componente Dinâmica
6. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 6
Template Engines
Apache Velocity
ASP.NET
Laravel Blade
CodeCharge Studio
ColdFusion
CTPP
Django
FreeMarker
eRuby
Genshi
Go Templates
Haml
Hamlets
Thymeleaf
Smarty
Razor
PHP
Open Power Template
Mustache
Kid
Jinja
JSP
vlibTemplate
WebMarco
Twig
Handlebars
7. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 7
• Segurança.
• Documentos bem formados.
• Validação das regras do HTML.
• Validação de objectos de contexto.
Template Engines - Problemas
8. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 8
• Segurança.
• Documentos bem formados.
• Validação das regras do HTML.
• Validação de objectos de contexto.
• Desempenho.
Template Engines - Problemas
9. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 9
• Segurança.
• Documentos bem formados.
• Validação das regras do HTML.
• Validação de objectos de contexto.
• Desempenho.
• Flexibilidade.
Template Engines - Problemas
If/Else:
For:
10. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 10
• Segurança.
• Documentos bem formados.
• Validação das regras do HTML.
• Validação de objectos de contexto.
• Desempenho.
• Flexibilidade.
• Complexidade.
Template Engines - Problemas
12. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 12
Template Engines – As Inovações – J2Html
Templates em Java.
Documentos bem formados.
Regras de HTML.
Desempenho.
Incompleto.
13. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 13
Template Engines – As Inovações - Rocker
Desempenho.
Valida objectos de contexto.
Completo.
Usa templates textuais.
Documentos bem formados.
Regras de HTML.
14. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 14
Template Engines – As Inovações - KotlinHtml
Segurança.
Garante regras do HTML.
Templates em Kotlin.
Documentos bem formados.
Desempenho.
15. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 15
Template Engines – As Inovações – HtmlFlow1
Tentativa de DSL de HTML.
Garante algumas regras do HTML.
Templates em Java.
Documentos bem formados.
Desempenho.
Garante apenas algumas regras.
Incompleto.
28. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 28
Versatilidade – Expressões Regulares
String toMatch = "regulares";
Desafio: Obter todos os caracteres no intervalo de ‘a’ a ‘d’ ou no intervalo de ‘r’ a ‘z’.
Expressão regular:
[a-d]|[r-z]
Resultados:
r
u
a
r
s
33. 13/12/2018 ADEETC – MEIC - DISSERTAÇÃO 33
Questões
“Template engines are a great way to build dynamic HTML pages,
but are you using the best template engine for your purposes?” - DZone