Patents by Inventor Manuel A. Fahndrich

Manuel A. Fahndrich 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).

  • Patent number: 9904541
    Abstract: Described herein are technologies pertaining to semantic baselining. Correctness conditions of a baseline program are inferred based upon a first static analysis undertaken over the baseline program. The correctness conditions are subsequently inserted into a revision to the baseline program. When a second static analysis is undertaken over the revised program with the correctness conditions inserted therein, warnings inherited from the baseline program are suppressed, while warnings caused by revisions are surfaced to a developer.
    Type: Grant
    Filed: May 9, 2013
    Date of Patent: February 27, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Manuel Fahndrich, Shuvendu Lahiri, Francesco Logozzo, Sam Blackshear
  • Patent number: 9436502
    Abstract: An “Eventually Consistent Sharing Model” provides various techniques for using “revision diagrams” to determine both arbitration and visibility of changes or updates to shared data (e.g., data, databases, lists, etc.) without requiring a causally consistent partial order for visibility, and without requiring change or update timestamps for arbitration. In particular, the Eventually Consistent Sharing Model provides fork-join automata based on revision diagrams to track the forking and joining of data versions, thereby tracking updates made to replicas of that data by one or more sources. “Cloud types” are used to define a structure of the shared data that enables fully automatic conflict resolution when updating the shared data.
    Type: Grant
    Filed: June 22, 2012
    Date of Patent: September 6, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sebastian Burckhardt, Daniel Johannes Pieter Leijen, Manuel A. Fahndrich, Benjamin Paul Wood
  • Patent number: 9104528
    Abstract: A privacy control system is described herein for controlling dissemination of private information by a program. The privacy control system operates by performing static analysis to determine at least one flow within the program of private information, from a source to a sink. The static analysis is particularly configured to identify two types of flow, including: (a) an unvetted flow of untampered private information from the source to the sink; and (b) a flow of tampered private information from the source to the sink, whether vetted or unvetted. The privacy control system then prompts the user to provide a privacy control decision regarding the flow. The privacy control decision governs whether actual data or anonymized data is provided to the sink, or whether the program is terminated. A runtime system then runs the program in accordance with the privacy control decision.
    Type: Grant
    Filed: December 8, 2011
    Date of Patent: August 11, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Xusheng Xiao, Nikolai Tillmann, Manuel A. Fahndrich, Jonathan Paul de Halleux, Michal J. Moskal
  • Patent number: 8959496
    Abstract: A tracing just-in-time (TJIT) compiler system is described for performing parallelization of code in a runtime phase in the execution of code. Upon detecting a hot loop during the execution of the code, the compiler system extracts trace information from sequentially recorded traces. In a first phase, the compiler system uses the trace information to identify at least one group of operation components that can be operated on in a parallel manner. In a second phase, the compiler system provides instructions which allocate the group of operation components to plural processing resources. A native code generator module carries out those instructions by recompiling native code that directs the operation of a native system to perform parallel processing. The compiler system terminates a group if it encounters program data in a loop iteration that is not consistent with previously encountered predicated information (upon which it records a new trace in a sequential manner).
    Type: Grant
    Filed: April 21, 2010
    Date of Patent: February 17, 2015
    Assignee: Microsoft Corporation
    Inventors: Wolfram Schulte, Nikolai Tillmann, Michal J. Moskal, Manuel A. Fahndrich, Daniel J P Leijen, Barend H. Venter
  • Publication number: 20140337819
    Abstract: Described herein are technologies pertaining to semantic baselining. Correctness conditions of a baseline program are inferred based upon a first static analysis undertaken over the baseline program. The correctness conditions are subsequently inserted into a revision to the baseline program. When a second static analysis is undertaken over the revised program with the correctness conditions inserted therein, warnings inherited from the baseline program are suppressed, while warnings caused by revisions are surfaced to a developer.
    Type: Application
    Filed: May 9, 2013
    Publication date: November 13, 2014
    Applicant: Microsoft Corporation
    Inventors: Manuel Fahndrich, Shuvendu Lahiri, Francesco Logozzo, Sam Blackshear
  • Patent number: 8782607
    Abstract: An error handling system is described herein that provides a facility for controlling the behavior of software when the software violates a contract condition. The system provides configurable runtime behavior that takes place when a contract fails. The error handling system provides an event that a hosting application or other software code can register to handle and that the system invokes upon detecting a contract failure. The application's response to the event determines how the system handles the failure. If the event is unhandled, the system triggers an escalation policy that allows an administrator or application to specify how the system handles contract failures. Thus, the error handling system provides increased control over the handling of contract failures within software code.
    Type: Grant
    Filed: February 20, 2009
    Date of Patent: July 15, 2014
    Assignee: Microsoft Corporation
    Inventors: Melitta L. G. Andersen, Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Katherine E. King, Michael M. Magruder, Andrew J. Pardoe, Kumar Gaurav Khanna
  • Publication number: 20130151519
    Abstract: A marketplace system is described herein for ranking programs based, at least in part, on the assessed distinctiveness of the programs. In one implementation, the marketplace operates by: (a) accessing a set of programs; (b) extracting feature information from each of the programs; (c) generating similarity information for each program, based on the feature information; (d) ranking the programs based at least on the similarity information, to provide ranking information; and (e) providing a user interface presentation that has an effect of promoting at least one distinctive program in the set of applications on the basis of the ranking information.
    Type: Application
    Filed: December 7, 2011
    Publication date: June 13, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Marat K. Akhin, Nikolai Tillmann, Michal J. Moskal, Jonathan Paul de Halleux, Manuel A. Fahndrich
  • Publication number: 20130152154
    Abstract: A privacy control system is described herein for controlling dissemination of private information by a program. The privacy control system operates by performing static analysis to determine at least one flow within the program of private information, from a source to a sink The static analysis is particularly configured to identify two types of flow, including: (a) an unvetted flow of untampered private information from the source to the sink; and (b) a flow of tampered private information from the source to the sink, whether vetted or unvetted. The privacy control system then prompts the user to provide a privacy control decision regarding the flow. The privacy control decision governs whether actual data or anonymized data is provided to the sink, or whether the program is terminated. A runtime system then runs the program in accordance with the privacy control decision.
    Type: Application
    Filed: December 8, 2011
    Publication date: June 13, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Xusheng Xiao, Nikolai Tillmann, Manuel A. Fahndrich, Jonathan Paul de Halleux, Michal J. Moskal
  • Publication number: 20130055138
    Abstract: Editing functionality is described herein for creating a structured data item by dynamically presenting a key arrangement that is deemed suitable at each instance of an editing session. Each key is associated with a component of the structured data item. Upon activation of one of these keys, the editing functionality adds a corresponding component to the item being created. The editing functionality can be implemented on any user device, but is particularly suited for implementation on a handheld computing device having a limited input mechanism and a display mechanism.
    Type: Application
    Filed: August 25, 2011
    Publication date: February 28, 2013
    Applicant: Microsoft Corporation
    Inventors: Jonathan Paul de Halleux, Michal J. Moskal, Nikolai Tillmann, Manuel A. Fahndrich
  • Publication number: 20120265742
    Abstract: An “Eventually Consistent Sharing Model” provides various techniques for using “revision diagrams” to determine both arbitration and visibility of changes or updates to shared data (e.g., data, databases, lists, etc.) without requiring a causally consistent partial order for visibility, and without requiring change or update timestamps for arbitration. In particular, the Eventually Consistent Sharing Model provides fork-join automata based on revision diagrams to track the forking and joining of data versions, thereby tracking updates made to replicas of that data by one or more sources. “Cloud types” are used to define a structure of the shared data that enables fully automatic conflict resolution when updating the shared data.
    Type: Application
    Filed: June 22, 2012
    Publication date: October 18, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Sebastian Burckhardt, Daniel Johannes Pieter Leijen, Manuel A. Fahndrich, Benjamin Paul Wood
  • Patent number: 8250524
    Abstract: In one embodiment, a computer system provides an application programming interface (API) for augmenting an application API. A computer system receives software code written in a second programming language indicating a user's intention to augment an application API with contracts from a contract API written in a first programming language. The software code includes a reference to the contract API. The contracts include assertions indicating appropriate use of the application API. The computer system accesses portions of the contract API according to the reference in the software code and compiles the received software code and the referenced portions of the contract API into an intermediate language (IL) version of the software code. The IL version is in an intermediate language common to both the first programming language and the second programming language. The IL version includes the assertions indicating appropriate use of the application API.
    Type: Grant
    Filed: December 21, 2007
    Date of Patent: August 21, 2012
    Assignee: Microsoft Corporation
    Inventors: Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Wolfram Schulte
  • Patent number: 8074231
    Abstract: In some implementations, the operations of a software system may include the execution of untrusted device drivers. The execution of an untrusted device driver may be initiated when an untrusted device driver that is a set of executable instructions is obtained. A computing resource for the execution of the device driver may be further determined from a device-driver manifest of the untrusted device driver. Computing resources may include one or more of a hardware resource, a memory, an input/output port, an interrupt request line, and an inter-process communication channel. Trusted local access objects may be used by the untrusted device driver to access the computing resources.
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: December 6, 2011
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel A Fähndrich, Orion Hodson, David R. Tarditi, Michael Spear, Michael Carbin, Steven P. Levi, Bjame Steensgaard
  • Publication number: 20110265067
    Abstract: A tracing just-in-time (TJIT) compiler system is described for performing parallelization of code in a runtime phase in the execution of code. Upon detecting a hot loop during the execution of the code, the compiler system extracts trace information from sequentially recorded traces. In a first phase, the compiler system uses the trace information to identify at least one group of operation components that can be operated on in a parallel manner. In a second phase, the compiler system provides instructions which allocate the group of operation components to plural processing resources. A native code generator module carries out those instructions by recompiling native code that directs the operation of a native system to perform parallel processing. The compiler system terminates a group if it encounters program data in a loop iteration that is not consistent with previously encountered predicated information (upon which it records a new trace in a sequential manner).
    Type: Application
    Filed: April 21, 2010
    Publication date: October 27, 2011
    Applicant: Microsoft Corporation
    Inventors: Wolfram Schulte, Nikolai Tillmann, Michal J. Moskal, Manuel A. Fahndrich, Daniel JP Leijen, Barend H. Venter
  • Patent number: 8032898
    Abstract: Described herein are one or more implementations that separate kernel interfaces functions into those that act on kernel objects owned by a process and accessed exclusively by that process—described herein as local kernel objects—from access to kernel objects owned by a process and accessible by other active processes.
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: October 4, 2011
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel Fähndrich, Bjarne Steensgaard, David R. Tarditi, Brian Zill
  • Patent number: 7882317
    Abstract: A first plurality of operating system processes is assigned to a first protection domain, and a second plurality of operating system processes is assigned to a second protection domain. One or more hardware protection mechanisms are used to prevent the first plurality of operating system processes from accessing the memory space of the second plurality of operating system processes, and also to prevent the second plurality of operating system processes from accessing the memory space of the first plurality of operating system processes.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: February 1, 2011
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, Chris K. Hawblitzel, James R. Larus, Manuel A. Fahndrich, Mark Aiken
  • Patent number: 7865934
    Abstract: Described herein are one or more implementations that facilitate message-passing over a communication conduit between software processes in a computing environment. More particularly, the implementations described restrict access of one process to another via messages passed over a particular conduit connecting the processes and the access-control restrictions are defined by a contract associated with that particular conduit.
    Type: Grant
    Filed: May 18, 2006
    Date of Patent: January 4, 2011
    Assignee: Microsoft Corporation
    Inventors: Edward P. Wobber, Manuel A Fahndrich, Ulfar Erlingsson, Martin Abadi
  • Publication number: 20100218169
    Abstract: An error handling system is described herein that provides a facility for controlling the behavior of software when the software violates a contract condition. The system provides configurable runtime behavior that takes place when a contract fails. The error handling system provides an event that a hosting application or other software code can register to handle and that the system invokes upon detecting a contract failure. The application's response to the event determines how the system handles the failure. If the event is unhandled, the system triggers an escalation policy that allows an administrator or application to specify how the system handles contract failures. Thus, the error handling system provides increased control over the handling of contract failures within software code.
    Type: Application
    Filed: February 20, 2009
    Publication date: August 26, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Melitta L. G. Andersen, Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Katherine E. King, Michael M. Magruder, Andrew J. Pardoe, Kumar Gaurav Khanna
  • Patent number: 7600232
    Abstract: Described herein is an implementation of an inter-process communications technology. One or more implementations, described herein, facilitate creation of a bi-directional message conduit having exactly two endpoints. A first endpoint is owned by a first software process and a second endpoint is owned by a second software process. One or more implementations, described herein, maintain the bi-directional message conduit for passing multiple messages via the bi-directional message conduit from the first process to the second process, according to established rules that can be checked.
    Type: Grant
    Filed: December 7, 2004
    Date of Patent: October 6, 2009
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, James R. Larus, Manuel Fahndrich, Edward P. Wobber, Martin Abadi, John D. DeTreville
  • Publication number: 20090164973
    Abstract: In one embodiment, a computer system provides an application programming interface (API) for augmenting an application API. A computer system receives software code written in a second programming language indicating a user's intention to augment an application API with contracts from a contract API written in a first programming language. The software code includes a reference to the contract API. The contracts include assertions indicating appropriate use of the application API. The computer system accesses portions of the contract API according to the reference in the software code and compiles the received software code and the referenced portions of the contract API into an intermediate language (IL) version of the software code. The IL version is in an intermediate language common to both the first programming language and the second programming language. The IL version includes the assertions indicating appropriate use of the application API.
    Type: Application
    Filed: December 21, 2007
    Publication date: June 25, 2009
    Applicant: Microsoft Corporation
    Inventors: Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Wolfram Schulte
  • Patent number: 7500232
    Abstract: Methods and structures are described that enhance flow analysis for programs. Whereas previous methods are complicated by the presence of function pointers, the present methods present a framework that abstracts function pointers as if they were any other program expressions so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes inferring types from a program, forming a type graph from the types, and forming a flow graph from the type graph to inhibit imprecise paths so as to enhance context-sensitivity of flow analysis. The methods may be used in any analysis tools such as code browsers and slicing tools.
    Type: Grant
    Filed: April 29, 2004
    Date of Patent: March 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof