SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
Jean-Marie Favre 
Software Language Archeologist	

 Software Anthropologist	

Principal Scientist at OneTreeTechnologies	

Assistant Professor at the University of Grenoble
Domain	
  and	
  Techniques	
  
Specific	
  Languages	
  
A	
  Journey	
  through	
  the	
  Ages,	
  	
  
Languages	
  and	
  Technologies	
  
Jean-Marie Favre 
Software Language Archeologist	

 Software Anthropologist	

Principal Scientist at OneTreeTechnologies	

Assistant Professor at the University of Grenoble
Personal	
  Background	
  
So#ware	
  Evolu-on	
  in	
  the	
  Large	
  
Software Archeology	

Study of legacy 
to (re)discover information about software	

Software Anthropology	

Study of existing 
in particular through consciencous participation	

software artefacts	

software ecosystems
One of the largest software companies in Europe	

70	
  000+	
  	
  C++	
  classes	
  
3	
  000+	
  DLLs	
  
8	
  000+	
  components	
  
800+	
  frameworks	
  
xxx	
  soluIons“	
  
…	
  
Dassault	
  Systèmes	
  
Software eco-system	

Software artefacts	

1200+	
  “soOware	
  engineers”	
  
Many	
  fields	
  of	
  experIse	
  
ConsorIums	
  of	
  companies	
  (boeing	
  +…)	
  
Group of model-driven companies	

Large	
  soOware	
  products	
  
TransacIonal	
  systems	
  
Decision	
  making	
  systems	
  
All	
  kind	
  of	
  technologies	
  
OneTree	
  
Software eco-system	

Software artefacts	

From	
  business	
  to	
  IT	
  
Many	
  fields	
  of	
  experIse	
  
IBM	
  partnerships	
  
European	
  insItuIons	
  /	
  Governments	
  /	
  Banking	
  /	
  
Software 	

Software Ecosystems	

Software Languages	

Languages	

Understanding	

Understanding	

Understanding	

Understanding	

⇒	

⇒	

⇒
We	
  are	
  smart	
  
since Stone Age	

when we have problems	

we invent new technologies
First Order Logics	

EMF	

SQL	

TENEO	

Java	

XSD	

DOM	

Antlr	

OWL	

UML	

XMI	

Ecore	

SQL DDL	

XLST	

Saxon	

Hibernate	

Awk	

Json	

Yacc	

JAXP	

Rest	

OWL	

RDF	

ATOM	

SparQL	

XSLT	

DTD	

BNF	

XSD	

OCL	

Prolog	

grep	

MOF	

QVT	

jDOM	

Rose	

Protégé	

XQuery	

ODM	

XMLSpy	

JPA	

JAXB	

JDBC	

ODBC	

MySQL	

ArgoUML	

Jena	

Jena	

Relational Algebra	

TXL	

VLDB	

EMF.gen	

ORACLE	

TCS	

XText	

Teneo	

Jersey	

GWT	

Sesame	

Stratego	

XPATH	

JeanBeans	

UTF8	

ASCII	

RDFa	

RDF(S)	

RDFS	

CFG	

LALR	

ER	

xerces	

xalan	

saxon	

sax	

sed	

XSD	

JMI	

 JMF	

SBVR	

BPEL	

BPMN	

EXPRESS-G	

ER	

InfoSet	

LALR	

Automata	

Petri nets	

Fuzzy Logics	

Relational Calculus	

regexpr	

regexpr	

Automata	

Lambda calculus	

Pi Calculus	

 Set Theory	

Modal logic	

Teneo	

Caml	

CSP	

C++	

We	
  have	
  
a	
  problem	
  
Today	
  
First Order Logics	

EMF	

SQL	

TENEO	

Java	

XSD	

DOM	

Antlr	

OWL	

UML	

XMI	

Ecore	

SQL DDL	

XLST	

Saxon	

Hibernate	

Awk	

Json	

Yacc	

JAXP	

Rest	

OWL	

RDF	

ATOM	

SparQL	

XSLT	

DTD	

BNF	

XSD	

OCL	

Prolog	

grep	

MOF	

OMG	

QVT	

jDOM	

Rose	

Protégé	

XQuery	

ODM	

XMLSpy	

JPA	

JAXB	

JDBC	

ODBC	

ArgoUML	

Description Logic	

Jena	

Jena	

Relational Algebra	

TXL	

VLDB	

EMF.gen	

ORACLE	

TCS	

XText	

Teneo	

Jersey	

GWT	

Sesame	

Stratego	

XPATH	

JeanBeans	

UTF8	

ASCII	

RDFa	

RDF(S)	

RDFS	

CFG	

LALR	

ER	

xerces	

xalan	

saxon	

sax	

sed	

XSD	

JMI	

 JMF	

SBVR	

BPEL	

BPMN	

EXPRESS-G	

ER	

InfoSet	

LALR	

Automata	

Petri nets	

Fuzzy Logics	

Relational Calculus	

regexpr	

regexpr	

Automata	

Lambda calculus	

Pi Calculus	

 Set Theory	

Modal logic	

Teneo	

Caml	

CSP	

C++	

•  Languages	
  Technologies	
  
•  Diversity	
  
•  Complexity	
  
•  Combina-ons	
  
•  Founda-ons	
  
•  Global	
  View	
  
Main	
  Issues	
  
First Order Logics	

EMF	

SQL	

TENEO	

Java	

XSD	

DOM	

Antlr	

OWL	

UML	

XMI	

Ecore	

SQL DDL	

XLST	

Saxon	

Hibernate	

Awk	

Json	

Yacc	

JAXP	

Rest	

OWL	

RDF	

ATOM	

SparQL	

XSLT	

DTD	

BNF	

XSD	

OCL	

Prolog	

grep	

MOF	

OMG	

