Patent classifications
G06F8/437
Optimistically assuming types in a dynamically typed language
Optimistically type assumptions in a dynamically typed language may involve a compiler parsing code and detecting a program element that results from an operation of the code that has an unspecified type. In response, the compiler may make a first type assumption treating the element as a first type. The assumed type may be selected from multiple types as expected to have a lowest performance cost of the multiple types. The compiler may generate compiled code using the first (assumed) type. During runtime of the compiled code, it may be detected that the first type assumption is invalid for the compiled code and in response a portion of the compiled code may be replaced with other compiled code. The other compiled code may treat the element according to a second type assumption that may be selected as a type expected to have the second lowest performance cost.
POINTER CONSTRAINT MODELING THROUGH A MULTIGRAPH
A graph structure provides a representation of source code and includes a plurality of nodes to represent a plurality of pointers within the source code, a plurality of type edges connecting nodes in the plurality of nodes within the graph structure (to identify a flow of a program to be implemented using the source code), and a plurality of checked edges based on respective usage of pointers in the plurality of pointers. A system determines, from the graph structure, whether one or more of the plurality of pointers comprise wild pointers based on one or more of the plurality of checked edges, and further determines, from the graph structure, pointer types for at least a portion of the plurality of pointers based on one or more of the plurality of type edges.
Software development framework for a cloud computing platform
A technique is described for evaluating code at a local computing device before deploying the code to a cloud computing platform to be compiled. In an example embodiment, class files including the code in a programming language associated with the cloud computing environment are loaded by a local computer system, for example, associated with a software developer. The local computer system then parses the code to identify elements in the code and checks the identified elements. Errors in the code are identified based on the checking and are displayed to a user (e.g., the developer), for example, via a graphical user interface of a code editor application.
Runtime execution of entities and services in an application object runtime environment
Some embodiments provide a non-transitory machine-readable medium that stores a program. The program receives, from a client device, a request to execute an application object configured to execute in a first runtime environment. The program further registers the first runtime environment in a second runtime environment. The program also registers the application object in the first runtime environment. The program further enriches a definition of the application object with metadata associated with the second runtime environment. The program also executes the application object in the first runtime environment.
CRYPTOGRAPHIC ENFORCEMENT OF BORROW CHECKING
Techniques for borrow checking in hardware are described. The technology includes allocating an object in a memory and setting an ownership identifier (ID) in the allocated object, the allocated object being associated with a first variable in a program and setting a matching ownership ID in a pointer to the allocated object. When the allocated object is accessed during execution of the program by a processor, an exception is generated when the ownership ID in the allocated object does not match the ownership ID in the pointer, and execution of the program is continued when the ownership ID in the allocated object does match the ownership ID in the pointer.
ACYCLIC DATA TYPES
Computer-implemented techniques for preventing garbage object accumulation on minimal runtimes. The techniques include checking whether source code written in a source programming language that does not require the programmer to explicitly program when deallocation happens can run within a runtime that provides little or no support for implicit deallocation. At the same time, the techniques ensure that objects in minimal runtimes are deallocated in a timely manner. In one aspect, the techniques encompass generating a compile-time alert (e.g., an error or warning message) to a programmer of source code or halting compilation of the source code upon detecting a data type definition in the source code with the potential for reference cycles. With the techniques, the programmer is provided with an implicit deallocation experience while producing program fragments that interoperate with minimal runtimes that provide no or only minimal support for implicit deallocation (e.g., provide only reference counting).
SMART CONTRACT CLIENT PROGRAM GENERATION METHOD, SYSTEM AND DEVICE, AND MEDIUM
A smart contract client program generation method, system and device, and a medium are provided. The method includes: analyzing an interface of a smart contract according to an ABI or a source code of the smart contract; generating, according to an interface analysis result, entity classes corresponding to an incoming parameter and a return parameter of the interface of the smart contract; generating, according to the interface analysis result, a calling method corresponding to the interface of the smart contract; and generating, according to a matched calling layer framework design mode, the entity classes and the calling method, a calling layer program of a smart contract client.
Accessing a migrated member in an updated type
Accessing migrated members in an updated type is described. Instructions to access a migrated member may be: (a) storing a value of a particular type as a value of a migrated field, or (b) invoking a migrated method using an argument of a particular type. The argument of the particular type, specified in the instructions, is converted into a value of the type associated with the current version of the migrated member. The migrated member is accessed using the converted value. Alternatively, instructions may be: (a) fetching and returning a value of a migrated field as a value of a particular type, or (b) returning a value from a migrated method as a value of a particular type. A value is returned via accessing the current version of the migrated member. The returned value is converted into a value of the particular type specified in the instructions.
Secure table-valued functions in a cloud database
A system comprises at least one hardware processor and a memory storing instructions. When executed, the instructions cause the at least one hardware processor to perform operations comprising receiving, in a computing process, a Java user-defined table function (Java UDTF), the Java UDTF including code related to a process method to be performed that includes receiving one or more input tables and transforming the one or more input tables to an output table; determining, using at least a security policy, whether performing one or more portions of the process method are permitted; and performing portions of the process method determined to be permitted.
Method for implementing compiled embedded Python
Provided is a method for implementing compiled embedded Python. The method comprises: traversing an abstract syntax tree of Python source code to obtain semantic information about a program and generating corresponding C++ code according to said semantic information (S1); performing type annotation of the Python source code and thus generating C++ variable definitions and function definitions (S2); using a translator to translate into C++ source files the Python source code processed in the steps described above (S3); storing said C++ source files together with embedded chip-related files to form a file package, and compiling and linking said file package and generating an ASCII text file (S4). The method implements a source code translator on the basis of type annotations and static analysis, and integrates the translator into an embedded platform, enabling the editing, compiling, linking, and programming of Python source files.