Patent application number | Description | Published |
20100228796 | MEMORY MANAGEMENT OF SOFT REFERENCES - A garbage collector determines a target amount of heap space to deallocate, estimates an amount of heap space reachable by a plurality of soft references by determining a cumulative size of no more than an exploration bound N number of objects reachable from each soft reference, and deallocates heap space based on the target amount and the estimate of the heap space reachable from the soft references. Deallocating heap space may include clearing at least one soft reference. If the estimate is inaccurate, it may be utilized regardless or modified to account for inaccuracy. The least-recently-used or the largest soft reference may be cleared until the total cleared space reachable exceeds the target amount. By performing a bounded analysis, the garbage collector may be able to make a more informed decision about whether to clear a soft reference without consuming the full amount of resources consumed by an exhaustive analysis. | 09-09-2010 |
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 |
20120072905 | JAVA STORE - A computer readable medium including computer readable code for causing a computer system to perform a method. The method includes receiving an application, receiving application information for the application, and determining an access privilege for the application based, in part, on the application information. The method also includes generating a deployment package for the application using the application and the access privilege, and publishing the application. | 03-22-2012 |
20120096264 | JAVA STORE TELEVISION - A non-transitory computer readable storage medium including computer readable code that, when executed by a processor, is configured to receive, from a user network device, a first request to execute an application on the user network device. The first request includes a user identification, routing information, and requested application information, encrypted using a public key. The user network device is configured to display the application on a television display device. The code is further configured to decrypt the routing information and requested application information using a private key, send a second request for subscription information to a service provider, receive the subscription information from the service provider, and determine that a license corresponding to the application is associated with the user. The code is further configured to generate and send an application package configured to deploy the application using a Java Runtime Environment on the user network device. | 04-19-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 |
20140019947 | SYSTEM AND METHOD FOR SUPPORTING COMPATIBILITY CHECKING FOR LAMBDA EXPRESSION - A system and method can support compatibility checking in a programming language environment. The programming language environment can check whether a target type associated with an expression in the programming language environment is functional, wherein the target type is functional when it has exactly one method meeting one or more criteria that define that method as relevant in a counting system. Then, the programming language environment can derive a function descriptor from the target type, which is context-dependent. Furthermore, the programming language environment can type-check the expression with the function descriptor associated with the target type. | 01-16-2014 |
20140019948 | SYSTEM AND METHOD FOR COMPILING LAMBDA EXPRESSION IN A PROGRAMMING LANGUAGE ENVIRONMENT - A system and method can support context-dependent expression compilation in a programming language environment. A compiler in the programming language environment can provide one or more context objects that operate to compile various context-dependent expressions in different programming contexts. Then, the compiler can use a said context object to derive a target type associated with a context-dependent expression, and use the context object to perform compatibility check for the context-dependent expression in the programming language environment. | 01-16-2014 |
20140040666 | SYSTEMS AND METHODS FOR FEEDBACK DRIVEN REGRESSION TESTING - Systems and methods for automatically testing one or more versions of a compiler of are disclosed. A compiler is instrumented to generated data exposing various internal decisions and/or actions made by the compiler. Subsequently, multiple distinct versions of the compiler are executed to compile a code corpus associated with a particular programming language. Output (including instrumentation output) from the compilation of the code corpus for each version of the compiler is obtained and compared to identify behavioral changes that may exist between the various versions of the compiler. | 02-06-2014 |
20140040872 | SYSTEMS AND METHODS FOR TESTING A COMPILER THROUGH COMPILE-TIME DECISION FEEDBACK - Systems and methods for automatic generation of one or more test programs to be used in conjunction with a test framework for testing a compiler are disclosed. A compiler is instrumented to generated data exposing various internal decisions and/or actions made by the compiler. A test program is generated by test framework and compiled by the compiler and the output is validated by the test framework to ensure that the compiler is behaving according to its compiler specification. | 02-06-2014 |
20140123109 | SYSTEM AND METHOD FOR TESTING COMPILER IMPLEMENTATION USING DYNAMIC COMBINATORIAL TEST GENERATION - A system and method can support compiler testing in a programming language environment. The programming language environment can include a testing framework that can provide a program template based on a programming language that is targeted by a compiler implementation to be tested. Furthermore, the testing framework can generate a plurality of sub-tests that contains different variations in the test space based on the program template, and can use the compiler implementation to be tested to compile the generated sub-tests. Finally, the testing framework can check the output of the compiler implementation to be tested against the expected output for the generated sub-tests. | 05-01-2014 |
20140123118 | SYSTEM AND METHOD FOR INFERRING IMMUTABILITY OF PROGRAM VARIABLES - In accordance with various embodiments, systems and methods are provided which facilitate inferring immutability of variables. A compiler analyzes local variables within source code to determine whether they are immutable. In particular embodiments the compiler examines locations where each variable is assigned to determine whether the variable was definitely unassigned before the assignment. Because the compiler can infer whether a local variable is immutable, it is possible for the programmer to avoid using a keyword to expressly declare the local variable as immutable. Inferring immutability of variables, thus, maintains correctness of the compiled code while reducing the burden on the programmer. | 05-01-2014 |
20140137087 | Target Typing of Overloaded Method and Constructor Arguments - Methods and apparatus for target typing of overloaded method and constructor arguments are described. A method comprises determining whether source code of a program includes, as an argument to an overloaded operation invocation, an expression whose type is context-dependent. The method further comprises, if the source code includes such an argument, providing the expression as an input to an overload resolver, and determining at the overload resolver whether (a) each argument of the invocation is compatible with types of corresponding parameters in one or more declarations and (b) whether a particular declaration among such a set of declarations can be identified as the most specific. If both conditions are met, the method comprises generating executable instructions for the invocation. | 05-15-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 |