QVT	

jDOM	

Rose	

Protégé	

XQuery	

ODM	

XMLSpy	

JPA	

JAXB	

JDBC	

ODBC	

ArgoUML	

Description Logic	

Jena	

Jena	

Relational Algebra	

TXL	

VLDB	

EMF.gen	

ORACLE	

TCS	

XText	

Teneo	

Jersey	

GWT	

Sesame	

Stratego	

XPATH	

JeanBeans	

UTF8	

ASCII	

RDFa	

RDF(S)	

RDFS	

CFG	

LALR	

ER	

xerces	

xalan	

saxon	

sax	

sed	

XSD	

JMI	

 JMF	

SBVR	

BPEL	

BPMN	

EXPRESS-G	

ER	

InfoSet	

LALR	

Automata	

Petri nets	

Fuzzy Logics	

Relational Calculus	

regexpr	

regexpr	

Automata	

Lambda calculus	

Pi Calculus	

 Set Theory	

Modal logic	

Teneo	

Caml	

CSP	

C++	

Prolog	

OMG	

QVT	

Ralf	

Teneo	

EXPRESS-G	

	
  	
  	
  	
  Language	
  is	
  the	
  raw	
  material	
  	
  
of	
  so2ware	
  engineering,	
  	
  
rather	
  as	
  water	
  is	
  the	
  raw	
  material	
  
for	
  hydraulic	
  engineering.	
  	
  …	
  
Robin Milner,Turing Award
in Turing, Computing and Communication
First Order Logics	

EMF	

SQL	

TENEO	

Java	

XSD	

DOM	

Antlr	

OWL	

UML	

XMI	

Ecore	

SQL DDL	

XLST	

Saxon	

Hibernate	

Awk	

Json	

Yacc	

JAXP	

Rest	

OWL	

RDF	

ATOM	

SparQL	

XSLT	

DTD	

BNF	

XSD	

OCL	

Prolog	

grep	

MOF	

OMG	

QVT	

jDOM	

Rose	

Protégé	

XQuery	

ODM	

XMLSpy	

JPA	

JAXB	

JDBC	

ODBC	

ArgoUML	

Description Logic	

Jena	

Jena	

Relational Algebra	

TXL	

VLDB	

EMF.gen	

ORACLE	

TCS	

XText	

Teneo	

Jersey	

GWT	

Sesame	

Stratego	

XPATH	

JeanBeans	

UTF8	

ASCII	

RDFa	

RDF(S)	

RDFS	

CFG	

LALR	

ER	

xerces	

xalan	

saxon	

sax	

sed	

XSD	

JMI	

 JMF	

SBVR	

BPEL	

BPMN	

EXPRESS-G	

ER	

InfoSet	

LALR	

Automata	

Petri nets	

Fuzzy Logics	

Relational Calculus	

regexpr	

regexpr	

Automata	

Lambda calculus	

Pi Calculus	

 Set Theory	

Modal logic	

Teneo	

Caml	

CSP	

C++	

TENEO	

Antlr	

SQL DDL	

Prolog	

OMG	

QVT	

ArgoUML	

Ralf	

TCS	

ER	

EXPRESS-G	

ER	

	
  	
  	
  The	
  difference	
  is	
  that	
  water	
  is	
  rather	
  
well	
  understood	
  by	
  physical	
  science;	
  	
  
	
  	
  	
  but	
  so2ware	
  as	
  a	
  raw	
  material	
  –	
  is	
  
s4ll	
  not	
  scien4fically	
  understood.	
  	
  	
  	
  	
  	
  
Robin Milner,Turing Award
in Turing, Computing and Communication
First Order Logics	

EMF	

SQL	

TENEO	

Java	

XSD	

DOM	

Antlr	

OWL	

UML	

XMI	

Ecore	

SQL DDL	

XLST	

Saxon	

Hibernate	

Awk	

Json	

Yacc	

JAXP	

Rest	

OWL	

RDF	

ATOM	

SparQL	

XSLT	

DTD	

BNF	

XSD	

OCL	

Prolog	

grep	

MOF	

OMG	

QVT	

jDOM	

Rose	

Protégé	

XQuery	

ODM	

XMLSpy	

JPA	

JAXB	

JDBC	

ODBC	

ArgoUML	

Description Logic	

Jena	

Jena	

Relational Algebra	

TXL	

VLDB	

EMF.gen	

ORACLE	

TCS	

XText	

Teneo	

Jersey	

GWT	

Sesame	

Stratego	

XPATH	

JeanBeans	

UTF8	

ASCII	

RDFa	

RDF(S)	

RDFS	

CFG	

LALR	

ER	

xerces	

xalan	

saxon	

sax	

sed	

XSD	

JMI	

 JMF	

SBVR	

BPEL	

BPMN	

EXPRESS-G	

ER	

InfoSet	

LALR	

Automata	

Petri nets	

Fuzzy Logics	

Relational Calculus	

regexpr	

regexpr	

Automata	

Lambda calculus	

Pi Calculus	

 Set Theory	

Modal logic	

Teneo	

Caml	

CSP	

C++	

Antlr	

Prolog	

OMG	

QVT	

ArgoUML	

TCS	

ER	

EXPRESS-G	

	
  	
  	
  	
  Language	
  is	
  the	
  raw	
  material	
  of	
  
so2ware	
  engineering.	
  
	
  	
  	
  So2ware	
  as	
  a	
  raw	
  material	
  –	
  is	
  s4ll	
  
not	
  scien4fically	
  understood.	
  	
  	
  	
  	
  	
  
Robin Milner,Turing Award
in Turing, Computing and Communication
First Order Logics	

EMF	

SQL	

TENEO	

Java	

XSD	

DOM	

Antlr	

OWL	

UML	

XMI	

Ecore	

