7320121

Computer-implemented system and method for generating embedded code to add functionality to a user application

PublishedJanuary 15, 2008
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
68 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer-implemented method for generating machine code to be embedded in a user application said method comprising the steps of: receiving source code generated by the user application; receiving user application exported addresses of code and of data symbols that are used to resolve external references in the source code; wherein the source code includes one or more higher order computer language statements; wherein a generator generates machine code directly into random access memory (RAM) from the received source code; and the generator providing a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code; wherein the user application contains instructions to dynamically create the source code during run-time execution of the user application; wherein the source code dynamically created by the user application during run-time execution is used to generate the machine code accessed via the function pointer; wherein the generated machine code runs in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

2

2. The method of claim 1 wherein the source code is formatted as text.

3

3. The method of claim 1 wherein the one or more higher order level computer language statements are based upon assembly language.

4

4. The method of claim 1 wherein the user application operates as a thread.

5

5. The method of claim 1 wherein machine code is computer machine readable code.

6

6. The method of claim 5 wherein the machine code comprises physical memory addresses.

7

7. The method of claim 1 wherein the machine code is generated at run-time.

8

8. The method of claim 7 wherein the machine code is generated during execution of the user application.

9

9. The method of claim 1 wherein the user application uses an application programming interface (API) to submit the source code for generating the machine code.

10

10. The method of claim 1 wherein the user application uses an application programming interface (API) means for submitting the source code for generating the machine code.

11

11. The method of claim 1 wherein data symbols, function symbols and structures are exported from the user application.

12

12. The method of claim 11 wherein the machine code utilizes the exported addresses and data symbols so tat the machine code may call back into the code of the user application.

13

13. The method of claim 1 further comprising the step of: performing relocation during generation of the machine code.

14

14. The method of claim 13 wherein the generating step does not include a link or load phase.

15

15. The method of claim 13 further comprising the step of: performing a code to code relocation within a generated function of the machine code.

16

16. The method of claim 13 further comprising the step of performing a code to code relocation between two generated functions of the machine code.

17

17. The method of claim 13 further comprising the step of: performing a data to code relocation between generated data and generated function of the machine code.

18

18. The method of claim 13 further comprising the step of performing a code to data relocation between generated function and generated data of the machine code.

19

19. The method of claim 13 further comprising the step of: performing a data to data relocation for generated data of the machine code.

20

20. The method of claim 1 further comprising the step of: setting a compiler option to affect the generation of the machine code.

21

21. The method of claim 1 further comprising the step of: freeing resources associated with the generated machine code.

22

22. The method of claim 1 further comprising the step of: freeing resources associated with the generated machine code after the generated machine code has executed.

23

23. The method of claim 1 further comprising the step of: freeing memory associated with the generated machine code.

24

24. The method of claim 1 further comprising the step of: using a debugger to analyze a compilation error associated with the generation of the machine code.

25

25. The method of claim 1 further comprising the step of: using debugger means to analyze the generated machine code.

26

26. The method of claim 1 wherein the source code is directed to a B*tree operation, wherein the user application contains instructions to generate differently source code based upon whether concurrency is desired or not.

27

27. The method of claim 1 wherein the source code is directed to a B*tree operation, wherein the user application contains instructions to generate different source code for when different key types are requested.

28

28. The method of claim 27 wherein the generated source code is customized based upon dimension count.

29

29. The method of claim 28 wherein the generated source code is customized based upon complex keys having more than one data type.

30

30. The method of claim 1 wherein the source code is directed to a B*tree operation, wherein the user application contains instructions to generate different source code based upon whether a dimension count dependent for-loop is needed for the B*tree operation.

31

31. The method of claim 1 wherein the source code is directed to a B*tree operation, wherein the user application contains instructions to generate different source code for when different key types are requested.

32

32. The method of claim 1 wherein the source code is directed to a B*tree operation, wherein the user application contains instructions to generate different source code for when no paging is requested.

33

33. The method of claim 32 wherein paging is not requested when an index can fit entirely in-memory.

34

34. The method of claim 1 wherein the source code is directed to a B*tree operation, wherein the user application contains instructions to generate different source code for when multiple inserts of the same key are requested.

35

35. The method of claim 1 wherein the user application generates the source code, said source code containing a structure that references data in a structure contained within the user application.

36

