System Programming Department


Current Projects

Aspect-oriented binary code instrumentation

Start of project – 2014. Customer - Samsung.

Within the scope of a research & development project for Samsung program analysis group employees have developed an instrumentation tool for automatic Android/Tizen ARM executable and library modification. Target file modification is performed through processing and replacing direct binary code using an approach similar to aspect-oriented programming methods. Developed tool was primarily used for performance analysis, targeting Android and Tizen system executables and libraries designed for drawing GUI.

Static program analysis for dynamically typed languages

Start of project – 2010.

The project is designed to research the feasibility of applying static program analysis techniques for dynamically-typed languages. First prototype implementation of the analysis tool targeted Python language and performed type inference to automatically identify related errors. Current work on the project includes extending the type inference engine by processing program control flow structure.

Avalanche: dynamic program analysis tool

Start of project – 2009.

Avalanche − an automatic program traversal and defect detection tool based on Valgrind (dynamic instrumentation framework) − started by program analysis group as a project in 2009. It performs an extensive analysis of a target program by tracing tainted data flow (all external input data received through input streams, file system, network sockets, environment variables and command line arguments, and internal program data derived from external input data) through executed code branching points.

Static source code analysis tools for C, C++ and C# languages

Start of project – 2001. Customer - Klocwork a Rogue Wave Company.

A joint project between the program analysis group and Klocwork, a Rogue Wave Company (previously Klocwork Inc.) focuses on the development of a tool set for static source code analysis for extensive (over 1 million SLOC) C, C++ and C# projects.

Finished Projects

Android Java memory profiling tool

Start of project – 2013. End of project - 2013. Customer - Samsung.

Android Java (Dalvik) memory profiling tool was developed by the program analysis group within the scope of a research & development project for Samsung. The tool is designed to compute various statistical parameters for specified Java processes running on an Android device. The tool structure is embedded within Dalvik (Android Java virtual machine) and extends existing debug/analysis means in order to track virtual memory operations.

Dynamic program analysis tool for automatic concurrency defect detection in multi-threaded Java programs

Start of project – 2012. End of project - 2012. Customer - Samsung.

The analysis tool was developed within the scope of a research & development project for Samsung.