This offer is obsolete and is retained for reference only. Current offers are available on this page.
Optimizing memory management through static analysis
As a Research & Development Engineer, you will join a team in charge of the Integrated Modeling Environment developed by Prove & Run. More precisely, you will join the group in charge of the development of the compiler that transforms our modeling language to C source code.
Our modeling language is a functional language, and this offers several advantages. Functional programs are arguably easier to reason with and to prove correct, and free the user from the burden of explicitly managing the memory. However, to compile functional languages into efficient imperative code, one needs to pay particular attention to memory handling. Traditionally, compiled functional languages are executed with a runtime garbage collector (RTGC). Using a RTGC allows the compiler to easily share memory locations, but can also increase memory fragmentation and CPU consumption. RTGCs can also be hard to prove correct.
During your internship, you will be in charge of a project aiming at reducing the use of the runtime garbage collector using static analyses. Ideally, for some programs, the RTGC could even be removed. Under the supervision of your advisor, you will:
- study the state of the art on compile-time garbage collection;
- study our modeling language and its differences with standard functional languages;
- identify several means of reducing the use of the RTGC;
- propose a static analysis to abstract the behavior of the program being compiled,
- formalize the analysis and
- implement an analyzer in Java;
- use the results of the analyzer to weave memory management instructions in the generated imperative code.
More details are available in this presentation.
This is offer is for a 6-month internship and is located in our office in Paris.
You are currently completing a Master’s Degree or an equivalent degree. You have a significant experience of software development. You are rigorous, independent and have good interpersonal skills.
An interest in one or more of the following topics will be appreciated positively:
- Embedded software development (consumer-oriented or industrial)
- Operating Systems
- Software Assurance and Certification
Previous experience with the following tools with help ensure that you can hit the ground running:
- The Eclipse development environment
- Source code management tools
- Issue tracking systems
- Documentation generation tools
A good level of English is required.
All interns will receive the following benefits :
- Compensation of €1000-1200/month (gross),
- Daily meal stipends (Tickets Restaurant),
- Half of the monthly cost of the Navigo card (the public transportation card in Paris).