SQL DDL	

XLST	

Saxon	

Hibernate	

Awk	

Json	

Yacc	

JAXP	

Rest	

OWL	

RDF	

ATOM	

SparQL	

XSLT	

DTD	

BNF	

XSD	

OCL	

Prolog	

grep	

MOF	

OMG	

QVT	

jDOM	

Rose	

Protégé	

XQuery	

ODM	

XMLSpy	

JPA	

JAXB	

JDBC	

ODBC	

ArgoUML	

Description Logic	

Jena	

Jena	

Relational Algebra	

TXL	

VLDB	

EMF.gen	

ORACLE	

TCS	

XText	

Teneo	

Jersey	

GWT	

Sesame	

Stratego	

XPATH	

JeanBeans	

UTF8	

ASCII	

RDFa	

RDF(S)	

RDFS	

CFG	

LALR	

ER	

xerces	

xalan	

saxon	

sax	

sed	

XSD	

JMI	

 JMF	

SBVR	

BPEL	

BPMN	

EXPRESS-G	

ER	

InfoSet	

LALR	

Automata	

Petri nets	

Fuzzy Logics	

Relational Calculus	

regexpr	

regexpr	

Automata	

Lambda calculus	

Pi Calculus	

 Set Theory	

Modal logic	

Teneo	

Caml	

CSP	

C++	

XSLT	

OCL	

MySQL	

Stratego	

CFG	

xalan	

EXPRESS-G	

Emerging	
  Topics	
  
• So#ware	
  Languages	
  
• So#ware	
  Linguis-cs	
  
• So#ware	
  Language	
  Engineering	
  
OUT
LINE
Part I	
  	
  	
  	
   The	
  SoOware	
  Language	
  Jungle	
  
Part II	
   History	
  of	
  Language	
  Technologies	
  
Part III 	
   3-­‐steps	
  Towards	
  Civilized	
  InformaIcs	
  
Part IV 	
   On	
  the	
  Need	
  of	
  Domain	
  Specific	
  Languages	
  
Part
I
Software
Languages
The	
  SoOware	
  Language	
  Jungle	
  
•  Programming	
  Languages	
  (e.g.	
  Java)	
  
•  SpecificaIon	
  Languages	
  (Z)	
  
•  Requirement	
  Languages	
  (SBVR)	
  
•  Modeling	
  Languages	
  (UML)	
  
•  Architecture	
  DescripIon	
  Languages	
  (Wright)	
  
•  FormaIng	
  Languages	
  (LaTeX)	
  	
  
•  ScripIng	
  Languages	
  (ksh)	
  	
  
•  Business	
  Process	
  Languages	
  (BPEL)	
  
•  Visual	
  Languages	
  (Gang)	
  
•  Domain	
  Specific	
  Languages	
  (Excel	
  )	
  
•  Model	
  TransformaIon	
  Languages	
  (ATL)	
  
•  Program	
  TransformaIon	
  Languages	
  (Stratego)	
  
•  Document	
  TransformaIon	
  Languages	
  (XSLT)	
  
•  MathemaIcal	
  Languages	
  (MathemaIca)	
  
•  Chemistry	
  Languages	
  (Smiley)	
  
•  Feature	
  Languages	
  (FODA)	
  
•  Meta-­‐language	
  (BNF)	
  
•  Web	
  Service	
  Languages	
  (WSDL)	
  	
  
•  Deployment	
  Languages	
  (Nix)	
  	
  
•  RewriIng	
  languages	
  (Tom)	
  
•  Build	
  Languages	
  (Make)	
  	
  
•  Pagern	
  Languages	
  	
  
•  EducaIon	
  Modeling	
  Languages	
  	
  
•  Rule	
  Languages	
  
•  ConfiguraIon	
  languages	
  
•  Markup	
  Languages	
  (HTML)	
  
•  Media	
  Languages	
  (Flash)	
  
•  Query	
  Languages	
  (SQL)	
  	
  
•  ….	
  
SoOware	
  Language	
  IncarnaIons	
  
•  Grammars	

•  Metamodels 	

•  Ontologies	

•  Schemas	

•  Logics	

•  Formalisms	

•  Protocols	

•  Calculus	

•  Models	

•  …
Implicit/Proto	
  SoOware	
  Languages	
  
Formal 
+ Informal	

Executable
+ non executable	

Multimodal	

Textual 	

+Visual 
+Vocal 	

+ Gestual	

•  Code patterns  Idioms	

•  Frameworks	

•  Wizards	

•  Data Structures	

•  APIs	

•  Tools	

•  Box and arrows drawings	

•  White board discussion	

•  Bug reports, Forums, ...	

•  User manuals, tutorials, ...	

•  …
Part
II
History of
Language
Technologies
E.F.K. Koerner
History	
  of	
  Language	
  Technologies	
  	
  
Pre-­‐History	
  
History	
  
Neo-­‐History	
  
Complexity Gap	

Complexity Gap	

Written 	

Languages	

Software	

Languages
From	
  Stone	
  Age	
  to	
  InformaIon	
  Age	
  
Pre-­‐history	
  
Pre-­‐History	
  
History	
  
Neo-­‐History	
  
Pre-­‐History	
  –	
  Artefacts	
  	
  Models	
  
Neolithics	
  –	
  Protolanguage	
  
StructuraIon	
  and	
  AbstracIon	
  
Pre-­‐History	
  
History	
  
Neo-­‐History	
  
From	
  Stone	
  Age	
  to	
  InformaIon	
  Age	
  
History	
  
CivilizaIons	
  	
  WriIng	
  
Wrigen	
  Language	
  
Concrete	
  Syntaxes	
  	
  Technical	
  Spaces	
  
Pre-­‐History	
  
History	
  
Neo-­‐History	
  
