análise léxica e análise sintática de linguagens ... A Hierarquia de Chomsky
classifica as linguagens de gramáticas de acordo com .... LINGUAGENS
FORMAIS. Teoria Modelagem e Implementação by Marcus Vinícius Ramos, João
J. Neto e.
Uma introdução sobre MDD – Model Driven Design e projeto “Oslo”
Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil 1
twitter.com/wcamb blogs.msdn.com/wcamb
Agenda Modelos e Linguagens Projeto “Oslo” Linguagem “M” Conclusões Recursos
Publicação: Outubro/2009 2
Importância de linguagens e gramáticas Diversas aplicações: análise léxica e análise sintática de linguagens de programação; modelagem de circuitos lógicos ou redes lógicas; modelagem de sistemas biológicos; modelagem de processos de negócio; tratamento/interação com dispositivos diversos, etc. 3
Gramáticas de Chomsky A Hierarquia de Chomsky classifica as linguagens de gramáticas de acordo com sua complexidade e restrição. Chomsky, Noam (1956). Three models for the description of language. IRE Transactions on Information Theory (2): 113124.
4
Aumentando a restrição da linguagem
Gramáticas de Chomsky Gramáticas com Estruturas de Frase Gramáticas Sensíveis ao Contexto Gramáticas Livres de Contexto
Gramáticas Regulares
Ref.: http://pt.wikipedia.org/wiki/Hierarquia_de_Chomsky 5
Enumeráveis Recursivamente ou Tipo 0
Sensíveis ao Contexto ou Tipo 1
Livres de Contexto ou Tipo 2 (autômatos de pilhas) Linguagens Regulares ou Tipo 3
Modelos São representações físicas, matemáticas ou lógicas de sistema de entidades, fenômenos ou processos. Fornecem uma visão abstrata e simplificada de uma realidade mais complexa. Os modelos também empregam regras e restrições em suas abstrações.
6
Exemplo: Metrô
Tão importante quanto a simplificação é sua capacidade de abstração e o que um modelo esconde!!! 7
Exemplo: Processos Call Record
base rate: £/s
call length call
store friend discount rate: £/s
friends calls
- +
-
call length calendar month
store bill
billing period 8
Linguagens de Modelagem Linguagem de Modelagem é toda linguagem artificial que pode ser usada para expressar informações, conhecimento ou sistemas numa estrutura que é definida por um conjunto consistente de regras. As regras são usadas para a interpretação do significado dos componentes na estrutura.
9
Linguagens de Modelagem C(x) h2 2C(x) ih = – t 2m x2 a>b && c==d
jo
biscuits 24
pat cakes
32
Declarativas
green
pink
07713248
Textuais
Employee name address promote
0..*
Job description pay assign
Call Record
class Magnox : NuclearPowerStation { public void dropRods () 10
Pictóricas base rate: £/s
call length call
Procedurais
store
Linguagens de Modelagem Linguagem Específica de Domínio (DSL) é uma linguagem de programação ou de especificação dedicada a um domínio de problemas em particular.
11
Visão Oslo Analista Neg
Arquiteto
Desenv
IT Pro
Ferramentas de Modelagem
Linguagem de Modelagem Repositório de Modelos Servidor de Processos Barramento de Serviços Serviços na Nuvem 12
Oslo
UMA PLATAFORMA PARA MODEL-DRIVEN APPLICATIONS
“M” Linguagem de Modelagem
“Quadrant” Ferramenta de Modelagem
Repositório Armazenamento de Modelos 13
Conceitos chaves
DSLsViISUAIS
DSLsTEXTUAIS
RUNTIMES
MODELOS 14
Arquitetura Oslo Q
“QUADRANT” [Sua DSL Visual
EDITOR FRAMEWORK
[Sua DSL Textual LANGUAGE FRAMEWORK
Composição
MSchema
Viewers Genéricos
MGrammar
Fluxo de Dados
MGraph
RUNTIMES XML, Formatos Customizados , …
[Seu Runtime] “Dublin” ASP.NET WF
ADO .NET
WCF SQL/EDM
REPOSITORY REPOSITORY SQL SERVER REPOSITORY SQL SERVER
OUTRAS FERRAMENTAS (VSTS, EXCEL, …)
15
[YourSQL Models] SERVER [Your Models] Base [Seus Models Modelos] Base Models “M”Modelos Runtime.Net “M” Runtime Repositório de Modelos
Windows Runtimes de 3s SQL, XML, Formatos Customizados, …
Recursos Microsoft "Oslo" - May 2009 CTP http://www.microsoft.com/downloads/details.aspx?FamilyID=82712 2a5-3ca0-4389-a79e-87af37cbf60d&displaylang=en
Sample Model Data for Microsoft code name "Quadrant“ http://download.microsoft.com/download/2/8/9/289A2F7D-CCAC4B0B-BFAD-F1544DE34A44/QuadrantSamples.msi
16
Instalando Samples Quadrant Samples…
Set PATH
Loader MX.EXE
17
Quadrant
18
Domínios alvos
19
Domínios de Desenvolvimento
20
VISUAL DSLs
TEXTUAL DSLs
RUNTIMES
“Quadrant” Web Editor
“MWeb”
ASP.NET
“Quadrant” Service Editor
“MService”
WCF/WF (“Dublin”)
SERVICES
“Quadrant” Entity Editor
“MEntity”
EF
ENTITIES
“Quadrant” Schema Editor
“MSchema”
SQL
WEB
DATABASE
Por que “M”? Criação e interação com modelos de forma simples e natural Ter uma experiência visual de design é importante Ter uma experiência textual complementar é igualmente importante
“M” é a ferramenta para conseguir a experiência textual
21
O que é “M”? “M” é uma linguagem para definir modelos de domínios e linguagens especificas de domínios Define esquemas e pesquisas sobre dados estruturados Valores, Restrições (Constraints) e Visões (Views) Projeção natural para o SQL
Define projeções de texto Unicode para dados estruturados Transformações baseadas em regras
22
Especificação “M” “M” Specification Community Garante um forte suporte da indústria para a “M” Melhora o design da “M” Provê um caminho para a eventual padronização
Inscreva-se através do link: http://msdn.microsoft.com/en-us/oslo/msc.aspx
Open Specification Promise Garante que qualquer um possa implementar “M” LanguageSpecification20090506 - May 2009 CTP.pdf 23
“M” Specification Community
Evolução da especificação da linguagem “M” 24
A Família “M” DSL
Point.m Domain Model
DSLX
GPSLanguage.mg Domain Grammar
"M"
Domain-specific data models
MSchema Domain-specific grammars
MGrammar Abstract data model
MGraph
25
DomainX.m Domain Model
DSLY
DomainX.mg Domain Grammar
DomainY.m Domain Model
DomainY.mg Domain Grammar
type Point { X : Integer where X < 100; Y : Integer?; DistanceFromOrigin() { SQRT(X*X + Y*Y) } } language GPSLanguage { syntax Main = h:Integer ("," v:Integer)? => Point { X { h }, Y { v }}; }
Point { X { 100 }, Y { 200 } }
Conceitos básicos da M Linguagem: coleção de regras para reconhecimento de texto.
Dados: representação textual de um modelo para ser armazenada.
Restrições: regras para as estruturas dos dados.
Transformações: mapeamento entre dados fonte e destino. 26
Ferramentas do SDK hoje c:\Program Files\Microsoft Oslo\1.0\bin
Modelo.m
M.exe Compilador para Domain Model
27
SQL Server
Modelo.mx
MX.exe Domain Model Loader
28
Conclusões Oslo é uma visão de um universo de TI Dirigido a Modelos integrando TI (SOA) e Nuvem (Cloud Computing). Nesta visão, são essenciais as ferramentas de modelagem visuais e textuais assim como seu repositório. “M” é uma linguagem para definir modelos de domínios e DSLs textuais no Oslo. Repositório e “M” são a base para um conjunto de Linguagens, Modelos e Ferramentas visuais destinadas a vários domínios. 29
Recursos Site do Oslo: http://msdn.microsoft.com/en-us/oslo
Oslo Connect site: https://connect.microsoft.com/oslo
Oslo SDK documentation at MSDN Online: http://msdn.microsoft.com/en-us/library/cc709420.aspx
Quadrant: http://msdn.microsoft.com/en-us/library/dd857491(VS.85).aspx
M tools: http://msdn.microsoft.com/en-us/library/dd129517(VS.85).aspx
Oslo Language Specification: http://msdn.microsoft.com/en-us/library/dd285282.aspx 30
Recursos Microsoft "Oslo" - May 2009 CTP http://www.microsoft.com/downloads/details.aspx?FamilyID=827122a53ca0-4389-a79e-87af37cbf60d&displaylang=en
Wcamb’s Blog / Tag [OSLO] http://blogs.msdn.com/wcamb/archive/tags/OSLO/default.aspx
LINGUAGENS FORMAIS Teoria Modelagem e Implementação by Marcus Vinícius Ramos, João J. Neto e Ítalo Santiago Vega Editora BOOKMAN / ISBN 857780453-4 31
Recursos (cont.) ArqBR.Groups http://arqbr.groups.live.com/
ArqCasts no Channel9/Brasil http://channel9.msdn.com/brasil/
ebook Arquitetura de Soluções http://blogs.msdn.com/wcamb/archive/2009/10/01/ebooksobre-arquitetura-de-solu-es.aspx
Centro de Arquitetura MSDN http://msdn.microsoft.com/pt-br/architecture/default.aspx 32
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
33