Upload
choose
View
828
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Jean-Marie Favre's presentation at the Choose Forum 2010, in Bern
Citation preview
Jean-Marie Favre ���Software Language Archeologist
& Software Anthropologist
Principal Scientist at OneTree Technologies 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 OneTree Technologies 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