From	
  Stone	
  Age	
  to	
  InformaIon	
  Age	
  
Phase	
  3:	
  Neo-­‐history	
  
SoOware	
  Languages	
  Ubiquity	
  
SoOware	
  vs.	
  WriIng	
  
SoOware	
  Models	
  
Pervasive	
  SoOware	
  Languages	
  
The	
  Language	
  ConInum	
  
The	
  Language	
  ConInum	
  
Written 	

Languages	

Software	

Languages
The	
  Eco-­‐System	
  ConInum	
  
Part
III
3-Steps towards
Civilized
Informatics
Progressive	
  transiIons	
  
3-­‐step	
  transiIons	
  
(1) Paleolitics	

(2) Neolithics	

(3) Civilisation	

(1) Paleo-informatics	

(2) Neo-informatics	

(3) Civilized informatics
DOMESTICATION OF ENVIRONMENT	

People	

Nature	

« Invisible computer »	

Invisible nature	

(1) Paleolitics	

 (3) Civilisation	

(1) Paleo-informatics	

 (2) Neo-informatics	

 (3) Civilized informatics	

People	

Computers	

(2) Neolithics
(1) Paleolitics	

 (2) Neolithics	

 (3) Civilisation	

(1) Paleo-informatics	

 (2) Neo-informatics	

 (3) Civilized informatics	

Ancient World	

Social Structures	

5-10	

10-100	

1000-100000	

People	

Caves	

 Settlements	

 Villages	

 Cities	

 Kingdoms	

 Empires	

Hunters 	

Software World	

Social Structures	

1-5	

10-100	

1000-10000???	

Programmers	

People	

In-house
development	

Early software
contractors	

Software
companies	

Software
ecosystems	

Software
parterships	

Teachers	

Lawyers	

Soldiers	

…	

Cattlemen	

 Farmers	

 Bakers	

Metalworkers	

Carpenters	

…	

…	

Designers	

 Testers	

 Architects	

 Analysts	

…	

…	

Domain 
experts	

 Standardiz.
bodies	

Language
Engineers	

…	

Separa-ons	
  
of	
  ac-vi-es	
  
Structura-on	
  
of	
  ac-vi-es	
  
Inven-on	
  of	
  	
  
the	
  wheel	
  
Inven-on	
  of	
  	
  
internet	
  
WriJen	
  
Languages	
  
So#ware	
  
Languages	
  
Part
IV
On the Need of 
Domain 	

Specific
Languages
Complexity	
  vs.	
  CogniIve	
  EvoluIon	
  
Human Brain Power	

Society Complexity	

Artificial Brain Power
The	
  Tree	
  of	
  Knowledge	
  
Domains of Knowledge
The	
  Network	
  of	
  Knowledge	
  
Domains of Knowledge
Coping	
  with	
  Knowledge	
  AccumulaIon	
  
(1) Brain
Specialization	

(2) Language
Specialization	

2y	
  =	
  ax+c	
  
«By	
  relieving	
  the	
  brain	
  of	
  all	
  unnecessary	
  work,	
  	
  
a	
  good	
  nota4on	
  sets	
  it	
  free	
  to	
  concentrate	
  	
  
on	
  more	
  advanced	
  problems,	
  and	
  in	
  effect	
  	
  
increases	
  	
  the	
  mental	
  power	
  of	
  the	
  race	
  »	
  
Whitehead,	
  A.N.	
  An	
  IntroducCon	
  to	
  MathemaCcs,	
  1911	
  
Rethorical	
  MathemaIcs	
  
«By	
  relieving	
  the	
  brain	
  of	
  all	
  unnecessary	
  work,	
  	
  
a	
  good	
  nota4on	
  sets	
  it	
  free	
  to	
  concentrate	
  	
  
on	
  more	
  advanced	
  problems,	
  and	
  in	
  effect	
  	
  
increases	
  	
  the	
  mental	
  power	
  of	
  the	
  race	
  »	
  
Whitehead,	
  A.N.	
  An	
  IntroducCon	
  to	
  MathemaCcs,	
  1911	
  
Sciences	
  ⇒	
  Languages	
  	
  
(1) Brain
Specialization	

(2) Language
Specialization	

2y	
  =	
  ax+c	
  
«By	
   we	
   cannot	
   improve	
   the	
   language	
   of	
   any	
  
science	
   without,	
   at	
   the	
   same	
   4me,	
   improving	
  
the	
  science	
  itself;	
  neither	
  can	
  we,	
  on	
  the	
  other	
  
hand,	
  improve	
  a	
  science,	
  without	
  improving	
  the	
  
language	
  or	
  nomenclature	
  which	
  belongs	
  to	
  it	
  	
  »	
  
Antoine	
  Lavoisier,	
  1787	
  
Domain	
  Specific	
  Languages	
  
Domain	
  Specific	
  Editors	
  
Sharing	
  Knowledge	
  
	
  ⇒	
  Sharing	
  Languages	
  
DSL1	
  
SoOware	
  Languages	
  
should	
  be	
  described	
  by	
  
metamodels	
  	
  
MM1	
  
Network	
  of	
  Knowledge	
  
	
  ⇒	
  Network	
  of	
  Languages	
  
MM1	
  
MM2	
  
Combined	
  Languages	
  
Network	
  of	
  Knowledge	
  
	
  ⇒	
  Network	
  of	
  Languages	
  
DSL1	
  
DSL2	
  
Technical	
  Domains	
  
MOF	

 XSD	

 RDFS	

 SQL.DDL	

 EBNF	

OCL	

XPath	

QVT	

XQuery	

 SPARQL	

 SQL	

Protégé	

Topbeard	

XMLSpy	

VS-XML	

ArgoUML
Rose	

MySQL
Oracle	

XSLT	

 TXL	

ASF	

MetaEnv.	