36. The method of claim 35 wherein the source code defines only the data that the generated machine code requires for its operation.

37

37. The method of claim 35 wherein the structure contained within the source code is updated if the structure contained within the application is modified.

38

38. The method of claim 37 wherein additional members are added to the structure contained within the application, wherein offsets to the structure contained within the source code are automatically updated.

39

39. A computer-implemented apparatus for generating machine code to be embedded in a user application, comprising: a generator module that generates machine code directly into random access memory (RAM) from source code and exports addresses of code and of data symbols that are used to resolve external references in the source code, said source code including a higher order computer language statement, said source code and said exported addresses having been provided to the generator module by the user application; a relocation handler that performs relocation operations during generation of the machine code; said generator module providing a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code; wherein source code is created dynamically during run-time execution of the user application; wherein the source code that is dynamically created during run-time execution is used to generate the machine code accessed via the function pointer; wherein the generated machine code is for running in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

40

40. A computer-implemented apparatus for generating machine code to be embedded in a user application process, comprising: means for receiving source code generated by the user application; means for receiving exported addresses of code and of data symbols from the user application, wherein the addresses are used to resolve external references in the source code; wherein the source code includes one or more higher order computer language statements; generator means for generating machine code directly into random access memory (RAM) from the received source code and the exported addresses; and means for the generator means to provide a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code; wherein the user application contains instructions to dynamically create source code during run-time execution of the user application; wherein the source code dynamically created by the user application during run-time execution is used to generate the machine code accessed via the function pointer; wherein the generated machine code runs in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

41

41. The apparatus of claim 40 further comprising: an application having code generation means for generating the source code.

42

42. The apparatus of claim 41 wherein the code generation means comprises structure generation means.

43

43. Computer software stored on a computer readable media for generating machine code to be embedded in a user application the computer software comprising program code for carrying out a method comprising the steps of: receiving source code generated by the user application; receiving exported addresses of code and of data symbols from the user application, wherein the addresses are used to resolve external references in the source code; wherein the source code includes the one or more higher order computer language statements; using a generator to generate machine code directly into random access memory (RAM) from the received source code and the addresses; and the generator providing a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code; wherein the user application contains instructions to dynamically create source code during run-time execution of the user application; wherein the source code dynamically created by the user application during run-time execution is used to generate the machine code accessed via the function pointer; wherein the generated machine code runs in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

44

44. A computer-implemented apparatus for accessing machine code comprising: a source code generation module to generate source code and export addresses of code and of data symbols, said source code including a higher order computer language statement, and said exported addresses resolving external references in the source code, said source code and exported addresses to be provided to a generator module so that the generator module may generate machine code directly into random access memory (RAM) from the source code; and said generator module to provide a function location software mechanism to access the generated machine code stored in the RAM to a user application; wherein the source code generation module is said user application and contains instructions to dynamically create source code and export addresses of code and of data symbols during run-time execution of the user application; wherein the source code and exported addresses dynamically created by the user application during run-time execution are used to generate the machine code accessed by the user application via the function location software mechanism; wherein the generated machine code is for running in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

45

45. The apparatus of claim 44 wherein the function location software mechanism comprises an application programming interface (API) mechanism to access the generated machine code stored in the RAM through a function pointer provided by the generator module.

46

46. The apparatus of claim 44 further comprising: wherein the source code generation module comprises code generation means for generating the source code.

47

47. The apparatus of claim 46 wherein the code generation means comprises structure generation means.

48

48. The apparatus of claim 46 wherein the code generation means comprises exception handling code generation means.

49

49. The apparatus of claim 48 wherein the exception handling code generation means generates higher order computer language statements that include an exception branching statement means and an exception catching statement means.

50

50. A computer-implemented method for handling run-time exceptions by generating machine code to process the exceptions by a user application, comprising the steps of: receiving source code that was created by the user application, wherein the received source code includes one or more higher order computer language statements, wherein the statements include an exception branching statement and an exception catching statement; receiving user application exported addresses of code and of data symbols that are used to resolve external references in the source code; wherein a generator generates machine code directly into random access memory (RAM) from the received source code; and the generator providing a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code, wherein upon an exception occurring, execution of the generated machine code branches to the exception catching statement in accordance with the exception branching statement; wherein the generated machine code runs in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

51

51. The method of claim 50 wherein upon an exception happening, an exception signal handler allows execution to resume at recovery code associated with the exception catching statement.

