Patents by Inventor Moria Abadi
Moria Abadi has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20170228011Abstract: A method for optimizing use of location services in mobile applications, comprising: analyzing a computer code executable on a processor of a mobile device; identifying in the computer code program instructions for receiving location data from at least one location service device of the mobile device; analyzing the program instructions according to a set of location request rules to identify program instructions violating at least one of the location request rules; and providing at least one suggested change to the program instructions according to the at least one of the location request rules.Type: ApplicationFiled: February 9, 2016Publication date: August 10, 2017Inventors: Aharon Abadi, Moria Abadi, Mordechai Nisenson
-
Patent number: 9710264Abstract: A method for performing data flow analysis of computer code, comprising: providing computer code of a computer program having a plurality of user interface screens; dividing the computer code to a plurality of portions such that each one of the portions includes code for inducing at least one of loading and using one of the user interface screens; performing a variable usage analysis to detect which variables are at least one of calculated and used in each one of the portions; constructing a data dependence model defining dependencies among the portions based on the variable usage analysis; and identifying, for at least one of the portions and using the data dependence model, at least one unnecessary variable loaded in one of the user interface screens and not used in a respective portion and in a group of portions depending on the respective portion.Type: GrantFiled: October 28, 2013Date of Patent: July 18, 2017Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush
-
Patent number: 9710244Abstract: According to an aspect of some embodiments of the present invention there is provided a computerized method of analyzing code of a software program for dominance relationships between a plurality of functions of the software program, the method comprising: receiving source code of a software program, the source code having a plurality of functions; identifying a plurality of intraprocedural dominator graphs each for another of the plurality of functions; combining the plurality of intraprocedural dominator graphs to create an interprocedural dominance graph with edges that logically connect between nodes of the plurality of functions; identifying a plurality of interprocedural dominance relations between nodes in different functions of the plurality of functions using the interprocedural dominance graph; and analyzing the software program according to the plurality of interprocedural dominance relations.Type: GrantFiled: September 21, 2015Date of Patent: July 18, 2017Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Jonathan Bnayahu, Yishai Feldman
-
Publication number: 20170161060Abstract: Computer implemented method of refactoring JavaScript code for multi-threading concurrent execution, comprising: 1) Designating a source code which includes background code entries indicated by a user as executed in background. 2) Analyzing the source code entries to create a dependency record. 3) Creating a background process comprising the background code entries and removing code entries which read or write from DOM(s). 4) Creating a handler code comprising the write code entries. 5) Creating main code which includes: (a) Remaining code entries not included in the background process and the handler code. (b) Process initiation code initiating the background process. The process initiation code is placed at a process initiation point identified based on the dependency record which follows the read code entries in the source code execution path and precedes the write code entries. 6) Outputting refactored code file(s) which include the background process, handler code and main code.Type: ApplicationFiled: December 3, 2015Publication date: June 8, 2017Inventors: Aharon Abadi, Moria Abadi
-
Publication number: 20170161035Abstract: The present invention, in some embodiments thereof comprises a computer implemented method of detecting global variables in JavaScript code, and adding local variables in place of the global variables, comprising receiving a JavaScript code containing at least one of a plurality of globally defined functions, identifying at least one of: one or more confined global variables which receive a value within a first JavaScript scope wherein the value is not referenced outside of the first JavaScript scope, and one or more repeating global variables accessed repeatedly within a second JavaScript scope, and adding local variables in place of at least one of the confined global variables and the repeating global variables.Type: ApplicationFiled: December 3, 2015Publication date: June 8, 2017Inventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush, Yishai A. Feldman
-
Publication number: 20170147475Abstract: Embodiments of the present invention provide a method and system for finding uninitialized variables outside the local scope. Initially, a source code of a program is received. The source code may include multiple functions. A checked scope is determined for at least one variable in the source code. The checked scope includes a local scope. Additionally, the local scope is accessed using at least one function call of the functions. Static analysis is run, covering the checked scope for the at least one variable in the source code. At least one inter-procedural dependency is identified to determine whether the at least one variable in the local scope is uninitialized. Responsive to determining that the at least one variable in the local scope is uninitialized the at least one variable is displayed to a user.Type: ApplicationFiled: November 25, 2015Publication date: May 25, 2017Inventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush, Yishai A. Feldman
-
Publication number: 20170091073Abstract: A computer implemented method of detecting code antipatterns, comprising: 1) Receiving a code containing one or more of a plurality of code segments, each one of the one or more code segments includes one or more of a plurality of patterns. 2) Automatically analyzing each one of the one or more code segment to create an array of a plurality of features vectors, each one of the plurality of features vectors maps a plurality of predefined features found in one or more patterns. 3) Matching each one of the plurality of features vectors with a plurality of template features vectors each representing one of a plurality of antipatterns, the plurality of template features vectors is stored in an antipatterns dataset. 4) Determining a presence or an absence of each of the plurality of antipatterns within each of the one or more code segments according to the matching.Type: ApplicationFiled: September 30, 2015Publication date: March 30, 2017Inventors: Aharon Abadi, Moria Abadi, Omer Tripp
-
Publication number: 20170060733Abstract: A method of determining code coverage of an application by test(s) (wherein code may include UI elements). The method comprises executing a code test on at least one portion of a tested code of an application in one or more iterations, wherein in each one of the plurality of iterations, selecting at least one of a plurality of atomic code elements of the tested code, applying the code test on a version of the code that does not include the at least one selected atomic element, and classifying the at least one selected atomic element as covered by the code test when the code test fails and as not covered in the code test when the code test passes.Type: ApplicationFiled: August 31, 2015Publication date: March 2, 2017Inventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush, Samuel Kallner
-
Patent number: 9477448Abstract: Techniques for refactoring a screen-oriented computing program are described herein. The techniques include a method that identifies screens of the computing program, and determines a starting point of the computing program based on the identified screens. The techniques include refactoring the computing program based on the starting point and the identified screens.Type: GrantFiled: October 27, 2013Date of Patent: October 25, 2016Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush
-
Patent number: 9424006Abstract: According to an aspect of some embodiments of the present invention there is provided a method for changing a program code to decrease execution time. The method comprises an action of receiving a program code, comprising function calls, with an entry and a target function. The method comprises analyzing the function calls between the entry function and the target function. A first program code is generated, comprising some of the function calls executed before the target function. A second program code is generated, comprising some of the function calls executed after the target function. The function calls executed before the target function are replaced with the first program code. The function calls executed after the target function are removed. The second program code is added to the program code to execute after the target function as a background process.Type: GrantFiled: December 24, 2014Date of Patent: August 23, 2016Assignee: International Business Machines Corporation.Inventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush
-
Publication number: 20160188435Abstract: Methods, storage systems and computer program products implement embodiments of the present invention that include receiving, by a computer, source code for an application, the source code including multiple instructions to be executed in a single thread. A first static analysis is performed on the application source code in order to identify a given instruction including an asynchronous handler, and a plurality of entry points to the application. Based on the static analysis, an order of execution of the multiple instructions is determined, and an intermediate representation is generated that includes the multiple instructions arranged in the determined order of execution. In some embodiments, a second static analysis can be performed on the intermediate representation that can identify an anti-pattern in the intermediate representation, and then correct the anti-pattern in the source code.Type: ApplicationFiled: December 29, 2014Publication date: June 30, 2016Inventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush
-
Publication number: 20160188304Abstract: According to an aspect of some embodiments of the present invention there is provided a method for changing a program code to decrease execution time. The method comprises an action of receiving a program code, comprising function calls, with an entry and a target function. The method comprises analyzing the function calls between the entry function and the target function. A first program code is generated, comprising some of the function calls executed before the target function. A second program code is generated, comprising some of the function calls executed after the target function. The function calls executed before the target function are replaced with the first program code. The function calls executed after the target function are removed. The second program code is added to the program code to execute after the target function as a background process.Type: ApplicationFiled: December 24, 2014Publication date: June 30, 2016Inventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush
-
Publication number: 20160188650Abstract: According to an aspect, a content fragment of a legacy model file is mapped via a processor to a plurality of web files. A change to the content fragment of the legacy model file is detected by the processor. One or more modified web files corresponding to the changed content fragment is generated by the processor. The one or more modified web files corresponding to the detected changes in the content fragment of the legacy model file are sent via the processor to a remote computing device.Type: ApplicationFiled: October 19, 2015Publication date: June 30, 2016Inventors: Moria Abadi, Yuval Gil, David Hirsch, Alexander Rekhter
-
Publication number: 20160188651Abstract: According to an aspect, a content fragment of a legacy model file is mapped via a processor to a plurality of web files. A change to the content fragment of the legacy model file is detected by the processor. One or more modified web files corresponding to the changed content fragment is generated by the processor. The one or more modified web files corresponding to the detected changes in the content fragment of the legacy model file are sent via the processor to a remote computing device.Type: ApplicationFiled: December 31, 2014Publication date: June 30, 2016Inventors: Moria Abadi, Yuval Gil, David Hirsch, Alexander Rekhter
-
Publication number: 20160182654Abstract: A computer-implemented method, a computerized apparatus and a computer program product, the method comprising: receiving a program to be executed on a mobile device; building a data structure representing states within the program and transitions between the states; and based on the data structure, determining by a processor a location of at least one command related to using data retrieved from a server, such that at least one fetching command is to be provided for the data to be available when execution reaches the location.Type: ApplicationFiled: December 17, 2014Publication date: June 23, 2016Inventors: Aharon Abadi, Moria Abadi, Jonathan Bnayahu, Idan Ben-Harrush
-
Patent number: 9280446Abstract: Disclosed are methods for finding all valid paths in a COBOL program. These methods are performed in polynomial time, allowing them to be scaled to accommodate large COBOL programs. As the methods find all valid paths in COBOL program code, by traversing and marking the nodes of the program upon being traversed. Accordingly, all usable and reachable code is indicated and marked. This increases safety when working with the code, as removal or alteration of such valid code is indicated, and thus, made unlikely.Type: GrantFiled: March 3, 2014Date of Patent: March 8, 2016Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Ran Ettinger, Yishai Feldman
-
Publication number: 20160011956Abstract: According to an aspect of some embodiments of the present invention there is provided a computerized method of analyzing code of a software program for dominance relationships between a plurality of functions of the software program, the method comprising: receiving source code of a software program, the source code having a plurality of functions; identifying a plurality of intraprocedural dominator graphs each for another of the plurality of functions; combining the plurality of intraprocedural dominator graphs to create an interprocedural dominance graph with edges that logically connect between nodes of the plurality of functions; identifying a plurality of interprocedural dominance relations between nodes in different functions of the plurality of functions using the interprocedural dominance graph; and analyzing the software program according to the plurality of interprocedural dominance relations.Type: ApplicationFiled: September 21, 2015Publication date: January 14, 2016Inventors: Aharon Abadi, Moria Abadi, Jonathan Bnayahu, Yishai Feldman
-
Patent number: 9195458Abstract: According to an aspect of some embodiments of the present invention there is provided a computerized method of analyzing code of a software program for dominance relationships between a plurality of functions of the software program, the method comprising: receiving source code of a software program, the source code having a plurality of functions; identifying a plurality of intraprocedural dominator graphs each for another of the plurality of functions; combining the plurality of intraprocedural dominator graphs to create an interprocedural dominance graph with edges that logically connect between nodes of the plurality of functions; identifying a plurality of interprocedural dominance relations between nodes in different functions of the plurality of functions using the interprocedural dominance graph; and analyzing the software program according to the plurality of interprocedural dominance relations.Type: GrantFiled: July 31, 2013Date of Patent: November 24, 2015Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Jonathan Bnayahu, Yishai Feldman
-
Publication number: 20150248342Abstract: Disclosed are methods for finding all valid paths in a COBOL program. These methods are performed in polynomial time, allowing them to be scaled to accommodate large COBOL programs. As the methods find all valid paths in COBOL program code, by traversing and marking the nodes of the program upon being traversed. Accordingly, all usable and reachable code is indicated and marked. This increases safety when working with the code, as removal or alteration of such valid code is indicated, and thus, made unlikely.Type: ApplicationFiled: March 3, 2014Publication date: September 3, 2015Applicant: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Ran Ettinger, Yishai Feldman
-
Patent number: 9069562Abstract: Techniques for computer program slicing are described herein. The techniques include screens of a mobile computing program having a behavior. The method may include determining a subset of screens associated with the behavior. A slice of the mobile computing program may be generated based on the subset of screens of the mobile computing program such that the slice produces the same behavior of the mobile computing program.Type: GrantFiled: October 23, 2013Date of Patent: June 30, 2015Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Idan Ben-Harrush