May 2018-Feb 2023, Software Engineer, Google, Seoul, Korea
Projects
Work Experience
2010-2012, Trudio, Master’s degree
Trudio is a reverse engineering assistant tool for heavily obfuscated binary executables. It consists of instruction level execution trace extractor, developed using Pintool, and trace analyzer implemented in Java. The trace analyzer was originally prototyped using Python and wxPython.
You can download the trace extractor and trace analyzer here. Paper is here(korean version) and here(english version draft). Source code is not opened.
2013-, J Parser, A scannerless parser implementation
I designed Conditional Derivation Grammar(CDG), that extends Context-Free Grammar with conditional nonterminals: longest match, intersection, exclusion, followed-by, and not-followed-by. It is designed to be capable of integrating lexical grammar with CFG and modeling modern programming languages.
I also created and implemented a parsing algorithm for CDG. The algorithm is similar to Earley parsing, but it uses graph to represent the state of parsing and uses accept condition for conditional nonterminals.
J Parser is an implementation of the proposed algorithm written in Scala.