Session du 10 Janvier 2018
En chaque développeur a sommeillé un jour ce rêve d'écrire son propre compilateur pour un language de domaine ou voir même pour créer un nouveau language de programmation. Or le développement d'un analyseur de code ressemble étrangement au développement du front-end d'un compilateur. Durant cette session, Freddy présentera les différentes étapes du développement d'un analyseur de code jusqu'à la capacité à exécuter symboliquement tous les chemins d'exécutions. Ce concept avancé d'interprétation abstraite est un pré-requis à la détection des bugs et vulnérabilités les plus profonds dans tous les languages.
Quizz en ligne
20 minutes pour jouer ensemble et mettre à l'épreuve nos connaissances des principales failles de sécurité applicatives et notre capacité les détecter des bugs dans du code Java et JavaScript. Speaker
Freddy est le créateur de la plateforme SonarQube et est co-fondateur de SonarSource. Après de nombreuses années de développement en Java, il joue désormais le role de Product Manager pour les analyseurs de code SonarSource.
10. Lexical Analysis
Only two things are infinite, the universe and human
stupidity, and I am not sure about the former.
11. Lexical Analysis
Only two things are infinite, the universe and human
stupidity, and I am not sure about the former.
Albert E.definite articlesverbs
14. Syntactic Analysis
Define the grammar (BNF) of your language
<class_declaration> ::= ‘class’ identifier <class_body>
<class_body> ::= ‘{‘ <field_declaration> ‘}‘
<field_declaration> ::= <type> identifier ‘;’
<type> ::= identifer
class A {
int b;
}
15. What’s the Purpose of a Parser ?
Grammar Tokens
Abstract Syntax Tree
The most famous parser generator is ANTLR
45. ▪ Total amount of TD can be depressing
▪ How to get a budget to fix old TD?
▪ Risk of injecting functional regression
▪ This is not fun!
This is Hard
46. ▪ Too late
▪ Pushback from teams
▪ Lack of ownership
▪ Heterogeneous requirements
▪ Quality gate
Challenges