My current research concerns the development of techniques to automatically learn the dynamic data structure behaviour in a program by analysing traces of its execution. For example, when considering a program that employs a linked list to implement a queue, we would like to automatically learn information such as the shape of the data structure (singly linked list), its behaviour (only operations consistent with a queue are permitted) and any relevant additional information (such as whether the list is implemented using a header node). The information determined from such an analysis will be used to inform formal verification, understand legacy code and aid in reverse engineering. More details about our current reserach in this field can be found here.
T. Rupprecht, X. Chen, D. White, J. Boockmann, G. Lüttgen and H. Bos. DSIbin: Identifying Dynamic Data Structures in C/C++ Binaries. To appear in Intl. Conference on Automated Software Engineering (ASE 2017). 2017.
T. Rupprecht, X. Chen, D. White, J. T. Mühlberg, H. Bos and G. Lüttgen. POSTER: Identifying Dynamic Data Structures in Malware. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS 2016), pp. 1772-1774. ACM, 2016. (DOI: 10.1145/2976749.2989041)
D. White, T. Rupprecht and G. Lüttgen. DSI: An Evidence-Based Approach to Identify Dynamic Data Structures in C Programs. In Intl. Symposium on Software Testing and Analysis (ISSTA 2016), pp. 259-269. ACM, 2016. (DOI: 10.1145/2931037.2931071)
J. T. Mühlberg, D. White, M. Dodds, G. Lüttgen and F. Piessens. Learning assertions to verify linked-list programs. In Intl. Conf. on Software Engineering and Formal Methods (SEFM 2015), LNCS 9276, pp. 37-52. Springer, 2015. (DOI: 10.1007/978-3-319-22969-0_3, PDF)
D. White. dsOli: Data Structure Operation Location and Identification. In Intl. Conf. on Program Comprehension (ICPC 2014), pp. 48-52 ACM, 2014. (DOI: 10.1145/2597008.2597800, PDF)
D. White and G. Lüttgen. Identifying Dynamic Data Structures by Learning Evolving Patterns in Memory. In Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2013), LNCS 7795, pp. 354-369. Springer, 2013. (DOI: 10.1007/978-3-642-36742-7_25, PDF)
D. White and R. C. Wilson. Generative models for chemical structures. Journal of Chemical Information and Modeling, 50(7):1257-1274, 2010. (DOI: 10.1021/ci9004089, PDF)
D. White and R. C. Wilson. Parts-based Generative Models for Graphs. In Intl. Conf. on Pattern Recognition (ICPR 2008), pp. 1-4, 2008. (DOI: 10.1109/ICPR.2008.4761206, PDF)
D. White and G. Lüttgen. Embedded systems programming: Accessing databases from Esterel. EURASIP Journal on Embedded Systems, 2008(1):961036, 2008. (DOI: 10.1155/2008/961036, PDF)
D. White and R. C. Wilson. Spectral generative models for graphs. In Intl. Conf. on Image Analysis and Processing (ICIAP 2007), pp. 35-42, 2007. (DOI: 10.1109/ICIAP.2007.119, PDF)
D. White and R. C. Wilson. Mixing Spectral Representations of Graphs. In Intl. Conf. on Pattern Recognition (ICPR 2006), pp. 140-144, Volume 04, 2006. (DOI: 10.1109/ICPR.2006.803, PDF)
Thesis and Projects
D. White. Generative Models for Graphs. PhD Thesis, 2009. (PDF)
D. White. Parallelizing Reinforcement Learning by Periodic Merging of Function Approximators. Fourth Year Undergraduate Project, 2005.
D. White. From SCADE to Lego Mindstorms. Third Year Undergraduate Project, 2004.
Grants and Scholarships
Case for support co-author on: G. Lüttgen. Learning Data Structure Behaviour from Executions of Pointer Programs. Deutsche Forschungsgemeinschaft (DFG, LU 1748/4-1), 2014. (PDF)
Recipient of EPSRC Postgraduate Research Scholarship, 2005-2008.
Recipient of Nuffield Foundation Undergraduate Research Bursary, 2004.