XML	

VLDB	

MoDELS	

ECMDA	

ICSW	

ESWC	

VLDB	

SIGMOD	

CC	

POPL	

Meta
language	

Navigation	

Query	

Transfo.	

Toolkit	

Conferences	

Modelware	

 XMLware	

 Ontoware	

 Dataware	

 Grammarware
XMI	

modelware	

XMLware	

javaware	

JDBC	

Dataware	

JDOM	

Ontware	

Jena	

Hibernate	

EMF.gen	

JMI	

Teneo	

Sesame	

JAXB	

JPA	

Bridges	
  between	
  Technical	
  Domains	
  
CONCL
USION
I make no apology 	

for talking so much
about language.	

Robin Milner, concluding Turing, Computing and Communication
The	
  Cast	
  of	
  SoOware	
  Scribes	
  	
  
Wrong	
  approach!	
  
Summary	
  
JOIN
US!
SLE 2011

Weitere ähnliche Inhalte

Ähnlich wie Choose'10: Jean-Marie Favre - Domain and Technique Specific Languages – A Journey through the Ages, Languages and Technologies

Deep Dive into Apache MXNet on AWS
Deep Dive into Apache MXNet on AWSDeep Dive into Apache MXNet on AWS
Deep Dive into Apache MXNet on AWSKristana Kane
 
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICANATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICANIKHIL NAWATHE
 
Jabber 101
Jabber 101Jabber 101
Jabber 101stpeter
 
Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfakAsfak Mahamud
 
Oscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleOscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleMartin Odersky
 
Text Mining Infrastructure in R
Text Mining Infrastructure in RText Mining Infrastructure in R
Text Mining Infrastructure in RAshraf Uddin
 
Linux and Open Source in Math, Science and Engineering
Linux and Open Source in Math, Science and EngineeringLinux and Open Source in Math, Science and Engineering
Linux and Open Source in Math, Science and EngineeringPDE1D
 
Tensorflow IoT - 1 Wk coding challenge
Tensorflow IoT - 1 Wk coding challengeTensorflow IoT - 1 Wk coding challenge
Tensorflow IoT - 1 Wk coding challengegeetachauhan
 
Managing large datasets in R – ff examples and concepts
Managing large datasets in R – ff examples and conceptsManaging large datasets in R – ff examples and concepts
Managing large datasets in R – ff examples and conceptsAjay Ohri
 
YAPC::EU::2009 - How Opera Software uses Perl
YAPC::EU::2009 - How Opera Software uses PerlYAPC::EU::2009 - How Opera Software uses Perl
YAPC::EU::2009 - How Opera Software uses PerlCosimo Streppone
 
Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)
Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)
Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)Numenta
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningOswald Campesato
 
Deep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGLDeep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGLOswald Campesato
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningOswald Campesato
 
Tensorflow for IoT
Tensorflow for IoTTensorflow for IoT
Tensorflow for IoTgeetachauhan
 
WRENCH: Workflow Management System Simulation Workbench
WRENCH: Workflow Management System Simulation WorkbenchWRENCH: Workflow Management System Simulation Workbench
WRENCH: Workflow Management System Simulation WorkbenchRafael Ferreira da Silva
 
Lambdas myths-and-mistakes
Lambdas myths-and-mistakesLambdas myths-and-mistakes
Lambdas myths-and-mistakesRichardWarburton
 

Ähnlich wie Choose'10: Jean-Marie Favre - Domain and Technique Specific Languages – A Journey through the Ages, Languages and Technologies (20)

Deep Dive into Apache MXNet on AWS
Deep Dive into Apache MXNet on AWSDeep Dive into Apache MXNet on AWS
Deep Dive into Apache MXNet on AWS
 
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICANATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
NATURAL OBJECT ORIENTED PROGRAMMING USING ELICA
 
Jabber 101
Jabber 101Jabber 101
Jabber 101
 
Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfak
 
Oscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleOscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simple
 
Text Mining Infrastructure in R
Text Mining Infrastructure in RText Mining Infrastructure in R
Text Mining Infrastructure in R
 
Linux and Open Source in Math, Science and Engineering
Linux and Open Source in Math, Science and EngineeringLinux and Open Source in Math, Science and Engineering
Linux and Open Source in Math, Science and Engineering
 
Angular and Deep Learning
Angular and Deep LearningAngular and Deep Learning
Angular and Deep Learning
 
Tensorflow IoT - 1 Wk coding challenge
Tensorflow IoT - 1 Wk coding challengeTensorflow IoT - 1 Wk coding challenge
Tensorflow IoT - 1 Wk coding challenge
 
Managing large datasets in R – ff examples and concepts
Managing large datasets in R – ff examples and conceptsManaging large datasets in R – ff examples and concepts
Managing large datasets in R – ff examples and concepts
 
YAPC::EU::2009 - How Opera Software uses Perl
YAPC::EU::2009 - How Opera Software uses PerlYAPC::EU::2009 - How Opera Software uses Perl
YAPC::EU::2009 - How Opera Software uses Perl
 
Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)
Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)
Brains, Data, and Machine Intelligence (2014 04 14 London Meetup)
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
Deep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGLDeep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGL
 
Smalltalk and Business
Smalltalk and BusinessSmalltalk and Business
Smalltalk and Business
 
Machine Learning in Action
Machine Learning in ActionMachine Learning in Action
Machine Learning in Action
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
Tensorflow for IoT
Tensorflow for IoTTensorflow for IoT
Tensorflow for IoT
 
WRENCH: Workflow Management System Simulation Workbench
WRENCH: Workflow Management System Simulation WorkbenchWRENCH: Workflow Management System Simulation Workbench
WRENCH: Workflow Management System Simulation Workbench
 
