Careers > Create a playground application for LKQL
Last modified 10/9/2024 9:44:32 AM

Create a playground application for LKQL

Internship
AdaCore
Paris, France

AdaCore: Helping Developers Build Software that Matters

Everything we do at AdaCore is centered around helping developers build safe, secure and reliable software.

For 30 years, we've partnered with global leaders in aerospace & defense, air traffic management, space, railway and financial services. We've developed tools and services simplifying high-integrity software development through a subscription-based model. As demand for secure applications grows in industries like automotive, medical, energy, and IoT, we're adapting our proven technologies to assist a new generation of developers.

Our 150 global experts based in the US, France, Germany, the UK, and Estonia, collectively develop cutting-edge technologies to address the challenges of high-grade 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.

 

Context

Langkit Query Language (LKQL) is a query language allowing its users to perform syntactic and semantic requests on a given code base, exploring the parse tree and performing “pattern matching” on syntactic nodes. It is implemented using Oracle's Truffle framework in Java, and is JIT compiled. LKQL is used by GNATcheck, an Ada coding standard verification tool developed by AdaCore, as its analysis engine.

 

For now LKQL is only used for coding standard verification in GNATcheck, but we would like to extend its usage to many other applications (automatic code fixes, legality checks, structural code replacement…). We have the will to empower LKQL users and provide our developers out-of-the-box tools to query and manipulate Ada sources.

 

Goals

This internship's final goal is to create an interactive playground to run LKQL requests on large codebases/corpus of codebases, and incrementally view results/be able to browse results. This could be done via a web application and / or an Ada IDEs integration, allowing users to perform requests on Ada code bases, and potentially perform automatic/structural search and replace.

 

The main goals of this internship will be:

  • Rehaul the LKQL interactive mode to allow an inter-processes communication

  • Integrate the LKQL engine to Ada IDEs (GNATstudio and / or VSCode) and create a view to run interactive queries on the current Ada project.

  • Create a web application embedding the LKQL engine and allowing anyone to “toy” with the language and run queries on AdaCore’s public code bases

  • Add structural search and replace features to the LKQL interactive driver and IDE integration

  • Design and implement code template patterns in the LKQL language

 

Skills required

  • A strong interest in compiler and language analysis technologies

  • An interest for UI / UX design

  • A first approach of the Java language

  • A good adaptability

 

Nice to have

  • Some knowledge of the Ada language

  • Some knowledge of web technologies (Spring | React / Vue | CSS frameworks)

  • Being autonomous

 

Timeframe & Location

During 2025 - 6 months - Paris office

 

Beyond the job

We're a global organization driven by diverse backgrounds, fostering innovation through an open exchange of ideas. We welcome applicants of all backgrounds, celebrating diversity in ethnicity, nationality, gender, age, religion, abilities, sexual orientation, veteran or marital status. 

Our commitment is to help our teammates, wherever they are based, feel comfortable and satisfied, by encouraging flexibility to ensure them a healthy work-life balance. Additionally, we prioritize individual development by offering continuous training from day one with a personalized onboarding plan.

Powered by Hello Talent