GrammaTech

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

GrammaTech, Inc.

alt=Description de l'image Logo GrammaTech.png.
Création 1988
Fondateurs Tim Teitelbaum et Thomas Reps
Siège social Drapeau des États-Unis Ithaca (New-York) (É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é de 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 | modifier le code]

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 | modifier le code]

GrammaTech est créée en 1988 au sein même de l'université de 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 | modifier le code]

  1. Liste des références GrammaTech
  2. (en) Richard A. Quinnell, « Static analysis stomps on bugs », EETimes,‎ 6 mars 2008 (lire en ligne)
  3. (en) Raoul Jetley et Paul Anderson, « Using static analysis to evaluate software in medical devices », EETimes,‎ 14 avril 2008 (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,‎ 1984, 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,‎ 1988, 1e éd. (ISBN 978-0-387-96857-5)
  8. Guaspari, D. (1989). « Penelope, an Ada verification system » ACM TRI-Ada '89: Proceedings of the conference on Tri-Ada '89: 216–224, Pittsburgh, PA: ACM. DOI:10.1145/74261.74277. 
  9. Retrospective Impact Award
  10. SIGSOFT
  11. Reps, T.; Teitelbaum, T. (1984). « The Synthesizer Generator [1] » In SDE 1 Proc. of the first ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. 
  12. Reps, T.; Horowitz, S., Sagiv, M., and Rosay, G. (December 1994). « Speeding Up Slicing [2] » Proc. Second ACM SIGSOFT Symposium on Foundations of Software Engineering. 
  13. Balakrishnan, G.; Reps, T. (2004). « Analyzing memory accesses in x86 executables [3] » Springer-Verlag Proc. Int. Conf. on Compiler Construction: 5–23, New York, NY: Springer-Verlag. (Awarded the EAPLS Best Paper Award at ETAPS 2004.). 
  14. Lim, J.; Reps, T. (April 2008). « A system for generating static analyzers for machine instructions [4] » Springer-Verlag Proc. Int. Conf. on Compiler Construction (CC), New York, NY: Springer-Verlag. (Awarded the EAPLS Best Paper Award at ETAPS 2008.). 

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]