Introduction à TLA+:
corriger les bugs sans code
Inspiré par
https://sadraskol.com
Chaque langage a son paradigme
C -> procédural
Java -> orienté-objet
Haskell -> fonctionnel
Chaque paradigme sa façon de penser
TLA+ ou penser en logique temporelle
Temporel = intuitif
Logique = Le quoi
Action = parce qu'il y a de l'action
+ parce qu'il y en a toujours +
Utilisations de TLA+
Formalisation de protocole
Microsoft : CosmosDB
AWS : ???
Oracle : Loom par Ron Presler
Reservation Train Kata
Les règles
max 70% de réservation
réservation dans 1 wagon
idéalement 70% du wagon
Logique des prédicats
Première spécification
Démo
Spécification : réservation d'une place
Text
Démo
Spécification : 70% du train max
Démo
Démo
Spécification : réservation de plusieurs places
Démo à 400 millions
Démo
Spécification : Problème des conflits de réservations
Démo
Programme sûr n'est pas programme correct
Correct en 2 saveurs
Sécurité : On ne va pas à Milan
Liveness : On arrive à destination
Dernière itération : On remplit le train
Démo
Problème de stuttering
Conclusion
Autre regard
No Silver Bullet
Alternative au golden master
Merci !
Made with Slides.com