This presentation was recorded at GOTO Aarhus 2012 http://gotocon.com Kasper Lund - Google V8 Team and Dart Team ABSTRACT Dart is a new programming language for the web. To make Dart run in all modern browsers, we have implemented an optimizing Dart-to-JavaScript compiler. Performance-wise the biggest challenge is the gap between the semantics of Dart's low-level operators and JavaScript's builtin primitives. This presentation will introduce you to the Dart language and the deployment options before diving into the details of the intermediate representation and the implemented optimizations. TIMECODES 0:00 Introduction 1:17 What is Dart? 3:04 Dart execution and deployment 4:12 Dart-to-JavaScript compiler goals 7:52 Example: What's the point? 13:05 Code after tree shaking 13:48 User-definable operators 17:34 Compiled JavaScript code 19:36 Compact class definitions 23:03 Closures 24:46 Source code in Dart 27:23 Intermediate representations 27:53 SSA: Basic block graph 30:53 SSA: Dominator tree 33:33 Global value numbering (1) 35:29 Global value numbering algorithm 37:51 Speculative optimizations 42:00 Profile guided optimizations 42:34 Dealing with control flow 44:38 Code size 45:55 Performance 47:50 Conclusions https://twitter.com/gotocon https://www.facebook.com/GOTOConference http://gotocon.com
Get notified about new features and conference additions.