GrammaTech
Encyclopedia
GrammaTech is a software-development tools vendor based in Ithaca, New York
Ithaca, New York
The city of Ithaca, is a city in upstate New York and the county seat of Tompkins County, as well as the largest community in the Ithaca-Tompkins County metropolitan area...

. The company was founded in 1988 as a technology spin-off of Cornell University. Its tools are used worldwide by Fortune 500 companies, educational institutions, government agencies and startups.

Products

CodeSonar is a source code analysis tool that performs a whole-program, interprocedural analysis on C and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, and identifies programming bugs and security vulnerabilities at compile time. CodeSonar is used in the Defense/Aerospace, Medical, Industrial Control, Electronic, Telecom/Datacom and Transportation industries. The U.S. Food and Drug Administration
Food and Drug Administration
The Food and Drug Administration is an agency of the United States Department of Health and Human Services, one of the United States federal executive departments...

 (FDA) Center for Devices and Radiological Health
Center for Devices and Radiological Health
The Center for Devices and Radiological Health is the branch of the United States Food and Drug Administration responsible for the premarket approval of all medical devices, as well as overseeing the manufacturing, performance and safety of these devices...

 uses it to detect defects in fielded medical devices.
The U.S. National Highway Traffic Safety Administration
National Highway Traffic Safety Administration
The National Highway Traffic Safety Administration is an agency of the Executive Branch of the U.S. government, part of the Department of Transportation...

 (NHTSA) and NASA
NASA
The National Aeronautics and Space Administration is the agency of the United States government that is responsible for the nation's civilian space program and for aeronautics and aerospace research...

 used it in its Study on Sudden Unintended Acceleration
in the electronic throttle control systems of Toyota vehicles.

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.

History

GrammaTech is a 1988 spin-off from Cornell University
Cornell University
Cornell University is an Ivy League university located in Ithaca, New York, United States. It is a private land-grant university, receiving annual funding from the State of New York for certain educational missions...

, where its founders had developed an early Integrated Development Environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 in 1978 (the Cornell Program Synthesizer) and a system for generating language-based environments
Structure editor
A structure editor, also structured editor or projectional editor, is any document editor that is cognizant of the document’s underlying structure. Structure editors can be used to edit hierarchical or marked up text, computer programs, diagrams, chemical formulas, and any other type of content...

 from attribute-grammar
Attribute grammar
An attribute grammar is a formal way to define attributes for the productions of a formal grammar, associating these attributes to values. The evaluation occurs in the nodes of the abstract syntax tree, when the language is processed by some parser or compiler....

 specifications in 1982 (the Synthesizer Generator). Commercial systems that have been implemented using the Synthesizer Generator include ORA's Ada
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

 verification
Formal verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics .- Usage :Formal verification can be...

 system
(Penelope),
Terma's
Terma A/S
Terma A/S is a Danish company that develops and markets high-tech solutions, systems, and products for civilian and military applications.From making thermometers to producing star trackers, Terma has evolved into a global supplier of high-tech products and technology to the defense and aerospace...

 Rigorous Approach to Industrial Software Engineering
(Raise),
and Loral's
Loral Corporation
Loral Corporation was a defense contractor founded in 1948 in New York by William Lorenz and Leon Alpert as Loral Electronics Corporation. The company's name was taken from the first letters of each founder's surname....

 checker of the SPC Quality and Style Guidelines for Ada
GrammaTech co-founders Reps and Teitelbaum received the 2010
ACM
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...

 SIGSOFT
SIGSOFT
The Association for Computing Machinery's Special Interest Group on Software Engineering provides a forum for computing professionals from industry, government and academia to examine principles, practices, and new research results in software engineering....


Retrospective Impact Award http://www.sigsoft.org/awards/ImpactAward.htm
for their work on the Synthesizer Generator.

GrammaTech commercialized the Wisconsin Program-Slicing Tool as CodeSurfer for C and C++ in 1999. CodeSonar for C and C++, which is an application of CodeSurfer/C, has been available since 2005. GrammaTech co-founder Reps and two other company affiliates shared in a 2011 ACM
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...

 SIGSOFT
SIGSOFT
The Association for Computing Machinery's Special Interest Group on Software Engineering provides a forum for computing professionals from industry, government and academia to examine principles, practices, and new research results in software engineering....


Retrospective Impact Award http://www.sigsoft.org/awards/ImpactAward.htm
for their paper describing the Wisconsin slicing research.

GrammaTech and the University of Wisconsin have been collaborating since 2001 to develop analysis
Program analysis (computer science)
In computer science, program analysis is the process of automatically analysing the behavior of computer programs. Two main approaches in program analysis are static program analysis and dynamic program analysis...

, reverse-engineering
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...

, and anti-tamper tools for binary executables
Executable
In computing, an executable file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a data file that must be parsed by a program to be meaningful. These instructions are traditionally machine code instructions for a physical CPU...

. Byproducts of this research are CodeSurfer/x86 (a version of CodeSurfer for the Intel x86 instruction set), CodeSonar/x86 (a bug and vulnerability finding tool for stripped executables), and an approach to creating such systems automatically from formal semantic descriptions of arbitrary instruction set architectures
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK