Eddy - Heuristic Autocorrect for Java
Details
Current compilers use an unambiguous grammar and semantics to process code. While this approach has many practical advantages, it turns programming into a finicky, tedious process. Beginners are turned off by the ubiquitous "syntax error", and for seasoned programmers, the compile-edit-loop drains productivity and nerves. Modern IDEs improve this with tab-completion and highlighting, but still give up once the programmer has written even a single line of broken code.
The goal of Eddy (https://eddy.systems/) is to make the computer fix broken code as you type, rather than simply yell at you with error messages. Eddy parses the input using an ambiguous grammar, then uses heuristic knowledge to interpret the possibly broken input into valid Java, correcting spelling errors, incorrect syntax, mismatched parentheses, mis-ordered function arguments, etc. as it goes. If Eddy finds several possible meanings without a clear “best” option, it presents the user with a choice. This shifts the responsibility for understanding the input to the machine: if Eddy fails to understand a line of code which a programmer could reasonably have understood, that’s Eddy’s fault, not the programmer’s.
In this talk, we lay out Eddy’s philosophy, show a demo, and discuss its inner workings. Internally, Eddy uses brute force heuristic search to explore the space of solutions. We will show how to hide the exponential time complexity inherent in many AI/ML algorithms behind lazy evaluation and "best first search", and how to use monads to keep the problem logic separated from the search logic.
About Speakers
Martin and Geoffrey co-founded Eddy Systems, a startup using AI and machine learning to create autocorrect for code.
Prior to eddy, Geoffrey Irving developed computational physics and geometry algorithms for engineering and manufacturing applications at Otherlab, for biotechnology applications at D.E. Shaw Research, and for feature films at Pixar Animation Studios and Weta Digital. He has degrees in mathematics and computer science from the California Institute of Technology and a Ph.D. in computer science from Stanford University where he worked under Ron Fedkiw on robust, high performance simulation algorithms for volumetric solids, cloth, phase change, free surface flow, and other phenomena. Geoffrey's interest in programming models includes the development of the prototype programming language Duck and compiler research under Jason Hickey at Caltech. He has screen credits on Ratatouille, Wall-E, Up, and Tintin.
Martin Wicke completed his PhD at ETH Zurich on geometric modeling and simulation using particle methods. As a fellow of the Max Planck Center for Visual Computing and Communication and visiting Assistant Professor at Stanford University, he worked on learning system behavior to speed up fluid simulations, to improve routing in sensor networks, and localization in indoor environments. He worked on unified solid and fluid simulations at UC Berkeley and on video analysis as VP R&D at HighlightCam. As Otherlab's VP of Software, Martin worked on consumer-focused products simplifying and automating CAD and CAM.
