One of the most often overlooked components of software development and coding in general is the human element. Over time, codebases evolve organically as they are touched by many developers. The frameworks and libraries they depend on, change too; sometimes in unpredictable ways.
This organic, human change sits at the crux of the issues related to understanding code. In this talk, we will introduce the Lincoln Library, which aims to learn from this human component over time, helping us better understand both code syntax and semantics without static rules. Specifically, we employ deep recursive neural networks to build tree-structured autoencoders and take advantage of lossless scalameta ASTs to learn vector representation of trees and improve code reconstruction.