1 / 9

Behind LINQ – and beyond

Mads Torgersen, Microsoft. Behind LINQ – and beyond. L anguage IN tegrated Q uery An open multi-language query facility Uses cool language stuff Points into the future. LINQ. Declarative More “what”, less “how” Higher order functions Type inference Comprehensions Metaprogramming

murray
Download Presentation

Behind LINQ – and beyond

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mads Torgersen, Microsoft Behind LINQ – and beyond

  2. Language INtegratedQuery • An open multi-language query facility • Uses cool language stuff • Points into the future LINQ

  3. Declarative • More “what”, less “how” • Higher order functions • Type inference • Comprehensions • Metaprogramming • Expression trees What language stuff?

  4. DEMO

  5. Language neutral • Expressions now • Statements soon • Declarations and programs later? • Strongly tied to reflection now • Runtime independent later? Expression trees

  6. API for efficient dynamic lookup No special CLR (it’s the VM ) support Caching via ETs and runtime code generation Dynamic Language Runtime (DLR)

  7. Call sites cache a delegate which does the dispatch • Slow path is (caller) language specific. Typically • Ask the receiver object if it wants to lookup • If not, use language binding rules on runtime type • Either way, return rule and meaning ETs • Patch up dispatch ET with new case • Compile ET and install in call site HOW the DLR WORKS

  8. Dynamic languages and features • IronPython, IronRuby • Dynamic lookup in other languages? • Functional languages and features • F# • Mutability tracking? Pattern matching? • Parallelism • Plinq, Parallel Extensions and beyond • Metaprogramming • More compiler in APIs? • More API in compilers? The FUTURE?

  9. ?

More Related