Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Roslyn

486 views

Published on

Published in: Software
  • Be the first to comment

  • Be the first to like this

Roslyn

  1. 1. Roslyn TALENTSOFT R&D Academy 27/03/2014 Compilateur as A Service
  2. 2. ► [Introduction]Compilateur et méta programmation ► Roslyn ► [Coding]Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  3. 3. ► [Introduction]Compilateur et méta programmation ► Roslyn ► [Coding]Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  4. 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. 5. Compilateur et meta-programmation Compilateurs
  6. 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. 7. ► [Introduction]Compilateur et méta programmation ► Roslyn ► [Coding]Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  8. 8. Roslyn Octobre 2011 Community Technology Preview Evangélisation (MVP Matthieu Mezil) 2012 Février Major Updates & Breaking changes Septembre 2012
  9. 9. Roslyn Octobre 2011 Community Technology Preview Evangélisation (MVP Matthieu Mezil) 2012 Février Major Updates & Breaking changes Septembre 2012
  10. 10. Eric Lippert « Principal Developer » quitte Microsoft pour Coverity Novembre 2012
  11. 11. Novembre 2012 Eric Lippert « Principal Developer » quitte Microsoft pour Coverity
  12. 12. Dogfooding de Roslyn Décembre 2013
  13. 13. Dogfooding de Roslyn Décembre 2013
  14. 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. 15. Roslyn Compilateur As A Service
  16. 16. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  17. 17. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  18. 18. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  19. 19. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  20. 20. Compiler APIs Scripting APIs Services APIs Editor Services APIs 4APIs Roslyn
  21. 21. Roslyn Templates VS 2012
  22. 22. ► [Introduction] Compilateur et méta programmation ► Roslyn ► [Coding] Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  23. 23. [Coding] Syntaxe et Sémantique Workspace
  24. 24. [Coding] Syntaxe et Sémantique Prérequis
  25. 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. 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. 27. <Live Coding>
  28. 28. [Coding] Syntaxe et Sémantique
  29. 29. [Coding] Syntaxe et Sémantique
  30. 30. [Coding] Syntaxe et Sémantique ExpressionStatementSyntax BinaryExpressionSyntax IdentifierNameSyntax InvocationExpressionSyntax
  31. 31. [Coding] Syntaxe et Sémantique InvocationExpressionSyntax MemberAccessExpressionSyntax ArgumentListSyntax IdentifierNameSyntax IdentifierNameSyntax
  32. 32. </Live Coding>
  33. 33. ► [Introduction] Compilateur et méta programmation ► Roslyn ► [Coding] Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  34. 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. 35. [Demo] Scripting et Compilation Demo
  36. 36. ► [Introduction] Compilateur et méta programmation ► Roslyn ► [Coding] Syntaxe et Sémantique ► [Demo] Scripting et Compilation ► Le projet et son avenir Agenda
  37. 37. Le projet et son avenir Actuellement  Dogfooding  Build 2014  Balbutiement dans la communauté
  38. 38. Le projet et son avenir Wish-list  Meilleur documentation (à jour!)  Full-Compatible avec VS 2013  Le retour de l’analyseur syntaxique  AOP

×