# GrammaTech

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.

## Produits

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. 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. 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.
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

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 ») 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 »$^,$, 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 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 ») du forum SIGSOFT de l'ACM pour leur travail sur le « Synthesizer Generator ». Ils reçurent de nouveau le prix l'année suivante pour une autre recherche, surnommée la recherche « Wisconsin slicing » 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 (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..