Oleg Šelajev
From ZeroTurnaround
Oleg is a Java developer, Evangelist and RebelLabs editor at ZeroTurnaround, with a focus on Continuous Delivery and Devops. He also enjoys spending time using Clojure, Github and Google docs. He is currently studying for a PhD on dynamic system updates and process migration and is a part-time teacher at the University of Tartu. As a technical writer for RebelLabs, Oleg regularly provides content for blogs and popular reports. In his free time he plays chess at a semi-grandmaster level, loves puzzles and solving problems. He is a geek but loves to hang out with people.
Blog: http://rebellabs.com
How to Create a New JVM Language in Under an Hour
In this session we'll create a new programming language called DevoxxPLLang! We'll construct its grammar, semantics, operations and the interpreter for the language. Additionally, we'll learn about parsers and how to perform simple optimizations, both at compile time and otherwise. Most importantly we'll tackle the interoperability problem with the underlying platform, which in our case is the JVM.
This session will briefly discuss type systems, optimizations, memory management and concurrency issues that programming languages all encounter. Have you ever wanted to create a programming language of your own? After this session you will have seen all the tools you need to do so and will understand more about how are programming languages work including the challenges you’ll face.
Functional data structures with Java 8
Developers know and love data structures. Applications are often full of maps, trees, heaps, queues and much more. And we rarely bother to look under the hood to understand the tradeoffs between each of the data structures.
We'll briefly discuss what makes data structures persistent, and why making persistent data structures perform well is a challenging task to do well. You'll understand what amortized performance is, and how lazy evaluation can turn the tables on performance, making persistent data structures fast again.
We'll look at several purely functional data structures implemented in Java 8 and will discuss why are they efficient and when you maybe want to prefer these to the data structure built-in into the JDK. By attending this session you'll feel more comfortable with functional data structures and will be more likely to succeed using functional programming for problems that involve data crunching in future.