Lambdas myths-and-mistakes
Lambdas myths-and-mistakesLambdas myths-and-mistakes
Lambdas myths-and-mistakes
 

Mehr von CHOOSE

Dissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
Dissecting State-of-the-Art Android Malware Using Static and Dynamic AnalysisDissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
Dissecting State-of-the-Art Android Malware Using Static and Dynamic AnalysisCHOOSE
 
Continuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based SystemsContinuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based SystemsCHOOSE
 
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?CHOOSE
 
Practical Models in Practice
Practical Models in PracticePractical Models in Practice
Practical Models in PracticeCHOOSE
 
Services and Models in a Large IT System
Services and Models in a Large IT SystemServices and Models in a Large IT System
Services and Models in a Large IT SystemCHOOSE
 
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...CHOOSE
 
Choose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
Choose'10: Stephane Ducasse - Powerful DSL engineering in SmalltalkChoose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
Choose'10: Stephane Ducasse - Powerful DSL engineering in SmalltalkCHOOSE
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesCHOOSE
 
Ralph Jocham The Risks Of Scrum Handout
Ralph Jocham The Risks Of Scrum HandoutRalph Jocham The Risks Of Scrum Handout
Ralph Jocham The Risks Of Scrum HandoutCHOOSE
 
Ralph Jocham The Risks Of Scrum
Ralph Jocham The Risks Of ScrumRalph Jocham The Risks Of Scrum
Ralph Jocham The Risks Of ScrumCHOOSE
 
Denker - Pharo: Present and Future - 2009-07-14
Denker - Pharo: Present and Future - 2009-07-14Denker - Pharo: Present and Future - 2009-07-14
Denker - Pharo: Present and Future - 2009-07-14CHOOSE
 
Hausi Müller - Towards Self-Adaptive Software-Intensive Systems
Hausi Müller - Towards Self-Adaptive Software-Intensive SystemsHausi Müller - Towards Self-Adaptive Software-Intensive Systems
Hausi Müller - Towards Self-Adaptive Software-Intensive SystemsCHOOSE
 
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05CHOOSE
 
2008 02 01 Zeller
2008 02 01 Zeller2008 02 01 Zeller
2008 02 01 ZellerCHOOSE
 

Mehr von CHOOSE (14)

Dissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
Dissecting State-of-the-Art Android Malware Using Static and Dynamic AnalysisDissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
Dissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
 
Continuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based SystemsContinuous Architecting of Stream-Based Systems
Continuous Architecting of Stream-Based Systems
 
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
 
Practical Models in Practice
Practical Models in PracticePractical Models in Practice
Practical Models in Practice
 
Services and Models in a Large IT System
Services and Models in a Large IT SystemServices and Models in a Large IT System
Services and Models in a Large IT System
 
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
 
Choose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
Choose'10: Stephane Ducasse - Powerful DSL engineering in SmalltalkChoose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
Choose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
Ralph Jocham The Risks Of Scrum Handout
Ralph Jocham The Risks Of Scrum HandoutRalph Jocham The Risks Of Scrum Handout
Ralph Jocham The Risks Of Scrum Handout
 
Ralph Jocham The Risks Of Scrum
Ralph Jocham The Risks Of ScrumRalph Jocham The Risks Of Scrum
Ralph Jocham The Risks Of Scrum
 
Denker - Pharo: Present and Future - 2009-07-14
Denker - Pharo: Present and Future - 2009-07-14Denker - Pharo: Present and Future - 2009-07-14
Denker - Pharo: Present and Future - 2009-07-14
 
Hausi Müller - Towards Self-Adaptive Software-Intensive Systems
Hausi Müller - Towards Self-Adaptive Software-Intensive SystemsHausi Müller - Towards Self-Adaptive Software-Intensive Systems
Hausi Müller - Towards Self-Adaptive Software-Intensive Systems
 
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
Ralf Laemmel - Not quite a sales pitch for C# 3.0 and .NET's LINQ - 2008-03-05
 
2008 02 01 Zeller
2008 02 01 Zeller2008 02 01 Zeller
2008 02 01 Zeller
 

