Analysis Of Code Form Patents (Class 717/141)
-
Patent number: 8397223Abstract: A method, system and apparatus for providing a web application generator to generate the basis for a complete web application source code. Based on graphical user interface input files provided by graphic designers, the web application generator generates application framework code, an event handler skeleton and business logic foundation code. Web developers then prepare additional source code using an object-oriented programming language based on the event handler skeleton and business logic foundation code to create web application business logic objects and event handler methods. Ultimately the graphical user interface input files prepared by the graphic designers and web application source code prepared by the web developers are dynamically bound at runtime.Type: GrantFiled: March 16, 2001Date of Patent: March 12, 2013Assignee: Gutenberg Printing LLCInventor: Hiang-Swee Chiang
-
Patent number: 8397219Abstract: Described is a system that tracks enregistered memory locations. The system receives program object code that enregisters a memory location (e.g., a set of data at a given memory address) and executes the program code using a thread. Enregistering memory locations involves using additional registers to cache frequently used memory locations while the object code is executing, these additional registers being available on an architecture on which the program executes, but generally not available on an architecture for which the object code was generated. After enregistering the memory location, the system uses a table that identifies enregistered memory locations to track the associated memory address and a thread identifier for the thread. The system checks this table during memory accesses to ensure that other threads attempting to access an enregistered memory location receive a current value for the enregistered memory location.Type: GrantFiled: March 31, 2009Date of Patent: March 12, 2013Assignee: Oracle America, Inc.Inventors: Christopher A. Vick, Gregory M. Wright
-
Patent number: 8392888Abstract: A method, article, and system for providing an effective implementation of assembler language translate-n-to-n instructions implemented on 21, 31, and 64-bit architectures, while maintaining backward compatibility with existing systems. The enhanced Extended-Translation Facility 2 (ETF2) instruction set introduces a new operand in an unused field (M3) that facilitates a change in the original instruction format and its intended function. With the ETF2-Enhancement Facility installed, a value of zeros in the M3 field indicates that instruction operation is to continue as originally defined. When a nonzero value is coded in the M3 field a new function is carried out. The assembler accommodates the changes by making the new M3 field optional when coding the instructions. If the M3 field is not coded, the assembler defaults to providing zeros in the M3 field (as found in the original instruction format), and backward compatible operation is provided.Type: GrantFiled: August 31, 2010Date of Patent: March 5, 2013Assignee: International Business Machines CorporationInventors: John R. Ehrman, Mike S. Fulton, Dan F. Greiner
-
Patent number: 8387028Abstract: An apparatus and computer program product determine a target data type in an environment having a plurality of levels. The plurality of levels comprise a source level, zero or more intermediate levels, and a target level. The zero or more intermediate levels are between the source level and the target level. A target data type representing a transformation of a data type of an associated datum as the datum passes from the source level through the zero or more intermediate levels to the target level is generated. The target data type comprises a sequence of nested transformation functions having an innermost transformation function and an outermost transformation function.Type: GrantFiled: April 25, 2008Date of Patent: February 26, 2013Assignee: International Business Machines CorporationInventors: Lan Huang, Eileen Tien Lin, Tina Louise Mukai, Amit Radheshyam Somani, Yang Sun
-
Patent number: 8387029Abstract: A method for parsing and executing a software program includes receiving a portion of a software program in an original linguistic form, wherein the portion of the software program includes a nonlinear program element having a body, and, while retaining the original linguistic form, directly executing the nonlinear program element by manipulating a parse state and an input stream of tokens representing the body of the nonlinear program element, wherein directly executing comprises executing tokens until the dynamic end of the nonlinear program element is reached. A system includes a tokenizer operable to tokenize the software program and a parser operable to directly execute a nonlinear program element in the software program by manipulating a parse state and an input stream of tokens representing the body of the nonlinear program element, while preserving the original linguistic form of the software program.Type: GrantFiled: July 25, 2006Date of Patent: February 26, 2013Assignee: Hercules Software, LLCInventor: Peter L. Bird
-
Patent number: 8381194Abstract: Methods and apparatuses that collect code coverage information for selected code locations when executing executable code are described. Source code in one or more files may be annotated at the selected code locations. The executable code may be compiled from the annotated source code using standard compilers. The code coverage information may be collected into a run time data store accessible by other applications. In response to receiving a code coverage request, the code coverage information can be retrieved from the data store to compare with annotations identified from the source code. A code coverage report can be generated to indicate whether one or more of the selected code locations are not covered when executing the executable code.Type: GrantFiled: August 28, 2009Date of Patent: February 19, 2013Assignee: Apple Inc.Inventor: Wenguang Wang
-
Patent number: 8381199Abstract: Modular and/or demand-driven string analysis of a computer program is performed. Each method of the program is encoded into monadic second-order logic (M2L) to yield a set of predicate declarations and a set of constraints. The two sets for each method are composed to yield a union set of predicate declarations and a union set of constraints for the program. The union set of constraints includes a particular set of constraints corresponding to call relationships among the methods. An M2L formula including a free variable corresponding to a program variable is added to the union set of constraints. The two union sets are processed to verify a satisfiability of the constraints in relation to an illegal pattern. Where the constraints are satisfiable, the program can generate a string containing the illegal pattern. Where the constraints are not satisfiable, the program never generates a string containing the illegal pattern.Type: GrantFiled: October 19, 2010Date of Patent: February 19, 2013Assignee: International Business Machines CorporationInventors: Takaaki Tateishi, Omer Tripp, Marco Pistoia
-
Patent number: 8370823Abstract: Device, system, and method of computer program optimization. For example, an apparatus to analyze a plurality of versions of computer program includes: a code analyzer to determine one or more code differences between first and second versions of the computer program, based on at least one optimization log associated with at least one of the first and second versions of the computer program.Type: GrantFiled: August 27, 2007Date of Patent: February 5, 2013Assignee: International Business Machines CorporationInventors: Guy Bashkansky, Gad Haber, Marcel Zalmanovici
-
Patent number: 8370818Abstract: Methods and apparatus for analyzing the interface usage and requirements within software applications. In one embodiment, the interfaces comprise application programming interfaces (APIs) used with Java-based software, and the apparatus comprises a computer program that analyzes file paths (or classpaths) containing one or more files comprising Java bytecode. The names of the classes are extracted and placed into a class dictionary. The different classes listed in the dictionaries are broken down into their individual methods. Each method is then dissembled and analyzed for method or field invocations on other classes found in the dictionary. Methods called are added to a “used class” report. The used class report preferably contains the name of the class, method and the instruction information.Type: GrantFiled: December 2, 2006Date of Patent: February 5, 2013Assignee: Time Warner Cable Inc.Inventors: Matt Osminer, Robert F. Gazdzinski
-
Patent number: 8365151Abstract: A method for dynamic recompilation of source software instructions for execution by a target processor, which considers not only the specific source instructions, but also the intent and purpose of the instructions, to translate and optimize a set of equivalent code for the target processor. The dynamic recompiler determines what the source operation code is trying to accomplish and the optimum way of doing it at the target processor, in an “interpolative” and context sensitive fashion. The source instructions are processed in blocks of varying sizes by the dynamic recompiler, which considers the instructions that come before and after a current instruction to determine the most efficient approach out of several available approaches for encoding the operation code for the target processor to perform the equivalent tasks specified by the source instructions. The dynamic compiler comprises a decoding stage, an optimization stage and an encoding stage.Type: GrantFiled: April 30, 2010Date of Patent: January 29, 2013Assignee: Sony Computer Entertainment Inc.Inventor: Randal N. Linden
-
Patent number: 8359568Abstract: A data management method includes accessing data objects in an application written in C/C++ for change-logging and multi-step redo/undo, wherein the data objects are organized in a binary format and are devoid of self-describing information, and wherein the accessing the data objects is structured in a plurality of layers, the plurality of layers including a semantic layer, a change log layer, and a repository layer, dynamically analyzing the data objects to recognize all changes made by any of a plurality of users for all data types used by the application, the dynamically analyzing the data including using semantic analysis to track changes and identifying any changes in any of the data objects, and using generated wrapper classes to convert between C/C++ data structures and generic data format, wherein the wrapper classes are generated from developer provided annotations with C/C++ data structure declarations.Type: GrantFiled: December 22, 2008Date of Patent: January 22, 2013Assignee: International Business Machines CorporationInventors: Juergen Baumann, Friedrich Beichter, Jochen Hoffman, Thomas Pohl
-
Patent number: 8359582Abstract: Method, computer readable medium, and system for specifying before-compiled code, compiling the before-compiled code into a compiled code snippet, specifying an insertion point in a compiled code block of a computer program, and inserting the compiled code snippet into the compiled code block at the specified insertion point while the computer program is running.Type: GrantFiled: September 27, 2008Date of Patent: January 22, 2013Assignee: Hewlett-Packard Development Company, L.P.Inventor: Tavis Elliott
-
Patent number: 8352922Abstract: A process for providing a simulated date and/or time to a time-sensitive application is disclosed herein. Such a process may include detecting the invocation of a time handler method configured to retrieve system time. Upon detecting the invocation, the contents of a call stack may be captured and analyzed to determine which requester method initiated the invocation. The process may then determine whether the requester method should receive a real or simulated system time. A real system time may be returned to the requester method in the event it should receive the real system time. A simulated system time may be returned to the requester method in the event it should receive the simulated system time. A corresponding apparatus and computer program product are also disclosed and claimed herein.Type: GrantFiled: March 31, 2009Date of Patent: January 8, 2013Assignee: International Business Machines CorporationInventors: Trent A. Gray-Donald, Marc Warner Price
-
Patent number: 8352925Abstract: A mechanism is disclosed for enabling a set of code intended to be executed on a first platform (intended platform) to be executed on another platform (target platform). In one implementation, this mechanism takes a significantly different approach than that taken by current techniques. Rather than duplicating, augmenting, or changing a platform to accommodate the set of code, this mechanism alters the set of code to accommodate the platform. By altering the set of code, the mechanism causes the set of code to compensate for the difference(s) between the intended platform and the target platform. By compensating for the difference(s) in the two platforms, the set of code, when executed on the target platform, is able to produce the same result or results as it would have produced had it been executed on the intended platform. Thus, the set of code is able to execute properly on the target platform.Type: GrantFiled: January 16, 2007Date of Patent: January 8, 2013Assignee: Oracle America, Inc.Inventors: Kenneth B. Russell, Ira A. Wyant
-
Patent number: 8352918Abstract: A method and a system for verifying properties of a computer program is provided, pertaining to the validity of properties at program points by means of at least one forward analyser and one backward analyser. For each property, in an issuing phase an analyser issues to a centralizer module an assumption on the validity of the property at a point of the program, the centralizer module storing the assumption in a database with an attribute indicating the original analyser and a status indicating that the assumption needs to be verified; in a phase of verifying the assumption, stored in the database, a test analyser is selected to analyse the assumption in cooperation with the other analysers, the centralizer module determining analysers able to cooperate. The verification phase is iterated until all assumptions stored in the base have been analysed by at least one test analyser, a verified assumption being marked as valid.Type: GrantFiled: January 25, 2008Date of Patent: January 8, 2013Assignee: Commissariat a l'Energie AtomiqueInventors: Pascal Cuoq, Benjamin Monate
-
Patent number: 8341597Abstract: The present invention relates to the field of computer programming. More specifically the invention relates to a method and a data processing system for editing the source code of a computer program. It is an object of the present invention to provide an easy source code editing technique, by which programming errors and type errors can reliably be avoided in cases where changes to the program are supposed not to change the semantics of the program. This object is achieved according to the invention by a method for editing source code, the method comprising the steps of: receiving a modification to the source code, said modification being made by a user, determining whether the modification would change the semantics of the source code, and handling the modification depending on the result of the determining step.Type: GrantFiled: January 16, 2008Date of Patent: December 25, 2012Assignee: International Business Machines CorporationInventors: Andreas Arning, Friedemann Schwenkreis
-
Patent number: 8341609Abstract: A computer is programmed to automatically identify multiple sequences of executable code such that each sequence fits within a page of memory. When the executable code comprising several sequences is loaded into the paged memory, each sequence is placed in its own page. The computer is further programmed to prepare a number of structures which identify a corresponding number of instructions that transfer control between sequences. Each structure identifies at least a control transfer instruction in one sequence and a target in another sequence. When loading the sequences into memory, the structures are used to replace destination addresses of control transfers between sequences with new addresses derived from base addresses of pages that have been allocated in memory to hold the sequences.Type: GrantFiled: January 26, 2007Date of Patent: December 25, 2012Assignee: Oracle International CorporationInventors: Robert H. Lee, David Unietis, Mark Jungerman
-
Patent number: 8336021Abstract: The present invention extends to methods, systems, and computer program products for managing set membership. A set definition is translated into one or more membership conditions. Each membership condition includes statements about the attributes of a resource that are to be true if the resource is to be included in the set. For any given resource request, resources touched by the request are compared to membership conditions applicable to the touched resources. Thus, embodiments of the invention minimize the work that is done to determine which sets a resource may or may not belong to whenever a resource is modified. Accordingly, based on available resources, embodiments of the invention can scale to accommodate larger numbers of sets and larger numbers of potential members of sets.Type: GrantFiled: December 15, 2008Date of Patent: December 18, 2012Assignee: Microsoft CorporationInventors: Craig V. McMurtry, Nima Ganjeh, Vadim Meleshuk, Stephen J. Pek
-
Patent number: 8321846Abstract: Systems, methods, and other embodiments associated with executable templates are described. One example method includes generating an executable template from a set of template data. When an executable template is executed, the executable template creates one or more instantiated entities. These instantiated entities may then be combined with entities created from portions of the original template that were not compilable into the executable format.Type: GrantFiled: November 13, 2008Date of Patent: November 27, 2012Assignee: Oracle International CorporationInventor: Ramkrishna Chatterjee
-
Patent number: 8321847Abstract: A device receives selection of a function category associated with a dynamically-type programming language, receives selection of a function associated with the selected function category, dynamically generates one or more function signatures associated with the selected function, and stores at least a subset of the one or more function signatures in a memory or displays at least a subset of the one or more function signatures to a user.Type: GrantFiled: May 17, 2007Date of Patent: November 27, 2012Assignee: The MathWorks, Inc.Inventors: Christopher F. Garvin, Roy Lurie
-
Patent number: 8312437Abstract: Architecture allows a programmer to answer questions about the source code the programmer is authoring, questions that cannot be answered by other means. A searching mechanism is provided over a much more structured presentation of the source code. The architecture utilizes components that provide an intimate knowledge about the structure of the text, namely, the source code of some particular programming language. The search mechanism employs an abstract syntax tree representation of the code over which the search is conducted. The program source code (as edited by the programmer) is transformed into the abstract syntax tree to embody the structure of the program. If the syntax tree is provided in XML, for example, an XML search mechanism such as Xpath can be utilized to perform the actual searching. This tree is then queried, allowing richer searching criteria to be expressed (by virtue of the structured format of the tree).Type: GrantFiled: December 30, 2008Date of Patent: November 13, 2012Assignee: Microsoft CorporationInventor: Peter Villadsen
-
Patent number: 8307351Abstract: A system and method is provided for performing code provenance review in a software due diligence system. In particular, performing code provenance review may include sub-dividing source code under review and third-party source into logical fragments using a language-independent text fracturing algorithm. For example, the fracturing algorithm may include a set of heuristic rules that account for variations in coding style to create logical fragments that are as large as possible without being independently copyrightable. Unique fingerprints may then be generated for the logical fragments using a fingerprint algorithm that features arithmetic computation. As such, potentially related source code may be identified if sub-dividing the source code under review and the third-party source code produces one or more logical fragments that have identical fingerprints.Type: GrantFiled: March 18, 2009Date of Patent: November 6, 2012Assignee: Oracle International CorporationInventor: Juergen Weigert
-
Patent number: 8302084Abstract: A technique is disclosed for correcting inconsistent language model parameters associated with a compiled computer readable project. One or more compiled units are analyzed to identify compiler commentary therein. Based on the debugging information, it is determined whether inconsistent language model parameters exist. If so, a user is allowed to apply a correction strategy to correct the one or more inconsistent parameters.Type: GrantFiled: November 9, 2007Date of Patent: October 30, 2012Assignee: Oracle America, Inc.Inventors: Alexander Simon, Andrew Krasny
-
Patent number: 8302087Abstract: A system and method for automatic code generation includes parsing source code in a source program to automatically generate reliability, accessibility and serviceability (RAS) code in response to the source code. The automatically generated code is executed in a check in stage. All, a portion or none of the automatically generated code is selectively removed during a check out stage to keep the source program clean and focused.Type: GrantFiled: January 5, 2007Date of Patent: October 30, 2012Assignee: International Business Machines CorporationInventors: Naga Arun Kumar Ayachitula, Andrew J. Bradfield, Shu-Ping Chang, James S. Lipscomb
-
Patent number: 8296744Abstract: Embodiments of tree-based directed graph programming structures for a declarative programming language are provided. In various embodiments, complex graph structured data, referred to as “DGraphs” herein in one non-limiting implementation, is authored using a compact, human friendly syntax without the use of explicit identifiers. In one non-limiting aspect, the syntax includes support for conformance relationships, also referred to as factored relationships. In another non-limiting aspect, the semistructured graph data is a tree-based representation and the syntax includes lexical resolution of references or lexical scoping, and/or non local initialization.Type: GrantFiled: October 3, 2008Date of Patent: October 23, 2012Assignee: Microsoft CorporationInventors: David E. Langworthy, John L. Hamby, Bradford H. Lovering, Donald F. Box
-
Patent number: 8291398Abstract: A compiler system and method for calculating a value to be assigned to a variable for optimizing a program. The apparatus includes a subrange analysis unit for analyzing, for an instruction to assign a value to a variable in the program, a range of the value being assignable to the variable by the instruction, as a subrange of the variable in a case where instruction is executed; a determination unit for determining if the execution result of the program changes if the instruction assigns any value in the subrange of the variable to the variable on the basis of the analyzed subrange of the variable; and a replacement unit for replacing the instruction to assign the value to the variable with an instruction to assign a constant value in the subrange of the variable to the variable.Type: GrantFiled: October 28, 2008Date of Patent: October 16, 2012Assignee: International Business Machines CorporationInventors: Motohiro Kawahito, Hideaki Komatsu, Takao Moriyama
-
Patent number: 8286150Abstract: A computer is caused to function as a parsing unit, a macroblocking analyzing unit, a junction-node restructuring unit, an identical portion merging/restructuring unit, a similar portion merging/restructuring unit, and an intermediate language restructuring unit. The parsing unit performs syntax analysis of a source code. The macroblocking analyzing unit segments the program written in the source code into blocks and appends a virtual portion representing a unique number in a statement, to a number for identifying a variable for the statement in each block to virtualize a calculation pattern. The junction-node restructuring unit extracts a node directly related to a subroutine block. The identical portion merging/restructuring unit merges pre-processing together and post-processing together for a subroutine called up at a multiple portions in the program. The similar portion merging/restructuring unit integrates subroutines having similar structures into a related subroutine.Type: GrantFiled: August 18, 2009Date of Patent: October 9, 2012Assignee: Fujitsu LimitedInventor: Koichiro Yamashita
-
Patent number: 8286250Abstract: A computer-implemented method, a system and a computer program product for determining whether a browser extension leaks information over a network, is provided. A control flow graph (CFG) is generated from a source code included in the browser extension. The CFG is particular to the programming language included in the source code. A sensitive path in the CFG is determined. The sensitive path begins at a sensitive source node and ends at a sensitive end node. A set of tainted variables in the CFG are identified, where each tainted variable stores sensitive or personal information. A subset of tainted variables is generated where each tainted variable in the subset is included in the sensitive path. When a tainted variable in the subset is included in the sensitive end node, the browser extension is determined to leak information over the network.Type: GrantFiled: November 16, 2011Date of Patent: October 9, 2012Assignee: Google Inc.Inventors: Minh Thoai Anh Le, Andrew Swerdlow
-
Patent number: 8286149Abstract: A novel and useful mechanism for optimizing the detection of dependencies in a software system via feedback between static and dynamic engines. The present invention enables dynamic analysis to be more effective by using the results of static analysis to identify sections that need to be traced during dynamic analysis. The method also increases the accuracy of static analysis by using dynamic values as inputs to static analysis. Dynamic values used as inputs for static analysis are a result of dynamic analysis. The mechanism first executes a static analysis, then executes a dynamic analysis targeting the sections identified by the static analysis and finally executes a static analysis using the dynamic values identified during the dynamic analysis in order to detect dependencies.Type: GrantFiled: October 15, 2007Date of Patent: October 9, 2012Assignee: International Business Machines CorporationInventors: Nurit Dor, Yishai Abraham Feldman, Inbal Ronen, Sara Porat
-
Patent number: 8285670Abstract: Reducing coherency problems in a data processing system is provided. Source code that is to be compiled is received and analyzed to identify at least one of a plurality of loops that contain a memory reference. A determination is made as to whether the memory reference is an access to a global memory that should be handled by a direct buffer. Responsive to an indication that the memory reference is an access to the global memory that should be handled by the direct buffer, the memory reference is marked for direct buffer transformation. The direct buffer transformation is then applied to the memory reference.Type: GrantFiled: July 22, 2008Date of Patent: October 9, 2012Assignee: International Business Machines CorporationInventors: Tong Chen, John K. O'Brien, Tao Zhang
-
Patent number: 8281289Abstract: An execution binary image creating device includes an execution binary reading section (1) reading configuration information representing an internal configuration of an execution binary program to be executed on a computer and includes a deletable area detecting section (2) acquiring the configuration information of the execution binary program, analyzing information to be used in performing address resolution at a time of execution, and detecting a deletable area in the execution binary program, when the address resolution is not performed. Further, the device includes an execution binary rewriting section (3) rewriting the deletable area in the execution binary program into specific data and using an execution binary image creating section (4) reducing the data amount of the specific data included in the execution binary program, and converting the execution binary program into an execution binary image in a format recognizable on the computer.Type: GrantFiled: July 25, 2006Date of Patent: October 2, 2012Assignee: Panasonic CorporationInventors: Kazuomi Kato, Teruto Hirota, Tetsuji Yamamoto
-
Patent number: 8271964Abstract: Described herein are methods and systems for providing software development services in a networked software development environment. For instance, instead of performing compilation on a stand-alone desktop computer, software development activities including, compilation are performed by a service provider in response to a general query from a client requester. Such a network desirably has a global view of the source files being processed by various software development tools associated therewith. This global view enables many interesting approaches including the ability to perform analysis and optimizations to the input files not specified by the client requester. Such anticipatory processing may be based on the history and pattern of previous requests and availability of software development tools that the client requester is not aware of, for instance.Type: GrantFiled: May 16, 2005Date of Patent: September 18, 2012Assignee: Microsoft CorporationInventors: Benjamin G. Zorn, David R. Hanson
-
Patent number: 8266605Abstract: Described is a method and system for optimizing a code layout for execution on a processor including internal and/or external cache memory. The method and system includes executing a program having a first layout, generating at least one memory access parameter for the program, the memory access parameter being based on a cache memory of a computing system on which the program is designed to run and constructing a second layout for the program as a function of the at least one memory access parameter.Type: GrantFiled: February 22, 2006Date of Patent: September 11, 2012Assignee: Wind River Systems, Inc.Inventors: Roger Wiles, Maarten Koning
-
Patent number: 8266603Abstract: The present invention relates to allocating registers to variables in order to compile a program. In an embodiment of the present invention a compiler apparatus stores interference information indicating an interference relationship between variables, selects a register and allocates the register to each variables in accordance with a predetermined procedure, without allocating the same register to a set of variables having interference relationships. The compiler further replaces multiple variables having the same register allocated thereto with a new variable and generates an interference relationship by merging the interference relationships each concerning one of multiple variables.Type: GrantFiled: June 4, 2008Date of Patent: September 11, 2012Assignee: International Business Machines CorporationInventors: Tatsushi Inagaki, Hideaki Komatsu, Takuya Nakaike, Rei Odaira
-
Patent number: 8261251Abstract: An error handling operation for checking of an array access in program code is modified during compilation thereof. A sequentially arranged null checking operation and array bounds checking operation for the array access are located. The array bounds checking operation has a corresponding error handling operation operable for setting an array bounds error. The located sequentially arranged null checking operation is removed. The corresponding error handling operation for the located sequentially arranged array bounds checking operation is modified to perform the removed null checking operation during execution of the program code.Type: GrantFiled: October 22, 2008Date of Patent: September 4, 2012Assignee: International Business Machines CorporationInventor: Allan Henry Kielstra
-
Patent number: 8261247Abstract: In a method of modifying code of a running computer program so as to modify the running computer program without having to restart the running computer program for changes to the running computer program to take effect, the improvement is disclosed of: (a) comparing differences in the running program's running binary code versus object code produced by compiling the running program's source code and (b) using the results of step (a), determining what values to use for symbols in said changes to the program. The compiling may be performed using either the compiler originally used to compile the running program or a different compiler. A data storage medium having instructions stored therein for a computer to perform the improved method is also disclosed.Type: GrantFiled: October 1, 2008Date of Patent: September 4, 2012Assignee: Oracle International CorporationInventor: Jeffrey Brian Arnold
-
Patent number: 8255881Abstract: A method for calculating a composite risk is disclosed. The method may include receiving information associated with a plurality of risk factors. The information may include a timeline for each risk factor, and the timeline may include a plurality of discrete time points. The method may further include determining risk values indicative of risk levels of each risk factor associated with the plurality of discrete time points. The method may also include calculating the composite risk using the determined risk values and a relationship between the composite risk and the plurality of risk factors. The composite risk may include a plurality of composite risk values associated with the plurality of discrete time points.Type: GrantFiled: June 19, 2008Date of Patent: August 28, 2012Assignee: Caterpillar Inc.Inventors: Nathan Lee Wilson, Scott William Streitmatter, Frank Chapman Bellrose, Bruce Gehlbach Howell, Stanley Russell Kaniecki
-
Patent number: 8255887Abstract: A memory management mechanism requires data structures to be explicitly deallocated in the programming code, but deallocation does not immediately make the memory available for reuse. Before a deallocated memory region can be reused, memory is scanned for pointers to the deallocated region, and any such pointer is set to null. The deallocated memory is then available for reuse. Preferably, deallocated memory regions are accumulated, and an asynchronous memory cleaning process periodically scans memory to nullify the pointers. In order to prevent previously scanned memory becoming contaminated with a dangling pointer before the scan is finished, any write to a pointer is checked to verify that the applicable target address has not been deallocated.Type: GrantFiled: November 29, 2006Date of Patent: August 28, 2012Assignee: International Business Machines CorporationInventor: Timothy Hume Heil
-
Patent number: 8255884Abstract: Mechanisms for optimizing scalar code executed on a single instruction multiple data (SIMD) engine are provided. Placement of vector operation-splat operations may be determined based on an identification of scalar and SIMD operations in an original code representation. The original code representation may be modified to insert the vector operation-splat operations based on the determined placement of vector operation-splat operations to generate a first modified code representation. Placement of separate splat operations may be determined based on identification of scalar and SIMD operations in the first modified code representation. The first modified code representation may be modified to insert or delete separate splat operations based on the determined placement of the separate splat operations to generate a second modified code representation. SIMD code may be output based on the second modified code representation for execution by the SIMD engine.Type: GrantFiled: June 6, 2008Date of Patent: August 28, 2012Assignee: International Business Machines CorporationInventors: Alexandre E. Eichenberger, Michael K. Gschwind, John A. Gunnels
-
Patent number: 8250551Abstract: A method and apparatuses for allowing additional tail call optimizations. The compiler generates both optimized and non-optimized code for tail call candidates. At a later time when there is more information (e.g. regarding program bounds), a decision and a modification to the executable code is made, implementing one of the two earlier codes.Type: GrantFiled: January 17, 2008Date of Patent: August 21, 2012Assignee: International Business Machines CorporationInventors: James A. Kryka, Tim C. Muehe, Robert R. Roediger, Roger W. Southwick
-
Patent number: 8245204Abstract: Managing program function parameters using compiler directives is provided. A parameter management system can include a compiler coupled to a primary symbol-type dictionary and a supplemental symbol-type dictionary containing parameter data for specific function calls of corresponding generic type functions. Notably, directive processing logic can be configured both to populate the supplemental symbol-type dictionary based upon processor directives embedded in source code, and also to substitute specific function calls for generic function calls in the source code as specified in the supplemental symbol-type dictionary.Type: GrantFiled: December 31, 2007Date of Patent: August 14, 2012Assignee: International Business Machines CorporationInventors: Ying Chau Raymond Mak, Wang Dong Chen, Larry Alexander Lindsay
-
Patent number: 8245206Abstract: A system and method for efficient string concatenation in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). An embodiment improves the performance of string concatenation significantly by analysing the string concatenation chains during bytecode compilation and replacing the dynamic string concatenation code with fixed size structures without bounds checks or locks. The resulting code is also more suitable for inlining.Type: GrantFiled: December 12, 2007Date of Patent: August 14, 2012Assignee: Oracle International CorporationInventors: Marcus Lagergren, Staffan Friberg
-
Publication number: 20120192162Abstract: Particular embodiments discover a relationship between a plurality of methods of a C++ object; define one or more rules to represent the relationship; verify the rules by symbolically executing the methods; and if the rules are verified, then use the rules when symbolically executing the methods so that bytecode of the methods is not executed.Type: ApplicationFiled: January 20, 2011Publication date: July 26, 2012Applicant: FUJITSU LIMITEDInventors: Guodong Li, Sreeranga P. Rajan, Indradeep Ghosh
-
Patent number: 8225297Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. A multiprocessor has at least one central processing unit. The central processing unit has a cache with cache lines that are augmented by cache metadata. The cache metadata includes software-controlled metadata identifiers that allow multiple logical processors to share the cache metadata. The metadata identifiers and cache metadata can then be used to accelerate various operations. For example, parallel computations can be accelerated using cache metadata and metadata identifiers. As another example, nested computations can be accelerated using metadata identifiers and cache metadata. As yet another example, transactional memory applications that include parallelism within transactions or that include nested transactions can be also accelerated using cache metadata and metadata identifiers.Type: GrantFiled: August 6, 2007Date of Patent: July 17, 2012Assignee: Microsoft CorporationInventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
-
Patent number: 8225402Abstract: A method for detecting a SQL injection attack comprises a training phase and a detection phase. In the training phase, a plurality of SQL queries is transformed into a respective plurality of SQL token domain queries which are processed using a n-gram analysis to provide a threshold and an averaging vector. In the detection phase, each newly arrived SQL query is transformed into a new SQL token domain query, and the n-gram analysis is applied together with the averaging vector and the threshold to each new SQL token domain query to determine if the new SQL query is normal or abnormal. The detection may be online or offline.Type: GrantFiled: April 8, 2009Date of Patent: July 17, 2012Inventors: Amir Averbuch, Aviram Shmueli, Gil David
-
Patent number: 8225296Abstract: A plug-in for execution by an application on a computing device is selected by arranging for a server to iterate through available plug-ins, asking each plug-in in succession if it can better match the criteria required by the application than the previous plug-in. The plug-in having the closest match to the criteria is then executed by the application.Type: GrantFiled: June 8, 2005Date of Patent: July 17, 2012Assignee: Nokia CorporationInventor: Karl McDowall
-
Patent number: 8214813Abstract: A method of optimizing code which invokes methods on a system across an interface is described. High level information relating to the system is accessed and this information is used in performing code transformations in order to optimize the code.Type: GrantFiled: January 12, 2007Date of Patent: July 3, 2012Assignee: Microsoft CorporationInventors: Timothy Harris, Rebecca Isaacs, Eric Koskinen, Richard Mortier
-
Publication number: 20120167040Abstract: A solution for identifying build errors associated with a source code file for determining source code elements for refactoring. An embodiment of the invention utilizes a source code management system in combination with build logs generated by a build environment to determine source code elements that would benefit from refactoring.Type: ApplicationFiled: March 5, 2012Publication date: June 28, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: STEPHEN A. DAVIES, Liam Smyth, Paul Thomas
-
Patent number: 8209662Abstract: Various technologies and techniques are disclosed for retargeting applications to different types. A development environment is provided for writing software. Input is received from a user to write application logic for a project. The user selects an option to save the project as a particular type of project. The application logic is wrapped with metadata appropriate for the particular type of project and at least one resulting file is created. The system determines if the resulting file needs compiled, and if so, compiles the resulting file into a compiled application. A second selection can be received from the user to save the project as a second type. In such a case, the application logic is wrapped with metadata appropriate for the second type of project and at least one resulting file is created.Type: GrantFiled: December 4, 2006Date of Patent: June 26, 2012Assignee: Microsoft CorporationInventors: Adam D. Nathan, John I. Montgomery
-
Patent number: 8205192Abstract: Compiler device for optimizing program which manipulates a character string includes append instruction detection unit, store code generation unit, and append code generation unit. The append instruction detection unit detects an append instruction which appends a character string to a string variable for storing a character string, in the program. The store code generation unit generates, a substitute for each of a plurality of the append instructions detected by the append instruction detection unit, a store code for storing data of an appendant character string to be appended to the string variable by the append instruction into a buffer. The append instructions append the character strings to the same string variable. The append code generation unit generates append code for appending a plurality of the appendant character strings to the string variable, at a position executed before an instruction to refer to the string variable in the program.Type: GrantFiled: November 10, 2008Date of Patent: June 19, 2012Assignee: International Business Machines CorporationInventors: Takeshi Ogasawara, Tamiya Onodera, Mikio Takeuchi