Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Microsoft Academic Program Domain Specific Languages Ralf Westphal Student Technology Conference 2005.

Ähnliche Präsentationen


Präsentation zum Thema: "Microsoft Academic Program Domain Specific Languages Ralf Westphal Student Technology Conference 2005."—  Präsentation transkript:

1 Microsoft Academic Program Domain Specific Languages Ralf Westphal Student Technology Conference 2005

2 Microsoft Academic Program Student Technology Conference 2005 Domain Specific Languages Ralf Westphal Freier Autor, Berater, Trainer, Entwickler und Associate of thinktecture Microsoft Regional Director & MVP

3 Microsoft Academic Program Student Technology Conference 2005 Allgemeine Programmierung General Purpose Languages (GPL) Generic Languages C#, VB.NET, C, C++, Java, Modula-2, Ada usw. –Meist imperative Programmierung –Turing Complete Fallunterscheidungen Schleifen/Sprünge IO Datentypen/Speicherzugriff –Keiner Problemdomäne (z.B. Finanzwesen, Betriebssysteme, UI) zugeordnet Lösungen für alle möglichen Probleme lassen sich irgendwie formulieren

4 Microsoft Academic Program Student Technology Conference 2005 Beispiel Suchen: GPL VB.NET Code –Suche ab oder ac in einem String. Private Function Match(ByVal input As String) As Boolean Dim iA As Integer = -1 Do iA = input.IndexOf("a", iA + 1) If iA < 0 Then Return False If iA < input.Length - 1 Then Dim nextChar As Char nextChar = input.Chars(iA + 1) If nextChar = "b" Or nextChar = "c" Then Return True End If Loop End Function Nutzung If Match(t) Then...

5 Microsoft Academic Program Student Technology Conference 2005 What is a Domain? Implementation Specification Requirements Deployment Business Systems Real-Time Systems Aircraft control systems Airline Baggage Handling Systems Insurance Management Systems

6 Microsoft Academic Program Student Technology Conference 2005 What is a Language? C(x) h C(x) t 2m x ih = – TextualPictorial Declarative Procedural class Magnox : NuclearPowerStation { public void dropRods () jo biscuits 24 green pat cakes 32 pink Employee name address promote Job description pay assign 0..* a>b && c==d call Call Record call length base rate: £/s store

7 Microsoft Academic Program Student Technology Conference 2005 Spezielle Programmierung Domain Specific Languages (DSL) –Einer Problemdomäne zugeordnet Verringerung der semantischen Distanz zwischen Problem und Programm Es soll bewusst nicht alles möglich sein –Oft auch: Little Languages, Mini Languages –Horizontal: SQL, Reg Ex, XSLT, HTML –Vertikal: EBNF, lex/yacc, Call/C, Frob, LexiFi, Postscript, Tex, VHDL –Oft deklarativ Oft nicht Turing complete

8 Microsoft Academic Program Student Technology Conference 2005 Beispiel Suchen: DSL Reg Ex Code a(b|c) Nutzung If RegEx.Match(t, "a(b|c)").Success Then...

9 Microsoft Academic Program Student Technology Conference 2005 DSLs machen Probleme überschaubar Ziel von DSL ist die Artefaktgenerierung! Höhere Produktivität –Weniger Zeilen Code –Deklarativ statt imperativ Bessere Wartbarkeit –Höhere Transparenz, bessere Lesbarkeit –Modularisierung –Code Reuse Höhere Sicherheit –Sandbox Involvierung von Domänenexperten –Hohe Ausdrucksfähigkeit, Vokabular der Domäne steht zur Verfügung –Leichte Erlernbarkeit

10 Microsoft Academic Program Student Technology Conference 2005 Primzahlenermittlung ist überschaubar… …wenn wir ein System haben, dass… –multiplizieren und dividieren und –Dinge wiederholt tun kann _*_ _/_ _%_ while (…) {…} C, Pascal, Fortran,… Von Neumann computer with conventional CPU language: platform:

11 Microsoft Academic Program Student Technology Conference 2005 Teilelisten ermitteln ist überschaubar… …wenn wir ein System haben, dass… –Lange Listen speichern und schnell traviersieren kann –Listen filtern und kombinieren kann CREATE … JOIN … … WHERE … JOIN … … WHERE … SELECT … Relational Database SQL platform: language:

12 Microsoft Academic Program Student Technology Conference 2005 GUI-Entwicklung ist überschaubar… …wenn wir ein Systen haben, dass… –Fenster und Controls anzeigen kann und –Strukturen interaktiv modifizierbar macht Visual programming languages Interactive app platform platform: language:

13 Microsoft Academic Program Student Technology Conference 2005 …wenn wir eine language dafür haben… …und eine runtime platform Telefonabrechnungssysteme sind überschaubar… Phone Billing Engine call calendar month Call Record call length base rate: £/s call length friend discount rate: £/s store friends calls other calls - bill billing period store Telephone Billing Scheme

14 Microsoft Academic Program Student Technology Conference 2005 prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salespersons account 31 monthly bank a/c pay 7 £ tablet PC customer -facing developer animator prototype for review tweak hack Mit einer DSL arbeiten generator phone bill system

15 Microsoft Academic Program Student Technology Conference 2005 DSL-Output prospect initiated prospective sale empty overflow Sat weekly accumulator 4 £20 1 week delay £30 prospect cancels salespersons account 31 monthly bank a/c pay 7 £ generator phone bill system animator prototype for review generator list of parts generator business plan C# XML C# C#, Java XML SQL mixed code and config files

16 Microsoft Academic Program Student Technology Conference 2005 Mind The Gap – Von der Abstraktion zum Code

17 Microsoft Academic Program Student Technology Conference 2005 Microsofts DSL Tools für VS2005

18 Microsoft Academic Program Student Technology Conference 2005 DSL Definition in VS2005 Domain Model –Abbildung einer Problemdomäne in ein Klassenmodell –Verknüpfung von Konzepten über Beziehungen inkl. Nebenbedingungen –Beschreibung mittels Designer Designer Definition –Visualisierung des Domain Model Wie sollen Konzepte dargestellt werden? Wie sollen Beziehungen dargestellt werden? –Beschreibung mittels XML Dokument Artifact Generator –Template basiert –Übersetzt Instanzierung des Domain Models in Code Microsofts DSLs sind immer visuell!

19 Microsoft Academic Program Student Technology Conference 2005 Domain Model Designer

20 Microsoft Academic Program Student Technology Conference 2005 DSL-Programmierung

21 Microsoft Academic Program Student Technology Conference 2005 Microsoft DSLs I Application Designer

22 Microsoft Academic Program Student Technology Conference 2005 Microsoft DSLs II System Designer

23 Microsoft Academic Program Student Technology Conference 2005 Microsoft DSLs III Logical Datacenter Designer

24 Microsoft Academic Program Student Technology Conference 2005 Deployment Designer Microsoft DSLs IV

25 Microsoft Academic Program Student Technology Conference 2005 Microsoft DSLs V Class Designer

26 Microsoft Academic Program Student Technology Conference 2005 War das alles? Microsoft unterstützt textuelle DSL z.Z. nur schlecht –DSL Tools fokussieren auf visuelle DSLs –VSIP Babel ist umständlich zu nutzen C++ bzw. COM-basiert Schlechte Dokumentation Unterstützt nur Lex/Yacc bzw. Bison –Common Compiler Infrastructure (CCI) nur für den akademischen Bereich verfügbar VS200x Add-Ins bieten einen alternativen Einstieg –DSL-Code = textueller Project Item Gemischtsprachige Entwicklung möglich –Add-In implementiert Übersetzer Übersetzung autom. oder durch Benutzer angestoßen –Ergebnis der Übersetzung steht im Projekt sofort zur Verfügung –Fehlermeldungen in Task Pane möglich –Allerdings… Kein Syntax Highlighting Kein Intellisense in DSL-Code –Ausnahme: XML-basierte DSL

27 Microsoft Academic Program Student Technology Conference 2005 Beispiel einer textuellen DSL Kapselung von SQL Anweisungen –XML-basiert, horizontal –Deklarativ –Codeerzeugung mit Templates Kapselung von SQL Anweisungen –Eigene Grammatik, horizontal –Deklarativ –Codeerzeugung durch Compiler-Compiler erzeugten Übersetzer mit Zwischensprache Pipelining

28 Microsoft Academic Program Student Technology Conference 2005 adc.sqlobjects.compiler.cocor SqlObjectsPreCompiler sqlobjects … … end sqlobjects adcSqlObjectsAddIn Connect adc.sqlobjects.compiler Xml.SqlObjects.Compiler Architektur der Beispiel-DSL Scanner Parser adc.compiler.shared ACompiler CompilerResult sqlobjectsgrammar.ATG Coco/R Cocor.SqlObjects.Compiler sqlobjects … … end sqlobjects CodeSmith

29 Microsoft Academic Program Student Technology Conference 2005 Fazit DSLs sind nicht nur cool, sondern hilfreich –Codereduktion –Modularisierung –Horizontal & vertikal DSLs sind nicht so schwer zu implementieren, wie allgemein angenommen –DSL Tools unterstützen graphische Sprachen mit enger Integration in VS2005 –XML oder Coco/R bieten Tools für die Analyse von DSL-Quelltext –CodeSmith bietet Unterstützung bei der Codeerzeugung DSLs können schon heute in VS.NET integriert werden!

30 Microsoft Academic Program Student Technology Conference 2005 Questions and Answers ? ? ? ? ?

31 Microsoft Academic Program Student Technology Conference 2005 Ressourcen DSL –Microsoft DSL Tools, –Wikipedia, Domain Specific Language, –Wikipedia, Turing Complete, –Paul Klint et al., Domain-Specific Languages: An Annotated Bibliography, –Diomidis Spinellis, Notable Design Patterns for Domain-Specific Languages, DSLPatterns/html/dslpat.htmlhttp://www.dmst.aueb.gr/dds/pubs/jrnl/2000-JSS- DSLPatterns/html/dslpat.html –Eric Steven Raymond, Designing Minilanguages in: The Art of Unix Programming, Compilerbau/Codegenerierung –Pat Terry, Comiling with C# and Java, Addison-Wesley 2005 (setzt Coco/R ein) –Kathleen Dollard, Code Generation in Microsoft.NET, apress 2004 –Edward G. Nigles, Build Your Own.NET Language and Compiler, apress 2004 –Codesmith, –Coco/R, –http://www.codegeneration.net/http://www.codegeneration.net/ VS2003 Integration –Les Smith, Writing Add-ins for Visual Studio.NET, apress 2002 Quellen für Teile des Vortrags –Joel Semeniuk, Visual Studio Team System – Feature Roundup, Microsoft, roundup.ppt roundup.ppt –José António Silva, DSL Tools in Visual Studio, Microsoft, 2005/ %20DSL%20Tools%20VS2005%20joseas%20ISEL.ppthttp://labnet.cc.isel.ipl.pt/docs/Eventos/ / %20DSL%20Tools%20VS2005%20joseas%20ISEL.ppt

32 Microsoft Academic Program Student Technology Conference 2005 Über den Referenten Ralf Westphal (www.ralfw.de) ist freier Softwaretechnologievermittler. Er arbeitet als Fachautor, Coach/Berater, Softwareentwickler und Sprecher auf Entwickler-Events im In- und Ausland wie dem Microsoft Technical Summit, Microsoft DevDays, ADC, BASTA!, COMDEX oder SD West. Der Schwerpunkt seiner Arbeit liegt bei der Vermittlung und Anwendung moderner Softwaretechnologien und -konzepte im Zusammenhang mit dem.NET Framework.www.ralfw.de Darüber hinaus ist Ralf Westphal einer der unabhängigen deutschen Microsoft Regional Directors, Produzent von.NET TV (www.dotnettv.de), Associate der ersten Stunde bei thinktecture (www.thinktecture.com) und zusammen mit Christian Weyer einer der.NET Twins (www.dotnettwins.de).www.dotnettv.dewww.thinktecture.comwww.dotnettwins.de

33 Microsoft Academic Program Student Technology Conference 2005.NET kompakt, Spektrum Akademischer Verlag 2002, ISBN Bücher ADO.NET Datenbankprogrammierung, Addison-Wesley 2002, ISBN Jetzt lerne ich ADO.NET, Markt+Technik, 2003, ISBN (zusammen mit Christian Weyer) In Fachzeitschriften Publikationen tv.dotnetpro.de Video


Herunterladen ppt "Microsoft Academic Program Domain Specific Languages Ralf Westphal Student Technology Conference 2005."

Ähnliche Präsentationen


Google-Anzeigen