Patents by Inventor Manuel Fahndrich
Manuel 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: 9904541Abstract: 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: GrantFiled: May 9, 2013Date of Patent: February 27, 2018Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Manuel Fahndrich, Shuvendu Lahiri, Francesco Logozzo, Sam Blackshear
-
Patent number: 9436502Abstract: 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: GrantFiled: June 22, 2012Date of Patent: September 6, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Sebastian Burckhardt, Daniel Johannes Pieter Leijen, Manuel A. Fahndrich, Benjamin Paul Wood
-
Patent number: 9104528Abstract: 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: GrantFiled: December 8, 2011Date of Patent: August 11, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Xusheng Xiao, Nikolai Tillmann, Manuel A. Fahndrich, Jonathan Paul de Halleux, Michal J. Moskal
-
Patent number: 8959496Abstract: 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: GrantFiled: April 21, 2010Date of Patent: February 17, 2015Assignee: Microsoft CorporationInventors: Wolfram Schulte, Nikolai Tillmann, Michal J. Moskal, Manuel A. Fahndrich, Daniel J P Leijen, Barend H. Venter
-
Publication number: 20140337819Abstract: 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: ApplicationFiled: May 9, 2013Publication date: November 13, 2014Applicant: Microsoft CorporationInventors: Manuel Fahndrich, Shuvendu Lahiri, Francesco Logozzo, Sam Blackshear
-
Patent number: 8782607Abstract: 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: GrantFiled: February 20, 2009Date of Patent: July 15, 2014Assignee: Microsoft CorporationInventors: 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: 20130151519Abstract: 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: ApplicationFiled: December 7, 2011Publication date: June 13, 2013Applicant: MICROSOFT CORPORATIONInventors: Marat K. Akhin, Nikolai Tillmann, Michal J. Moskal, Jonathan Paul de Halleux, Manuel A. Fahndrich
-
Publication number: 20130152154Abstract: 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: ApplicationFiled: December 8, 2011Publication date: June 13, 2013Applicant: MICROSOFT CORPORATIONInventors: Xusheng Xiao, Nikolai Tillmann, Manuel A. Fahndrich, Jonathan Paul de Halleux, Michal J. Moskal
-
Publication number: 20130055138Abstract: 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: ApplicationFiled: August 25, 2011Publication date: February 28, 2013Applicant: Microsoft CorporationInventors: Jonathan Paul de Halleux, Michal J. Moskal, Nikolai Tillmann, Manuel A. Fahndrich
-
Publication number: 20120265742Abstract: 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: ApplicationFiled: June 22, 2012Publication date: October 18, 2012Applicant: MICROSOFT CORPORATIONInventors: Sebastian Burckhardt, Daniel Johannes Pieter Leijen, Manuel A. Fahndrich, Benjamin Paul Wood
-
Patent number: 8250524Abstract: 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: GrantFiled: December 21, 2007Date of Patent: August 21, 2012Assignee: Microsoft CorporationInventors: Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Wolfram Schulte
-
Patent number: 8074231Abstract: 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: GrantFiled: June 30, 2006Date of Patent: December 6, 2011Assignee: Microsoft CorporationInventors: 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: 20110265067Abstract: 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: ApplicationFiled: April 21, 2010Publication date: October 27, 2011Applicant: Microsoft CorporationInventors: Wolfram Schulte, Nikolai Tillmann, Michal J. Moskal, Manuel A. Fahndrich, Daniel JP Leijen, Barend H. Venter
-
Patent number: 8032898Abstract: 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: GrantFiled: June 30, 2006Date of Patent: October 4, 2011Assignee: Microsoft CorporationInventors: Galen C. Hunt, James R. Larus, Manuel Fähndrich, Bjarne Steensgaard, David R. Tarditi, Brian Zill
-
Patent number: 7882317Abstract: 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: GrantFiled: August 4, 2006Date of Patent: February 1, 2011Assignee: Microsoft CorporationInventors: Galen C. Hunt, Chris K. Hawblitzel, James R. Larus, Manuel A. Fahndrich, Mark Aiken
-
Patent number: 7865934Abstract: 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: GrantFiled: May 18, 2006Date of Patent: January 4, 2011Assignee: Microsoft CorporationInventors: Edward P. Wobber, Manuel A Fahndrich, Ulfar Erlingsson, Martin Abadi
-
Publication number: 20100218169Abstract: 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: ApplicationFiled: February 20, 2009Publication date: August 26, 2010Applicant: MICROSOFT CORPORATIONInventors: 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: 7600232Abstract: 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: GrantFiled: December 7, 2004Date of Patent: October 6, 2009Assignee: Microsoft CorporationInventors: Galen C. Hunt, James R. Larus, Manuel Fahndrich, Edward P. Wobber, Martin Abadi, John D. DeTreville
-
Publication number: 20090164973Abstract: 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: ApplicationFiled: December 21, 2007Publication date: June 25, 2009Applicant: Microsoft CorporationInventors: Michael Barnett, Manuel A. Fahndrich, Brian M. Grunkemeyer, Wolfram Schulte
-
Patent number: 7500232Abstract: 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: GrantFiled: April 29, 2004Date of Patent: March 3, 2009Assignee: Microsoft CorporationInventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof