Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to GraalVM

Introduction to GraalVM

A simple introduction to the GraalVM and its ecosystem

Alex Xandra Albert Sim

September 25, 2019
Tweet

More Decks by Alex Xandra Albert Sim

Other Decks in Technology

Transcript

  1. Disclaimer Presentations are intended for educational purposes only and not

    to replace independent professional judgement. The views and opinions expressed in this prsentation do not necessarily reflect the official policy or position of blibli.com. Audience discretion is advised.
  2. What is a VM? an efficient, isolated duplicate of the

    real machine Popek, Gerald J.; Goldberg, Robert P. (1974). "Formal requirements for virtualizable third generation architectures" “ “”
  3. Java Virtual Machine Class Loader Runtime Data Area Execution Engine

    JNI Native Mehtod Library Java Scala Kotlin Clojure Loads, links, initialize *.class at runtime Store bytecode, runtime data, native stacks Executes bytecode Interaction with native libs
  4. GraalVM GraalVM Tuffle JVM Languages (java, kotlin, etc) JS Ruby

    R LLVM bc JVM Node.JS OracleDB Native Program
  5. GraalVM: Performance GraalVM Tuffle JVM Languages (java, kotlin, etc) JS

    Ruby R LLVM bc JVM Node.JS OracleDB Native Program
  6. GraalVM: Polyglot GraalVM Tuffle JVM Languages (java, kotlin, etc) JS

    Ruby R LLVM bc JVM Node.JS OracleDB Native Program
  7. GraalVM: Polyglot • Pass values between languages • Executes code

    from other language(s) • No copying or marshalling
  8. GraalVM Polyglot: How? • Interoperability protocol • Communicates via set

    of agreed data types and structure • Details: https://chrisseaton.com/rubytruffle/dls15-interop/dls15- interop.pdf
  9. GraalVM: Cross Language Tool GraalVM Tuffle JVM Languages (java, kotlin,

    etc) JS Ruby R LLVM bc JVM Node.JS OracleDB Native Program