GrammaTech

GrammaTech
GrammaTech, Inc

Logo de GrammaTech
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 Etats-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].

Sommaire

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

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 co-fondateurs 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

  1. Liste des références GrammaTech
  2. Quinnell, Richard A. : Static analysis stomps on bugs, EETimes (2008-03-06). Consulté le 2009-01-23.
  3. Jetley, Raoul ; Anderson, Paul : Using static analysis to evaluate software in medical devices, EETimes (2008-04-14).
  4. Unintended Acceleration
  5. T. Teitelbaum, « The Cornell Program Synthesizer: A syntax-directed programming environment », dans Communications of the ACM, vol. 24, no 9, September, 1981, p. 563–573 [lien DOI] 
  6. (en) T. Reps, Generating Language-Based Environments, Cambridge, MA, The M.I.T. Press, 1984 (ISBN 0262181150) 
  7. (en) Reps, Thomas W., and Teitelbaum, Tim, The Synthesizer Generator: A System for Constructing Language-Based Editors, Cambridge, MA, Springer-Verlag, 1988 (ISBN 0387968571) 
  8. Guaspari, D. (1989). "Penelope, an Ada verification system". 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]". 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]". Proc. Int. Conf. on Compiler Construction (CC), New York, NY: Springer-Verlag. (Awarded the EAPLS Best Paper Award at ETAPS 2008.). 

Voir aussi

Articles connexes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article GrammaTech de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • List of tools for static code analysis — This is a list of significant tools for static code analysis.Historical products* Lint the original static code analyzer of C code.Open source or Noncommercial products .NET (C#, VB.NET and all .NET compatible languages) *… …   Wikipedia

  • Abstract interpretation — In computer science, abstract interpretation is a theory of sound approximation of the semantics of computer programs, based on monotonic functions over ordered sets, especially lattices. It can be viewed as a partial execution of a computer… …   Wikipedia

  • Analyse statique de programmes — En informatique, la notion d analyse statique de programmes couvre une variété de méthodes utilisées pour obtenir des informations sur le comportement d un programme lors de son exécution sans réellement l exécuter. C est cette dernière… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”