News Column

Patent Issued for Efficient Code Instrumentation

June 26, 2014



By a News Reporter-Staff News Editor at Computer Weekly News -- According to news reporting originating from Alexandria, Virginia, by VerticalNews journalists, a patent by the inventors Sharabani, Adi (Ramat Gan, IL); Tripp, Omer (Har-Adar, IL), filed on June 1, 2009, was published online on June 10, 2014.

The assignee for this patent, patent number 8752026, is International Business Machines Corporation (Armonk, NY).

Reporters obtained the following quote from the background information supplied by the inventors: "Code instrumentation is a technique that allows computer software to be monitored at runtime, such as to facilitate debugging efforts. For example, software code may be instrumented by inserting instructions that display debugging messages or that write information related to program behavior to a log file. In this way software developers may learn about the internal behavior of the software they write and identify aberrant behavior.

"The main drawback of code instrumentation is that it typically requires a significant amount of resources, both in terms of memory and of processing power. Typically, instrumentation engines insert instructions into the entire code base of a software application, resulting in bloated and sluggish code. Furthermore, instrumentation engines typically employ only rudimentary logic to determine the parts of a software application where instrumentation is both applicable and desirable. For example, instrumentation engines often insert instructions into parts of software code that are unreachable given an input vector that is of interest during debugging, or even parts that are unreachable under any conditions (i.e., dead code). More efficient code instrumentation would therefore be advantageous."

In addition to obtaining background information on this patent, VerticalNews editors also obtained the inventors' summary information for this patent: "The present invention in embodiments thereof discloses novel systems and methods for efficient instrumentation of computer-based software applications.

"In one aspect of the present invention a method is provided for instrumenting a computer program, the method including identifying a program slice within a computer program, and instrumenting the program slice within the program.

"In another aspect of the present invention the identifying step includes identifying the program slice where the program slice includes fewer than all of the statements in the computer program.

"In another aspect of the present invention the identifying step includes identifying the program slice where the program slice includes any statements in the computer program that meet at least one predefined slicing criterion.

"In another aspect of the present invention the identifying step includes applying the at least one predefined slicing criterion to include within the program slice any statements in the computer program that directly or indirectly relate to an action performed with a selected variable before or after a specific point within the computer program.

"In another aspect of the present invention the identifying step includes applying the at least one predefined slicing criterion to include within the program slice any statements in the computer program that directly or indirectly relate to a predefined input vector and entry point of the computer program.

"In another aspect of the present invention the instrumenting step includes applying at least one predefined instrumentation criterion to the program slice.

"In another aspect of the present invention the instrumenting step includes instrumenting the program slice within the computer program in a manner that does not change the underlying functionality of the program that is not related to the instrumentation.

"In another aspect of the present invention the method further includes executing the instrumented program.

"In another aspect of the present invention a system is provided for instrumenting a computer program, the system including a program slicer configured to identify a program slice within a computer program, and an instrumentation engine configured to instrument the program slice within the program.

"In another aspect of the present invention the program slicer is configured to include within the program slice fewer than all of the statements in the computer program.

"In another aspect of the present invention the program slicer is configured to include within the program slice any statements in the computer program that meet at least one predefined slicing criterion.

"In another aspect of the present invention the program slicer is configured to apply the at least one predefined slicing criterion to include within the program slice any statements in the computer program that directly or indirectly relate to an action performed with a selected variable before or after a specific point within the computer program.

"In another aspect of the present invention the program slicer is configured to apply the at least one predefined slicing criterion to include within the program slice any statements in the computer program that directly or indirectly relate to a predefined input vector and entry point of the computer program.

"In another aspect of the present invention the instrumentation engine is configured to apply at least one predefined instrumentation criterion to the program slice.

"In another aspect of the present invention the instrumentation engine is configured to instrument the program slice within the computer program in a manner that does not change the underlying functionality of the program that is not related to the instrumentation.

"In another aspect of the present invention a computer program product is provided for instrumenting a computer program, the computer program product including a computer readable medium, and computer program instructions operative to identify a program slice within a computer program, and instrument the program slice within the program, where the program instructions are stored on the computer readable medium.

"In another aspect of the present invention the computer program instructions include instructions operative to identify the program slice where the program slice includes any statements in the computer program that meet at least one predefined slicing criterion.

"In another aspect of the present invention the computer program instructions include instructions operative to apply the at least one predefined slicing criterion to include within the program slice any statements in the computer program that directly or indirectly relate to an action performed with a selected variable before or after a specific point within the computer program.

"In another aspect of the present invention the computer program instructions include instructions operative to apply the at least one predefined slicing criterion to include within the program slice any statements in the computer program that directly or indirectly relate to a predefined input vector and entry point of the computer program.

"In another aspect of the present invention the computer program instructions include instructions operative to instrument the program slice within the computer program in a manner that does not change the underlying functionality of the program that is not related to the instrumentation."

For more information, see this patent: Sharabani, Adi; Tripp, Omer. Efficient Code Instrumentation. U.S. Patent Number 8752026, filed June 1, 2009, and published online on June 10, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8752026.PN.&OS=PN/8752026RS=PN/8752026

Keywords for this news article include: Software, International Business Machines Corporation.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Computer Weekly News


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters