Roslyn
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
187
On Slideshare
187
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Roslyn TALENTSOFT R&D Academy 27/03/2014 Compilateur as A Service
  • 2. ► [Introduction]Compilateur et méta programmation ► Roslyn ► [Coding]Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  • 3. ► [Introduction]Compilateur et méta programmation ► Roslyn ► [Coding]Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  • 4. Compilateur et meta-programmation Définition La métaprogrammation désigne l'écriture de programmes qui manipulent des données décrivant elles-mêmes des programmes. Wikipédia
  • 5. Compilateur et meta-programmation Compilateurs
  • 6. Compilateur et meta-programmation Compilateurs var x = 10; var y = 20; if(x == y) { } IL_0001: ldc.i4.s 0A IL_0003: stloc.0 IL_0004: ldc.i4.s 14 IL_0006: stloc.1 IL_0007: ldloc.0 IL_0008: ldloc.1 IL_0009: ceq IL_000B: ldc.i4.0 IL_000C: ceq IL_000E: stloc.2 IL_000F: ldloc.2 IL_0010: brtrue.s IL_0014 IL_0012: nop
  • 7. ► [Introduction]Compilateur et méta programmation ► Roslyn ► [Coding]Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  • 8. Roslyn Octobre 2011 Community Technology Preview Evangélisation (MVP Matthieu Mezil) 2012 Février Major Updates & Breaking changes Septembre 2012
  • 9. Roslyn Octobre 2011 Community Technology Preview Evangélisation (MVP Matthieu Mezil) 2012 Février Major Updates & Breaking changes Septembre 2012
  • 10. Eric Lippert « Principal Developer » quitte Microsoft pour Coverity Novembre 2012
  • 11. Novembre 2012 Eric Lippert « Principal Developer » quitte Microsoft pour Coverity
  • 12. Dogfooding de Roslyn Décembre 2013
  • 13. Dogfooding de Roslyn Décembre 2013
  • 14. Roslyn Ressources  Api & templates téléchargeables pour VS 2012.  Exemple format Word  Packages NuGet Disponible pour les autres versions de Visual Studio.
  • 15. Roslyn Compilateur As A Service
  • 16. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  • 17. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  • 18. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  • 19. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  • 20. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  • 21. Roslyn Templates VS 2012
  • 22. ► [Introduction] Compilateur et méta programmation ► Roslyn ► [Coding] Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  • 23. [Coding] Syntaxe et Sémantique Workspace
  • 24. [Coding] Syntaxe et Sémantique Prérequis
  • 25. [Coding] Syntaxe et Sémantique Grammaire & langage Grammaire (Arbre syntaxique)  ArgumentListSyntax  paramètre de méthode  ClassDeclarationSyntax  déclaration d’une classe  ExpressionStatementSyntax  ligne de code  UsingDirectiveSyntax  using d’un namespace  ... Sémantique (Symbol)  SemanticModel  GetTypeInfo()  résultat de l’expression  (struct) CommonSymbolKind.Event  .Field  .Property
  • 26. [Coding] Syntaxe et Sémantique Syntax SyntaxNode: Blue SyntaxToken: Green SyntaxTrivia: Red using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World"); } }
  • 27. <Live Coding>
  • 28. [Coding] Syntaxe et Sémantique
  • 29. [Coding] Syntaxe et Sémantique
  • 30. [Coding] Syntaxe et Sémantique ExpressionStatementSyntax BinaryExpressionSyntax IdentifierNameSyntax InvocationExpressionSyntax
  • 31. [Coding] Syntaxe et Sémantique InvocationExpressionSyntax MemberAccessExpressionSyntax ArgumentListSyntax IdentifierNameSyntax IdentifierNameSyntax
  • 32. </Live Coding>
  • 33. ► [Introduction] Compilateur et méta programmation ► Roslyn ► [Coding] Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  • 34. [Demo] Scripting et Compilation Script CS scriptcs makes it easy to write and execute C# with a simple text editor. C:> scriptcs scriptcs (ctrl-c or blank to exit) > var message = "Hello, world!"; > Console.WriteLine(message); Hello, world! >
  • 35. [Demo] Scripting et Compilation Demo
  • 36. ► [Introduction] Compilateur et méta programmation ► Roslyn ► [Coding] Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  • 37. Le projet et son avenir Actuellement  Dogfooding  Build 2014  Balbutiement dans la communauté
  • 38. Le projet et son avenir Wish-list  Meilleur documentation (à jour!)  Full-Compatible avec VS 2013  Le retour de l’analyseur syntaxique  AOP