Legal claims defining the scope of protection, as filed with the USPTO.
1. A user terminal device comprising: a communicator configured to communicate with at least one server; a storage; and a processor configured to: download a first application among a plurality of applications from an external device to install in the user terminal device; install the first application in the user terminal device; identify whether the installed first application is a dynamic application created based on a dynamically typed language; based on identifying that the installed first application is the dynamic application, identify whether a current time is a preset time for reference information request; based on identifying that the current time is the preset time, transmit a request for first reference information for compiling a source code of the first application together with identification information of the source code of the first application and at least one of use pattern information of the first application in the user terminal device or second reference information estimated based on the use pattern information, to the at least one server; receive the first reference information for compiling the source code corresponding to the transmitted identification information from the at least one server, the first reference information being generated using the at least one of the use pattern information or the second reference information; identify a compiler set for executing the first application; based on the set compiler being identified to be a first compiler, identify whether the installed first application is executed; based on identifying that the installed first application is executed, compile the source code of the first application into a machine code using the first compiler based on the received first reference information, to generate an execution file, and execute the execution file generated while compiling the source code of the first application just in time; and based on the set compiler being identified to be a second compiler, which is different in kind from the first compiler, compile the source code of the first application into the machine code using the second compiler based on the received first reference information to generate the execution file, and store the execution file in the storage, wherein the preset time comprises at least one of right after the first application is installed, a time designated by a user, upon user's update request, or preset time intervals, which is set via a setting menu according to a user's command, and wherein the first reference information comprises profile information including at least one of variable type information or execution flow information used in a whole of source files of the source code of the first application, and the second reference information comprises variables of the source code, types of expressions of the source code, occurrence probabilities for the expressions, or run streams of flows of the source code, which are estimated based on the use pattern information.
2. The user terminal device according to claim 1 , wherein the processor is configured to further transmit data of the source code of the first application.
3. The user terminal device according to claim 1 , wherein the use pattern information comprises an application execution history which comprises variables inputted or selected by a user when the application is executed and functions used when the first application is executed.
4. The user terminal device according to claim 1 , wherein the first reference information is produced based on at least one of reference information generated from analyzing the source code of the first application, or second reference information generated based on the use pattern information received from at least one of the user terminal device or other user terminal devices which communicate with the at least one server.
5. The user terminal device according to claim 1 , wherein the variable type information comprises variables used in the source code, types of expressions used in the source code and occurrence probabilities for the types of used expressions.
6. The user terminal device according to claim 1 , wherein the execution flow information comprises occurrence frequencies of execution flows used in the source code and occurrence frequencies of methods used in the source code.
7. The user terminal device according to claim 1 , wherein the processor comprises a just-in-time (JIT) compiler configured to compile the source code of the first application just in time based on the received first reference information during an execution time of the first application.
8. The user terminal device according to claim 1 , wherein the processor comprises an ahead-of-time (AOT) compiler configured to compile the source code of the first application in advance based on the received first reference information before executing the first application.
9. The user terminal device according to claim 8 , wherein the processor is configured to control the AOT compiler to perform a compile operation at a time where the first application is downloaded and installed, or at an idle time where the user terminal device is not used after installing the first application.
10. The user terminal device according to claim 1 , wherein the processor is configured to receive first reference information from a plurality of servers, combine the received first reference information to form unified reference information, and compile the source code of the first application into the machine code using the unified reference information as the first reference information for compiling the source code.
11. A server comprising: a communicator configured to communicate with a plurality of user terminal devices; and a processor configured to: receive a request for first reference information for compiling a source code of a first application among a plurality of applications together with identification information of the source code of the first application and at least one of use pattern information of the first application or second reference information estimated based on the use pattern information, from a first user terminal device from among the plurality of user terminal devices, wherein the first user terminal device is configured to: download the first application from an external device to install in the user terminal device, install the first application in the user terminal device, identify whether the installed first application is a dynamic application created based on a dynamically typed language, based on identifying that the installed first application is the dynamic application, identify whether a current time is a preset time for reference information request, and based on identifying that the current time is the preset time, transmit the request for reference information together with the identification information and at least one of the use pattern information or the second reference information, wherein the preset time comprises at least one of right after the first application is installed, a time designated by a user, upon user's update request, or preset time intervals, which is set via a setting menu according to a user's command, and wherein the first reference information comprises profile information including at least one of variable type information or execution flow information used in a whole of source files of the source code of the first application, and the second reference information comprises variables of the source code, types of expressions of the source code, occurrence probabilities for the expressions, or run streams of flows of the source code, which are estimated based on the use pattern information, and transmit the first reference information for compiling the source code corresponding to the received identification information to the first user terminal device, to generate an execution file in the first user terminal device, the first reference information being generated using the at least one of the use pattern information or the second reference information, wherein the first user terminal device is configured to: identify a compiler set for executing the first application, based on the set compiler being identified to be a first compiler, identify whether the installed first application is executed, using the first compiler based on identifying that the installed first application is executed, compile the source code of the first application into a machine code based on the received first reference information, to generate the execution file, and execute the execution file generated while compiling the source code of the first application just in time, and based on the set compiler being identified to be a second compiler, which is different in kind from the first compiler, compile the source code of the first application into the machine code using the second compiler based on the received first reference information to generate the execution file, and store the execution file therein.
12. The server according to claim 11 , wherein the processor is configured to further receive data of the source code of the first application.
13. The server according to claim 11 , wherein the processor is configured to: generate reference information analyzing the source code of the application, generate second reference information based on use pattern information received from at least one of the first user terminal device or second user terminal devices which communicate with the server, produce first reference information based on at least one of the reference information or the second reference information, and transmit the produced first reference information to the first user terminal device.
14. The server according to claim 11 , wherein the processor is configured to, in response to the use pattern information of the first application and the first reference information being set to be updated at preset time intervals or the first reference information being requested by the first user terminal device at a preset request time, update the first reference information based on use pattern information received from at least one of the first user terminal device or second user terminal devices which communicate with the server.
Unknown
July 6, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.