52

52. The method of claim 51 wherein the exception signal handler allows execution to resume at the recovery code by placing the value stored from the exception branching statement into a PC (program counter) slot of an exception context structure that was passed to the exception signal handler.

53

53. The method of claim 52 wherein the exception branching statement includes ON_EXCEPTION_GOTO statement means.

54

54. The method of claim 53 wherein the exception catching statement includes EXCEPTION_LABEL statement means.

55

55. The method of claim 53 wherein the ON_EXCEPTION_GOTO statement means records location of the recovery code.

56

56. The method of claim 50 wherein the user application automatically generates the source code dynamically during execution of the user application.

57

57. The method of claim 56 wherein the user application customizes the recovery code based upon current context of the executing user application.

58

58. The method of claim 50 wherein the user application customizes the recovery code based upon current context of the executing user application.

59

59. The method of claim 50 wherein the user application comprises a data mining application.

60

60. The method of claim 50 wherein the user application comprises a database application.

61

61. The method of claim 50 wherein the user application comprises a statistical application.

62

62. The method of claim 50 wherein use of the exception branching statement reduces need for saving the context of the executing generated machine code when trapping for exceptions.

63

63. Computer software stored on a computer readable media, the computer software comprising program code for carrying out a method according to claim 50 .

64

64. Computer software stored on a computer readable media for handling run-time exceptions by generating machine code to process the exceptions by a user application, the computer software comprising program code for carrying out a method comprising the steps of: receiving source code that was created by the user application, wherein the received source code includes one or more higher order computer language statements, wherein the statements include an exception branching statement and an exception catching statement; receiving user application exported addresses of code and of data symbols that are used to resolve external references in the source code; wherein in a generator generates machine code directly into random access memory (RAM) from the received source code; and the generator providing a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code, wherein upon an exception occurring, execution of the generated machine code branches to the exception catching statement in accordance with the exception branching statement; wherein the generated machine code runs in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

65

65. A computer-implemented apparatus for handling run-time exceptions by generating machine code to process the exceptions by a user application, comprising: means for receiving the generated source code that was created by the user application, wherein the received source code includes one or more higher order computer language statements means, wherein the statements means include an exception branching statement means and an exception catching statement means; means for receiving user application exported addresses of code and of data symbols that are used to resolve external references in the source code; generator means for generating machine code directly into random access memory (RAM) from the received source code and the exported addresses; and means for the generator means to provide a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code, wherein upon an exception occurring, execution of the generated machine code branches to the exception catching statement means in accordance with the exception branching statement means; wherein the generated machine code runs in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

66

66. A computer-implemented apparatus for handling run-time exceptions by a user application, comprising: a generator module that generates machine code directly into random access memory (RAM) from source code and exports addresses of code and of data symbols that are used to resolve external references in the source code, said source code including the one or more higher order computer language statements, wherein the statements include an exception branching statement and an exception catching statement, said source code and said exported addresses having been provided to the generator module by the user application; a relocation handler that performs relocation operations during generation of the machine code; said generator module providing a function pointer to the generated machine code stored in the RAM to the user application so that the user application may access the generated machine code, wherein upon an exception occurring, execution of the generated machine code branches to the exception catching statement in accordance with the exception branching statement, wherein use of the exception branching statement eliminates need for saving the context of the executing generated machine code when trapping for exceptions; wherein the generated machine code is for running in same context as the user application; wherein the generated machine code is embedded in the user application and adds functionality to the user application.

67

67. The method of claim 1 , wherein the machine code represents a single compilation unit created in memory with all internal references resolved during the generating step, and external references are bound to exported data and code symbols wherein the external references are bound according to symbolic information received from the user application, and execution of the generated code does not require a link or load phase; wherein the absolute address of all symbols is known during the generation of the machine code.

68

68. The method of claim 67 , further comprising launching a debugger configured to debug the user application and the dynamically created source code in the same process; wherein the debugger also has access to dynamically created source and symbolic information.

Patent Metadata

Filing Date

Unknown

Publication Date

January 15, 2008

Inventors

Steven E. Krueger

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Computer-implemented system and method for generating embedded code to add functionality to a user application” (7320121). https://patentable.app/patents/7320121

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

Computer-implemented system and method for generating embedded code to add functionality to a user application — Steven E. Krueger | Patentable