Patent application number | Description | Published |
20110029960 | ENCAPSULATING AND MANAGING DIAGNOSTIC INFORMATION - The disclosed embodiments provide a system that encapsulates and manages diagnostic information. During operation, the system detects an event that generates diagnostic information, and stores this diagnostic information in a format that preserves semantic information associated with the event. The system also determines an output context (e.g., the intended target environment) for the diagnostic information, and then uses the preserved semantic information to output the diagnostic information in a context-sensitive format suited for the output context. Note that outputting customized diagnostic information that is adapted to a specific target environment facilitates improving the quality of diagnostic information presented to a user. | 02-03-2011 |
20110099535 | Encoding Switch on Ordered Universes with Binary Decision Diagrams - Various embodiments herein include one or more of systems, methods, software, and/or data structures to implement a multi-way branch statement in a computer programming language. The multi-way branch statement may include a plurality of case labels each having a non-primitive data type (e.g., strings) and being associated with a block of code to be executed dependent upon a control variable that also has a non-primitive data type. The implementation may include encoding the case labels for the multi-way branch statement as a binary decision diagram (BDD), such as a zero-suppressed binary decision diagram (ZDD), wherein the control variable for the multi-way branch statement may be compared with the case labels by stepping through the BDD. The BDD may include identifiers that provide information regarding which of the case labels is matched by the control variable, such that an appropriate code block may be executed. | 04-28-2011 |
20110179402 | METHOD AND SYSTEM FOR COMPILING A DYNAMICALLY-TYPED METHOD INVOCATION IN A STATICALLY-TYPED PROGRAMMING LANGUAGE - A method for compiling source code, involving: obtaining a statement of the source code comprising a method call, where the source code is composed in a statically-typed programming language; determining whether the method call is a dynamic method call; upon determining that the method call is a dynamic method call, compiling a dynamic method invocation without performing type checking on the method call; upon determining that the method call is not a dynamic method call: performing type checking on the method call, selecting a target method to invoke, and compiling a static method invocation to invoke the target method. | 07-21-2011 |
20110185344 | CHARACTERIZING ARTIFICIALITY IN OBJECT CODE - One embodiment of the present invention provides a system that characterizes content in object code. During operation, the system receives the source code of a program. The system also receives one or more pieces of object code of the program, or creates one or more pieces of object code from the source code. Next, the system identifies a construct in the object code. The system then determines whether the construct is physically present in the source code. If the construct is not physically present, the system determines whether the construct is logically present in the source code, wherein a construct is logically present if it is required by the programming language. If so, the system sets a construct flag to indicate that the construct is “synthesized.” However, if not, the system sets the construct flag to indicate that the construct is “synthetic.” Finally, the construct flag is made available to a reflective API. | 07-28-2011 |
20110271251 | ACCESS CONTROL IN MODULES FOR SOFTWARE DEVELOPMENT - The disclosed embodiments provide a system that provides access control for a software program. During operation, the system identifies a member of a module to be used in the software program. Next, the system infers the visibility of the member based on the accessibility of the member. Finally, the system uses the visibility and the accessibility to provide access control during the life cycle of the software program. | 11-03-2011 |
20110271254 | POLYPHASIC MODULES FOR SOFTWARE DEVELOPMENT - The disclosed embodiments provide a system that facilitates the development and maintenance of a software program. This system includes a software development kit (SDK) and a runtime system for the software program. During operation, the system associates classes of the software program with module declarations for a set of modules and uses the module declarations to manage dependencies in the software program throughout the life cycle of the software program. | 11-03-2011 |
20110321019 | COMPILE-TIME MANAGEMENT OF POLYPHASIC MODULES - The disclosed embodiments provide a system that facilitates the compilation of a software program. During operation, the system uses a directory hierarchy for the software program to infer a compilation unit to be used in the software program as a member of a module. Next, the system obtains a module declaration for the module using the directory hierarchy. Finally, the system enables compilation of the software program by dynamically identifying and locating one or more dependencies of the module using the module declaration and the directory hierarchy. | 12-29-2011 |
20120005660 | Type Inference of Partially-Specified Parameterized Types - A compiler receives source code for a program and determines that the code includes a declaration expression and an initialization expression in an assignment context. The declaration expression introduces a variable and specifies part of a parameterized type for the variable but not another part of the parameterized type. A parameterized type may include a ground type part and one or more type arguments; in a declaration expression, the specified part of the parameterized type may include a ground type and the unspecified part may include one or more of the type arguments. The initialization expression specifies an initial value for the variable, where the value has a parameterized type. The assignment context associates the declared variable with the initial value. The compiler infers the type for the variable based at least on the part specified in the declaration expression and on the type specified by the initialization expression. | 01-05-2012 |
20120096433 | DEPENDENCY RESOLUTION IN POLYPHASIC MODULES - Some embodiments provide a system that facilitates the development, maintenance, and execution of a software program. During operation, the system obtains a module declaration for a module to be used in the software program. Next, the system resolves one or more dependencies of the module using the module declaration and a list of available modules for the software program. Finally, the system uses the resolved dependencies to manage the software program throughout the life cycle of the software program. | 04-19-2012 |
20120117538 | CHARACTERIZING INTERFACE EVOLUTION AND CONSUMER ROLES IN MODULE SYSTEMS - The disclosed embodiments provide a system that facilitates the development and maintenance of a software program. This system includes a software development kit (SDK) and a runtime system for the software program. During operation, the system obtains a role associated with a dependency of a consumer in the software program on an interface. Next, the system obtains a compatibility policy for the interface. Finally, the system uses the role and the compatibility policy to manage use of the interface by the consumer in the software program. | 05-10-2012 |
20120210308 | BINDING-BASED CHARACTERIZATION OF CLOSURES IN SOFTWARE PROGRAMS - The disclosed embodiments provide a system that facilitates the compilation and execution of a software program. During operation, the system obtains a closure from source code for the software program. Next, the system characterizes a type of the closure based on a mutability of one or more variables captured by the closure. Finally, the system encodes the type into a compiled form of the closure to facilitate subsequent execution of the closure in a multithreaded environment. | 08-16-2012 |
20120210320 | PREVENTING UNSAFE SHARING THROUGH CONFINEMENT OF MUTABLE CAPTURED VARIABLES - The disclosed embodiments provide a system that facilitates the development and execution of a software program. During operation, the system provides a mechanism for restricting a variable to a runtime context in the software program. Next, the system identifies the runtime context during execution of the software program. Finally, the system uses the mechanism to prevent incorrect execution of the software program by ensuring that a closure capturing the variable executes within the identified runtime context. | 08-16-2012 |
20120272214 | INTERFACE METHOD RESOLUTION FOR VIRTUAL EXTENSION METHODS - The disclosed embodiments provide a system that facilitates the development and execution of a software program. During operation, the system obtains, from the software program, a method call associated with one or more interfaces containing a virtual extension method. Next, the system resolves the method call by obtaining a method implementation corresponding to the method call from at least one of an inheritance hierarchy associated with the method call and the virtual extension method. | 10-25-2012 |
20130174133 | ADAPTIVE SELECTION OF PROGRAMMING LANGUAGE VERSIONS FOR COMPILATION OF SOFTWARE PROGRAMS - The disclosed embodiments provide a system that facilitates the development and compilation of a software program. During operation, the system obtains a set of compilation units to be used in the software program and a version order associated with a programming language of the compilation units. Next, for each compilation unit from the set of compilation units, the system uses the version order to select a version of the programming language that is compatible with the compilation unit. The system then uses the version to compile the compilation unit. | 07-04-2013 |
20140040860 | Efficient and Expansive Conversions Between Reference and Primitive - A tool, such as a compiler or an interpreter, receives program source code and determines that the code includes an operation for which type conversion is permitted on an operand. The tool determines a source type of the operand, and a target type to which the operand is to be converted. In response to determining that the source type is a reference type and the target type is a primitive type, the tool generates a set of instructions to (a) determine whether, at run time, in accordance with a class definition of the reference type, a value of the target primitive type can be obtained via one or more method invocations on the operand (b) if such a value can be obtained, obtain the value and assign the value to a result of the operation and (c) if such a value cannot be obtained, generate an error indication. | 02-06-2014 |
20140208323 | PREVENTING UNSAFE SHARING THROUGH CONFINEMENT OF MUTABLE CAPTURED VARIABLES - The disclosed embodiments provide a system that facilitates the development and execution of a software program. During operation, the system provides a mechanism for restricting a variable to a runtime context in the software program. Next, the system identifies the runtime context during execution of the software program. Finally, the system uses the mechanism to prevent incorrect execution of the software program by ensuring that a closure capturing the variable executes within the identified runtime context. | 07-24-2014 |