Groupe de recherche

Laboratoire de vérification ou d’analyse de programme

Le Laboratoire de vérification ou d’analyse de programme (alias VorPAL) a été créé en 2015 par JetBrains et l’Institut des sciences et technologies informatiques de l’Université polytechnique de Saint-Pétersbourg.

À VorPAL, les étudiants, les étudiants de troisième cycle et les chercheurs développent des technologies logicielles basées sur des méthodes formelles, telles que la vérification, l’analyse statique et les techniques de transformation des programmes. Ces méthodes sont utilisées pour améliorer la productivité quotidienne des développeurs sous forme qu’outils autonomes, d'extensions de langage de programmation ou de plugins IDE.

Notre travail est presque toujours open-source parce que nous croyons de tout cœur en la recherche ouverte.

Projets de recherche actuels

Better Kotlin

Kotlin est un langage de programmation relativement nouveau, qui résout plusieurs problèmes importants et lacunes d’autres langages de programmation (Java). Néanmoins, il a encore beaucoup de possibilités d'amélioration et d'extension.

À VorPAL, nous avons déjà exploré ou explorons actuellement les moyens suivants d’étendre Kotlin.

  • Macros
  • Types liquides
  • Spécialisation de classe paramétrisée
  • Génériques de classe Reified
  • Classes de type
  • Reconnaissance de schémas
  • Génériques variadiques

Tests concoliques pour Kotlin (KEX)

Le test concolique (CONCrete + symbOLIQUE) est une technique hybride intéressante pour les tests logiciels et la vérification, qui combine le meilleur des approches statiques et dynamiques à l’analyse du programme. Notre projet appelé KEX est une tentative d’appliquer des tests concoliques à Kotlin.

Fuzzing du compilateur Kotlin (BBF)

Le fuzzing est une technique de test bien connue, qui a fait ses preuves en termes d’efficacité dans les tests de compilateur. Backend Bug Finder (BBF) utilise le fuzzing (et une pléthore d’autres techniques intéressantes) pour trouver des bugs non triviaux dans le compilateur Kotlin.

Outils de productivité pour développeurs

À VorPAL, nous nous soucions non seulement de Kotlin, mais aussi de tout ce qui concerne le développement de logiciels. Les projets non liés à Kotlin comprennent l'accélération des points d'arrêt conditionnels dans la JVM, la prise de conscience des appels du système AFL et la tentative d’appliquer des outils de façon transversale via GraalVM.

Projets de recherche passés

Vérification de modèle délimité

Nous avons créé un outil de vérification de modèle délimité pour le langage de programmation C appelé Borealis, basé sur la boîte à outils LLVM et divers solveurs SMT. En raison du manque de temps et de ressources, ce projet est en pause.

Détection de clones pour les IDE

En utilisant des approches de pointe, nous avons mis en œuvre avec succès un outil efficace de détection en ligne de clones, capable d’analyser de grandes bases de code en temps réel. Après plusieurs itérations et beaucoup d’efforts, cet outil a été transféré et est actuellement utilisé dans IntelliJ IDEA pour la détection de clones.

Stages étudiants

Nous embauchons des stagiaires toute l’année. Les étudiants qui sont intéressés par l’un de nos domaines de recherche sont invités à contacter le directeur du laboratoire Vladimir Itsykson pour plus d’informations à vlad@icc.spbstu.ru.

Membres du groupe

Vladimir Itsykson
Vladimir Itsykson
Chef de projet
Valentyn Sobol
Valentyn Sobol
Chercheur
Azat Abdullin
Azat Abdullin
Chercheur
Daniil Stepanov
Daniil Stepanov
Chercheur
Artyom Aleksyuk
Artyom Aleksyuk
Chercheur
Marat Akhin
Marat Akhin
Chercheur
Mikhail Belyaev
Mikhail Belyaev
Chercheur
Stanislav Ruban
Stanislav Ruban
Étudiant