Student / Intern
OracleAustralia-brisbaneUpdate time: May 13,2021
Job Description

Static Analysis with Parfait - Call graph improvements

Duration of internship: 12 months 


Abstract: 
The objective of this internship is to improve the call graph construction in the Parfait static analysis tool, for two different target languages (Python and Java) and evaluate the results. Parfait is written in C++, built on top of the LLVM infrastructure, and finds a large variety of software bugs and security vulnerabilities (including unsafe deserialisation and SQL injection). A call graph is a control-flow graph, which represents calling relationships between functions in a computer program. Currently, missing edges in the call graph results in incomplete control flow information during analysis, which leads to reduced precision in Parfait results. 
This internship will involve: (1) implementing several small improvements to call graph resolution and (2) benchmarking the changes to measure their effect on precision/recall and analysis time.
Problems to explore and address include resolving calls via an interface or abstract type when multiple concrete implementations exist and application of name-based resolution (i.e. resolving calls to a particular named function to declarations using the same name) when other approaches fail. 


The expected outcomes of this internship are:

  •    To improve the precision and recall of the tool, potentially reducing both false positive and false negative reports. 

Prerequisites:
The ideal candidate is expected to:

  •    Be undertaking a Bachelor's degree in Computer Science, Software Engineering or a related field, with excellent academic results (preferably in the 3rd/4th year of the Bachelor's degree) 
  •    Have knowledge in compiler construction and/or program analysis, either through coursework or practical own experience
  •    Be proficient in C++
  •    Have the ability to work independently and collaboratively

Good to have:

  •    Experience with the Python programming language
  •    Experience with the Java programming language
  •    Experience with Python/Java web development frameworks such as Flask/Spring
This job code is utilized for the majority of our temporary hires. The individual is performing hourly job duties as defined under the Fair Labor Standards Act.



Get email alerts for the latest"Student / Intern jobs in Australia-brisbane"