Overview
Explore LINQ-style queries in Java through this 21-minute conference talk from the 2015 JVM Language Summit. Dive into the concept of embedding database DSLs in Java 8, understanding LINQ syntax, and the conceptual model behind LINQ-style queries. Learn about lazy evaluation of database queries and the inner workings of this approach. Examine how the same code can produce different bytecode and how to understand code by executing it. Discover query generation techniques, symbolic code execution, and control flow graph analysis. Investigate lambda deserialization and its limitations. Gain insights into the implementation of LINQ-like functionality in Java, presented by Ming-Yee lu at Oracle's Santa Clara campus.
Syllabus
Intro
Embedding Database DSLS in Java 8
LINQ Syntax
Conceptual Model: LINQ-Style Queries
In Reality: Lazy Evaluation of DB Queries
How Does This All Work?
Same Code, Different Bytecode
Understand Code by Executing It
Query Generation
Same Code, Different "Bytecode"
Paths through Control Flow Graph
Execute Code Symbolically in Each Path
Analyze Both Paths
Merge Analysis of Paths
Different "Bytecode", Same Analysis
Lambda Deserialization
Serialization Limitations
Conclusion
Taught by
Java