Kürzlich hochgeladen

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Kürzlich hochgeladen (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Choose'10: Jean-Marie Favre - Domain and Technique Specific Languages – A Journey through the Ages, Languages and Technologies

  • 1. Jean-Marie Favre Software Language Archeologist Software Anthropologist Principal Scientist at OneTreeTechnologies Assistant Professor at the University of Grenoble
  • 2. Domain  and  Techniques   Specific  Languages   A  Journey  through  the  Ages,     Languages  and  Technologies   Jean-Marie Favre Software Language Archeologist Software Anthropologist Principal Scientist at OneTreeTechnologies Assistant Professor at the University of Grenoble
  • 3. Personal  Background   So#ware  Evolu-on  in  the  Large   Software Archeology Study of legacy to (re)discover information about software Software Anthropology Study of existing in particular through consciencous participation software artefacts software ecosystems
  • 4. One of the largest software companies in Europe 70  000+    C++  classes   3  000+  DLLs   8  000+  components   800+  frameworks   xxx  soluIons“   …   Dassault  Systèmes   Software eco-system Software artefacts 1200+  “soOware  engineers”   Many  fields  of  experIse   ConsorIums  of  companies  (boeing  +…)  
  • 5. Group of model-driven companies Large  soOware  products   TransacIonal  systems   Decision  making  systems   All  kind  of  technologies   OneTree   Software eco-system Software artefacts From  business  to  IT   Many  fields  of  experIse   IBM  partnerships   European  insItuIons  /  Governments  /  Banking  /  
  • 6. Software Software Ecosystems Software Languages Languages Understanding Understanding Understanding Understanding ⇒ ⇒ ⇒
  • 7. We  are  smart   since Stone Age when we have problems we invent new technologies
  • 8. First Order Logics EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF QVT jDOM Rose Protégé XQuery ODM XMLSpy JPA JAXB JDBC ODBC MySQL ArgoUML Jena Jena Relational Algebra TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER xerces xalan saxon sax sed XSD JMI JMF SBVR BPEL BPMN EXPRESS-G ER InfoSet LALR Automata Petri nets Fuzzy Logics Relational Calculus regexpr regexpr Automata Lambda calculus Pi Calculus Set Theory Modal logic Teneo Caml CSP C++ We  have   a  problem   Today  
  • 9. First Order Logics EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF OMG QVT jDOM Rose Protégé XQuery ODM XMLSpy JPA JAXB JDBC ODBC ArgoUML Description Logic Jena Jena Relational Algebra TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER xerces xalan saxon sax sed XSD JMI JMF SBVR BPEL BPMN EXPRESS-G ER InfoSet LALR Automata Petri nets Fuzzy Logics Relational Calculus regexpr regexpr Automata Lambda calculus Pi Calculus Set Theory Modal logic Teneo Caml CSP C++ •  Languages  Technologies   •  Diversity   •  Complexity   •  Combina-ons   •  Founda-ons   •  Global  View   Main  Issues  
  • 10. First Order Logics EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF OMG QVT jDOM Rose Protégé XQuery ODM XMLSpy JPA JAXB JDBC ODBC ArgoUML Description Logic Jena Jena Relational Algebra TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER xerces xalan saxon sax sed XSD JMI JMF SBVR BPEL BPMN EXPRESS-G ER InfoSet LALR Automata Petri nets Fuzzy Logics Relational Calculus regexpr regexpr Automata Lambda calculus Pi Calculus Set Theory Modal logic Teneo Caml CSP C++ Prolog OMG QVT Ralf Teneo EXPRESS-G        Language  is  the  raw  material     of  so2ware  engineering,     rather  as  water  is  the  raw  material   for  hydraulic  engineering.    …   Robin Milner,Turing Award in Turing, Computing and Communication
  • 11. First Order Logics EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF OMG QVT jDOM Rose Protégé XQuery ODM XMLSpy JPA JAXB JDBC ODBC ArgoUML Description Logic Jena Jena Relational Algebra TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER xerces xalan saxon sax sed XSD JMI JMF SBVR BPEL BPMN EXPRESS-G ER InfoSet LALR Automata Petri nets Fuzzy Logics Relational Calculus regexpr regexpr Automata Lambda calculus Pi Calculus Set Theory Modal logic Teneo Caml CSP C++ TENEO Antlr SQL DDL Prolog OMG QVT ArgoUML Ralf TCS ER EXPRESS-G ER      The  difference  is  that  water  is  rather   well  understood  by  physical  science;          but  so2ware  as  a  raw  material  –  is   s4ll  not  scien4fically  understood.             Robin Milner,Turing Award in Turing, Computing and Communication
  • 12. First Order Logics EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF OMG QVT jDOM Rose Protégé XQuery ODM XMLSpy JPA JAXB JDBC ODBC ArgoUML Description Logic Jena Jena Relational Algebra TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER xerces xalan saxon sax sed XSD JMI JMF SBVR BPEL BPMN EXPRESS-G ER InfoSet LALR Automata Petri nets Fuzzy Logics Relational Calculus regexpr regexpr Automata Lambda calculus Pi Calculus Set Theory Modal logic Teneo Caml CSP C++ Antlr Prolog OMG QVT ArgoUML TCS ER EXPRESS-G        Language  is  the  raw  material  of   so2ware  engineering.        So2ware  as  a  raw  material  –  is  s4ll   not  scien4fically  understood.             Robin Milner,Turing Award in Turing, Computing and Communication
  • 13. First Order Logics EMF SQL TENEO Java XSD DOM Antlr OWL UML XMI Ecore SQL DDL XLST Saxon Hibernate Awk Json Yacc JAXP Rest OWL RDF ATOM SparQL XSLT DTD BNF XSD OCL Prolog grep MOF OMG QVT jDOM Rose Protégé XQuery ODM XMLSpy JPA JAXB JDBC ODBC ArgoUML Description Logic Jena Jena Relational Algebra TXL VLDB EMF.gen ORACLE TCS XText Teneo Jersey GWT Sesame Stratego XPATH JeanBeans UTF8 ASCII RDFa RDF(S) RDFS CFG LALR ER xerces xalan saxon sax sed XSD JMI JMF SBVR BPEL BPMN EXPRESS-G ER InfoSet LALR Automata Petri nets Fuzzy Logics Relational Calculus regexpr regexpr Automata Lambda calculus Pi Calculus Set Theory Modal logic Teneo Caml CSP C++ XSLT OCL MySQL Stratego CFG xalan EXPRESS-G Emerging  Topics   • So#ware  Languages   • So#ware  Linguis-cs   • So#ware  Language  Engineering  
  • 14. OUT LINE Part I         The  SoOware  Language  Jungle   Part II   History  of  Language  Technologies   Part III   3-­‐steps  Towards  Civilized  InformaIcs   Part IV   On  the  Need  of  Domain  Specific  Languages  
  • 16. The  SoOware  Language  Jungle   •  Programming  Languages  (e.g.  Java)   •  SpecificaIon  Languages  (Z)   •  Requirement  Languages  (SBVR)   •  Modeling  Languages  (UML)   •  Architecture  DescripIon  Languages  (Wright)   •  FormaIng  Languages  (LaTeX)     •  ScripIng  Languages  (ksh)     •  Business  Process  Languages  (BPEL)   •  Visual  Languages  (Gang)   •  Domain  Specific  Languages  (Excel  )   •  Model  TransformaIon  Languages  (ATL)   •  Program  TransformaIon  Languages  (Stratego)   •  Document  TransformaIon  Languages  (XSLT)   •  MathemaIcal  Languages  (MathemaIca)   •  Chemistry  Languages  (Smiley)   •  Feature  Languages  (FODA)   •  Meta-­‐language  (BNF)   •  Web  Service  Languages  (WSDL)     •  Deployment  Languages  (Nix)     •  RewriIng  languages  (Tom)   •  Build  Languages  (Make)     •  Pagern  Languages     •  EducaIon  Modeling  Languages     •  Rule  Languages   •  ConfiguraIon  languages   •  Markup  Languages  (HTML)   •  Media  Languages  (Flash)   •  Query  Languages  (SQL)     •  ….  
  • 17. SoOware  Language  IncarnaIons   •  Grammars •  Metamodels •  Ontologies •  Schemas •  Logics •  Formalisms •  Protocols •  Calculus •  Models •  …
  • 18. Implicit/Proto  SoOware  Languages   Formal + Informal Executable + non executable Multimodal Textual +Visual +Vocal + Gestual •  Code patterns Idioms •  Frameworks •  Wizards •  Data Structures •  APIs •  Tools •  Box and arrows drawings •  White board discussion •  Bug reports, Forums, ... •  User manuals, tutorials, ... •  …
  • 21. History  of  Language  Technologies     Pre-­‐History   History   Neo-­‐History   Complexity Gap Complexity Gap Written Languages Software Languages
  • 22. From  Stone  Age  to  InformaIon  Age   Pre-­‐history   Pre-­‐History   History   Neo-­‐History  
  • 26. Pre-­‐History   History   Neo-­‐History   From  Stone  Age  to  InformaIon  Age   History  
  • 29. Concrete  Syntaxes    Technical  Spaces  
  • 30. Pre-­‐History   History   Neo-­‐History   From  Stone  Age  to  InformaIon  Age   Phase  3:  Neo-­‐history  
  • 36. The  Language  ConInum   Written Languages Software Languages
  • 40. 3-­‐step  transiIons   (1) Paleolitics (2) Neolithics (3) Civilisation (1) Paleo-informatics (2) Neo-informatics (3) Civilized informatics
  • 41. DOMESTICATION OF ENVIRONMENT People Nature « Invisible computer » Invisible nature (1) Paleolitics (3) Civilisation (1) Paleo-informatics (2) Neo-informatics (3) Civilized informatics People Computers (2) Neolithics
  • 42. (1) Paleolitics (2) Neolithics (3) Civilisation (1) Paleo-informatics (2) Neo-informatics (3) Civilized informatics Ancient World Social Structures 5-10 10-100 1000-100000 People Caves Settlements Villages Cities Kingdoms Empires Hunters Software World Social Structures 1-5 10-100 1000-10000??? Programmers People In-house development Early software contractors Software companies Software ecosystems Software parterships Teachers Lawyers Soldiers … Cattlemen Farmers Bakers Metalworkers Carpenters … … Designers Testers Architects Analysts … … Domain experts Standardiz. bodies Language Engineers … Separa-ons   of  ac-vi-es   Structura-on   of  ac-vi-es   Inven-on  of     the  wheel   Inven-on  of     internet   WriJen   Languages   So#ware   Languages  
  • 43. Part IV On the Need of Domain Specific Languages
  • 44. Complexity  vs.  CogniIve  EvoluIon   Human Brain Power Society Complexity Artificial Brain Power
  • 45. The  Tree  of  Knowledge   Domains of Knowledge
  • 46. The  Network  of  Knowledge   Domains of Knowledge
  • 47. Coping  with  Knowledge  AccumulaIon   (1) Brain Specialization (2) Language Specialization 2y  =  ax+c   «By  relieving  the  brain  of  all  unnecessary  work,     a  good  nota4on  sets  it  free  to  concentrate     on  more  advanced  problems,  and  in  effect     increases    the  mental  power  of  the  race  »   Whitehead,  A.N.  An  IntroducCon  to  MathemaCcs,  1911  
  • 48. Rethorical  MathemaIcs   «By  relieving  the  brain  of  all  unnecessary  work,     a  good  nota4on  sets  it  free  to  concentrate     on  more  advanced  problems,  and  in  effect     increases    the  mental  power  of  the  race  »   Whitehead,  A.N.  An  IntroducCon  to  MathemaCcs,  1911  
  • 49. Sciences  ⇒  Languages     (1) Brain Specialization (2) Language Specialization 2y  =  ax+c   «By   we   cannot   improve   the   language   of   any   science   without,   at   the   same   4me,   improving   the  science  itself;  neither  can  we,  on  the  other   hand,  improve  a  science,  without  improving  the   language  or  nomenclature  which  belongs  to  it    »   Antoine  Lavoisier,  1787  
  • 52. Sharing  Knowledge    ⇒  Sharing  Languages   DSL1   SoOware  Languages   should  be  described  by   metamodels     MM1  
  • 53. Network  of  Knowledge    ⇒  Network  of  Languages   MM1   MM2  
  • 55. Network  of  Knowledge    ⇒  Network  of  Languages   DSL1   DSL2  
  • 56. Technical  Domains   MOF XSD RDFS SQL.DDL EBNF OCL XPath QVT XQuery SPARQL SQL Protégé Topbeard XMLSpy VS-XML ArgoUML Rose MySQL Oracle XSLT TXL ASF MetaEnv. XML VLDB MoDELS ECMDA ICSW ESWC VLDB SIGMOD CC POPL Meta language Navigation Query Transfo. Toolkit Conferences Modelware XMLware Ontoware Dataware Grammarware
  • 58. CONCL USION I make no apology for talking so much about language. Robin Milner, concluding Turing, Computing and Communication
  • 59. The  Cast  of  SoOware  Scribes     Wrong  approach!