Everything we do at AdaCore is centered around helping developers build the safest, most secure open-source software.
For over 25 years, we've worked with global leaders across avionics, aerospace and defense industries, building tools and providing services that ease the complex and difficult process of developing high-integrity software. As the need for truly secure and reliable applications expands into industries such as automotive, medical, energy, and IOT, we’re advancing our time-tested technologies to bring expertise and services to help a whole new generation of developers.
Our 150 experts worldwide in the US (New York), France (Paris, Toulouse, Grenoble and Vannes), the UK, Estonia and Germany all play a role in developing bleeding edge technologies to meet the highest grade of software development.
Joining AdaCore is about joining a culture of innovation, openness, collaboration and dependability, which defines how we work together, with our customers and partners.
Implementing complex communication protocols and data formats correctly and securely is a huge challenge. High profile security vulnerabilities like BrakTooth, Ripple20 or Heartbleed were regularly discovered in recent years and affected millions, sometimes even billions of devices.
With the RecordFlux toolset and domain-specific language (DSL) AdaCore has the means to precisely describe binary communication protocols and data formats. From a formal description we generate code that can automatically be proven to contain no critical errors.
While a RecordFlux plugin for our own GNAT Studio IDE exists, its functionality is currently limited and other IDEs are not supported. We recognize that the process of modeling a communication protocol is critical in obtaining a secure and correct implementation and tools should provide the protocol designer with as much support as possible.
The goal of this project is to support the RecordFlux DSL in a variety of IDEs and source code editors through Microsoft’s Language Server Protocol (LSP).
The purpose of this internship is to:
Understand the RecordFlux DSL and the process of protocol formalization
Identify LSP features that are helpful for formalizing communication protocols and data formats
Prototype a RecordFlux language server in Python
Implement example support for the new language server in Visual Studio Code in Typescript
If time permits, make the new language server work with GNAT Studio and neovim
Skills required or Nice to have:
Nice to have: Interest in communication protocols
Nice to have: Interest in security, language design, IDEs
During 2023 - 6 months