Jump to content

GrammaTech

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by GrammaTech (talk | contribs) at 15:14, 31 January 2009 (Added link). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
GrammaTech, Inc.
Company typePrivate
IndustrySoftware Quality
HeadquartersIthaca, New York
Key people
Founders: Tim Teitelbaum of Cornell University, Tom Reps of the University of Wisconsin
ProductsCodeSonar, CodeSurfer, Ada-ASSURED / Ada-Utilities
Websitehttp://www.GrammaTech.com

GrammaTech is a software-development tools vendor based in Ithaca, NY. The technology offered is based on research performed at Cornell University and University of Wisconsin.

Products

CodeSonar is a source code analysis tool that performs a whole-program, interprocedural analysis on C, C++ and identifies programming bugs at compile time. CodeSonar is used by the FDA, The Center for Devices and Radiological Health, which uses it to detect defects in fielded medical devices[1][2]

CodeSurfer is a program-understanding tool. Program constructs—including preprocessor directives, macros, and C++ templates—are analyzed. CodeSurfer calculates a variety of representations that can be explored through the graphical user interface or accessed through the optional programming interface.

Ada-ASSURED and Ada-Utilities are tools that ensure consistent coding style, prevents syntax errors, and provides features for writing and reviewing Ada code. They can be used with any Ada compiler.

History

GrammaTech is a 1988 spin-off from Cornell University, where its founders had developed an early IDE in 1978 (the Cornell Program Synthesizer[3]) and a system for generating language-based environments from attribute-grammar specifications in 1982 (the Synthesizer Generator[4][5]). Commercial systems that have been implemented using the Synthesizer Generator include ORA's Ada verification system (Penelope[6]), Terma's Rigorous Approach to Industrial Software Engineering (Raise[7]), and Loral's checker of the SPC Quality and Style Guidelines for Ada[8] (now GrammaTech's Ada-Assured).

GrammaTech commercialized the Wisconsin Program-Slicing Tool as CodeSurfer for C and C++ in 1999.

GrammaTech and the University of Wisconsin have been collaborating since 2001 to develop analysis, reverse-engineering, and anti-tamper tools for binary executables. A byproduct of this research is CodeSurfer/x86[9], a version of CodeSurfer for the Intel x86 instruction set, as well as an approach[10] to creating such systems automatically from formal semantic descriptions of arbitrary instruction instruction architectures.

References

  1. ^ Quinnell, Richard A. (2008-03-06). "Static analysis stomps on bugs". EETimes. Retrieved 2009-01-23.
  2. ^ Jetley, Raoul; Paul Anderson (April 2008), Using static analysis to evaluate software in medical devices [1], Embedded Systems Design, United Business Media {{citation}}: External link in |title= (help)
  3. ^ Teitelbaum, T. (September, 1981). "The Cornell Program Synthesizer: A syntax-directed programming environment". Communications of the ACM. 24 (9): 563–573. doi:10.1145/358746.358755. {{cite journal}}: Check date values in: |date= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)
  4. ^ Reps, T. (1984). Generating Language-Based Environments. Cambridge, MA: The M.I.T. Press. (Awarded the 1983 ACM Doctoral Dissertation Award.).
  5. ^ Reps, Thomas W., and Teitelbaum, Tim (1988). The Synthesizer Generator: A System for Constructing Language-Based Editors. Cambridge, MA: Springer-Verlag.{{cite book}}: CS1 maint: multiple names: authors list (link)
  6. ^ Guaspari, D. (1989). "Penelope, an Ada verification system". TRI-Ada '89: Proceedings of the conference on Tri-Ada '89. Pittsburgh, PA: ACM. pp. 216–224. doi:10.1145/74261.74277. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  7. ^ The RAISE Language Group, CORPORATE (1993). The RAISE specification language. Upper Saddle River, NJ: Prentice-Hall, Inc. ISBN 0-13-752833-7.
  8. ^ Software Productivity Consortium (1995). Ada 95 Quality and Style Guide: Guidelines for Professional Programmers (SPC-94093-CMC Version 01.00.10 ed.). Herndon, VA: SPC.
  9. ^ Balakrishnan, G. (2004). "Analyzing memory accesses in x86 executables [2]". Proc. Int. Conf. on Compiler Construction. New York, NY: Springer-Verlag. pp. 5–23. (Awarded the EAPLS Best Paper Award at ETAPS 2004.). {{cite conference}}: External link in |title= (help); Unknown parameter |booktitle= ignored (|book-title= suggested) (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)
  10. ^ Lim, J. (2008). "A system for generating static analyzers for machine instructions [3]". Proc. Int. Conf. on Compiler Construction (CC). New York, NY: Springer-Verlag. (Awarded the EAPLS Best Paper Award at ETAPS 2008.). {{cite conference}}: External link in |title= (help); Unknown parameter |booktitle= ignored (|book-title= suggested) (help); Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)