×

Optimized execution of dynamic languages

  • US 10,025,571 B1
  • Filed: 07/17/2014
  • Issued: 07/17/2018
  • Est. Priority Date: 07/17/2014
  • Status: Active Grant
First Claim
Patent Images

1. A machine-implemented method comprising:

  • receiving a code block of dynamic language code, the code block including one or more variables;

    generating a control flow graph of the code block, the control flow graph including one or more operations;

    performing forward data flow analysis for the control flow graph of the code block, the forward data flow analysis for each operation of the one or more operations of the control flow graph comprising;

    determining if the operation provides an update regarding a type of one or more of the one or more operations or one or more variables, the update being based on one or more rules of type inference, wherein the one or more rules of type inference comprise at least one of;

    information including a signature of a builtin, a return type computed for a user function, an argument type from call-time function specialization, or a rule of language of the code block;

    updating a type set of each of the one or more operations when the operation provides the update regarding the type of each of the one or more operations, wherein the update regarding the type of at least one of the one or more operations is determined independently of the one or more variables; and

    updating a type set of each of the one or more variables when the operation provides the update regarding the type of each of the one or more variables; and

    returning the type set for the one or more of the one or more operations or the one or more variables of the code block determined in response to the forward data flow analysis, wherein the type set of each of the one or more operations or the one or more variables defines possible types for each of the one or more operations or the one or more variables.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×