GrammaTech, Inc.
logo de GrammaTech

Création 1988
Fondateurs Tim Teitelbaum et Thomas Reps
Siège social Ithaca (New-York)
Drapeau des États-Unis États-Unis
Activité Qualité Logicielle
Produits CodeSonar, CodeSurfer
Site web www.grammatech.com

GrammaTech est une société américaine spécialisée dans les outils d'aide au développement logiciel. Elle est basée à Ithaca, dans l'état de New York, aux États-Unis, et fut fondée en 1988 au sein même de l'université Cornell, l'une des plus prestigieuses du pays. Les outils développés par GrammaTech sont utilisés dans le monde entier, aussi bien par des multinationales comme des membres du Fortune 500 que par des institutions gouvernementales ou des starts-up[1].

Produits modifier

CodeSonar est un outil d'analyse statique arbitraire de code source pour les langages C et C++, qui détecte des erreurs de programmation et des vulnérabilités de sécurité de type runtime, afin de diminuer de manière drastique le nombre d'erreurs latentes présentes dans un logiciel et d'améliorer sa robustesse[2]. CodeSonar est utilisé par toutes les industries demandant un niveau de fiabilité élevé de leurs produits : aéronautique, spatial, ferroviaire, défense, électronique, télécom et médical. Il est aussi utilisé par des institutions gouvernementales tels que la Food and Drug Administration, l'administration américaine des denrées alimentaires et des médicaments, afin de détecter des erreurs dans les logiciels embarqués des appareils médicaux[3]. De plus, l'agence américaine chargée de la sécurité routière, la NHTSA et la NASA l'ont conjointement utilisé dans leur étude portant sur les « accélérations soudaines involontaires », ayant notamment permis de découvrir des problèmes dans les systèmes électroniques de contrôle de l'accélération de certaines voitures Toyota[4].

CodeSurfer est un outil de rétro-ingénierie, analysant le code source C et C++ ainsi que les macros, les directives préprocesseurs et les templates C++. Codesurfer crée une variété de représentations (graphes d'appels, analyse de pointeurs, analyse du flux et du contrôle de données...) qui peuvent être aisément explorées via l'interface graphique ou l'API additionnelle.

Histoire modifier

GrammaTech est créée en 1988 au sein même de l'université Cornell, où ses fondateurs avaient développés en 1978 un premier environnement de développement intégré (le « Cornell Program Synthesizer[5] ») ainsi qu'un système de génération d'éditeurs de code source spécialisés dans un langage donné à partir de la théorie de la grammaire attribuée (le « Synthesizer Generator »[6],[7], conçu en 1982). Plusieurs systèmes ont été implémentés grâce au « Synthesizer Generator », comme l'outil de vérification formelle Penelope[8] du langage Ada. Les deux cofondateurs de Grammatech Tim Teitelbaum et Thomas Reps reçurent en 2010 le prix de l'impact rétrospectif (« Retrospective Impact Award »[9]) du forum SIGSOFT[10] de l'ACM pour leur travail sur le « Synthesizer Generator »[11]. Ils reçurent de nouveau le prix l'année suivante pour une autre recherche, surnommée la recherche « Wisconsin slicing »[12] qui a donné lieu à la commercialisation d'un produit : l'outil CodeSurfer.

En effet, GrammaTech et l'université du Wisconsin sont en étroite collaboration depuis 2001 pour développer des outils d'analyse de code, de rétro-ingénierie et d'anti-altération de fichiers exécutables. Ces recherches ont donné naissance à CodeSurfer/x86[13] (une version de CodeSurfer pour les jeux d'instructions Intel x86), CodeSonar/x86 ainsi qu'un système permettant la génération d'analyseurs statique à partir de la sémantique formelle des jeux d'instruction de chaque architecture matérielle.[14].

Références modifier

  1. Liste des références GrammaTech
  2. (en) Richard A. Quinnell, « Static analysis stomps on bugs », EETimes,‎ (lire en ligne, consulté le )
  3. (en) Raoul Jetley et Paul Anderson, « Using static analysis to evaluate software in medical devices », EETimes,‎ (lire en ligne)
  4. Unintended Acceleration
  5. (en) T. Teitelbaum, « The Cornell Program Synthesizer: A syntax-directed programming environment », Communications of the ACM, vol. 24, no 9,‎ september, 1981, p. 563–573 (DOI 10.1145/358746.358755)
  6. (en) T. Reps, Generating Language-Based Environments, Cambridge, MA, The M.I.T. Press, , 2e éd. (ISBN 978-0-262-18115-0)
  7. (en) Reps, Thomas W., and Teitelbaum, Tim, The Synthesizer Generator : A System for Constructing Language-Based Editors, Cambridge, MA, Springer-Verlag, , 1re éd. (ISBN 978-0-387-96857-5)
  8. D. Guaspari « Penelope, an Ada verification system » () (DOI 10.1145/74261.74277)
    « (ibid.) », dans TRI-Ada '89: Proceedings of the conference on Tri-Ada '89, Pittsburgh, PA, ACM, p. 216–224
  9. Retrospective Impact Award
  10. SIGSOFT
  11. T. Reps, Teitelbaum, T. « The Synthesizer Generator [1] » ()
    « (ibid.) », dans In SDE 1 Proc. of the first ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments
  12. T. Reps, Horowitz, S., Sagiv, M., and Rosay, G. « Speeding Up Slicing [2] » () (consulté le )
    « (ibid.) », dans Proc. Second ACM SIGSOFT Symposium on Foundations of Software Engineering, New Orleans, LA, USA
  13. G. Balakrishnan, Reps, T. « Analyzing memory accesses in x86 executables [3] » ()
    « (ibid.) », dans Proc. Int. Conf. on Compiler Construction, New York, NY, Springer-Verlag, p. 5–23
  14. J. Lim, Reps, T. « A system for generating static analyzers for machine instructions [4] » ()
    « (ibid.) », dans Proc. Int. Conf. on Compiler Construction (CC), New York, NY, Springer-Verlag

Voir aussi modifier

Articles connexes modifier

Liens externes modifier