Patent classifications
G06F8/437
IMPLEMENTING OPTIONAL SPECIALIZATION WHEN COMPILING CODE
A compiler is capable of compiling instructions that do or do not supply specialization information for a generic type. The generic type is compiled into an unspecialized type. If specialization information was supplied, the unspecialized type is adorned with information indicating type restrictions for application programming interface (API) points associated with the unspecialized type, which becomes a specialized type. A runtime environment is capable of executing calls to a same API point that do or do not indicate a specialized type, and is capable of executing calls to a same API point of objects of an unspecialized type or of objects of a specialized type. When the call to an API point indicates a specialized type, and the specialized type matches that of the object (if the API point belongs to an object), then a runtime environment may perform optimized accesses based on type restrictions derived from the specialized type.
DISTRIBUTED EXTENSIBLE DYNAMIC GRAPH
A method may include receiving a first definition of an object type from a first software component and a second definition of the object type from a second software component. The object type may be labeled by an ID. The method may further include storing, in a dynamic graph, a node labeled by the ID, and storing, in a type definition repository external to the dynamic graph, the first definition of the object type and the second definition of the object type. The method may further include receiving, from the first software component, a modified first definition of the object type. The method may further include replacing, in the type definition repository and using the ID, the first definition of the object type with the modified first definition, and transmitting, to the second software component, a message indicating a need to lookup, by the ID, the modified first definition.
Secure, scalable, 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 compiling process, a request to create a Java user-defined table function (Java UDTF), the Java UDTF including code related to receiving one or more input tables and transforming the one or more input tables to an output table; verifying a construct of the Java UDTF in the request is correct; and compiling to generate execution code that includes the Java UDTF when the construct of the Java UDTF is correct.
Systems, methods and media for dynamically shaped tensors using liquid types
Systems, methods, and processor readable media are described for verifying software. A liquid type system is used by a programming language to allow source code to define tensor variables with dimensionality and/or shape dynamically defined at runtime. The dimensionality and shape of a tensor variable invoked in the source code, as well as the data type of the constituent elements of such a tensor variable, may be defined by a static type that may be verified at compile time.
Runtime type identification of an object utilizing class inheritance relationships
Embodiments of the present disclosure relate to runtime type identification (RTTI) of an object. In an embodiment, a computer-implemented method is disclosed. A class inheritance relationship between a plurality of classes in at least one source code section is generated. Respective type identifications are assigned to identify the classes in the class inheritance relationship. In accordance with presence of a first operation related to accessing a target pointer to an object of a target class of the classes, a type identification for the target class is caused to be recorded with at least one bit of a memory address of the target pointer that can be omitted in addressing the target pointer. RTTI is caused to be performed based on the class inheritance relationship and the at least one bit of the memory address of the target pointer. In other embodiments, a system and a computer program product are disclosed.
Implementing a type restriction that restricts to a maximum or specific element count
A type restriction contextually modifies an existing type descriptor. The type restriction is imposed on a data structure to restrict the values that are assumable by the data structure. The type restriction does not cancel or otherwise override the effect of the existing type descriptor on the data structure. Rather the type restriction may declare that a value of the data structure's type is forbidden for the data structure. Additionally or alternatively, the type restriction may declare that an element count allowable for a data structure's type is forbidden for the data structure. Type restriction allows optionality (where only a singleton value for a data structure is allowed), empty sets (where no value for a data structure is allowed), and multiplicity (where only a limited element count for a data structure) to be injected into a code set independent of data type. Type restriction allows certain optimizations to be performed.
Compiler for context-dependent code global data types
A compiler for a software development kit is disclosed. In some embodiments, a computer-implemented method comprises receiving source code comprising an object node having a data type definition for a code value, detecting that the data type definition of the object node includes a context-dependent data type, where the context-dependent data type is dependent on at least one other data type, determining a corresponding value for each one of the other data type(s) based on the detecting that the data type definition includes the context-dependent data type, and generating a runtime instance of a software solution based on the source code, where the generating the runtime instance comprises assigning the corresponding value for each other data type as a single list ID for the object node, and the single list ID for the object node is configured to be used to determine a dedicated value of the code value.
Methods, systems, articles of manufacture and apparatus for code review assistance for dynamically typed languages
Methods, apparatus, systems and articles of manufacture are disclosed for code review assistance for dynamically typed languages. An example apparatus to analyze a segment of code includes a function identifier to identify a first input of a first function call included in the segment of the code, a parameter type vector (PTV) estimator model to estimate a first data structure based on the first input, the PTV estimator model generated via a set of reviewed code, a PTV determiner to generate a second data structure based on a data parameter type of the first input, an error comparator to determine a first reconstruction error based on the first data structure, and the second data structure and a recommendation generator to, if the first reconstruction error does not satisfy a recommendation threshold, generate a first recommendation to review the first function call.
Control device and control method for preventing unintentional overwriting of data
The objective of the present invention is to prevent a conflict between variable names and consequently the unintentional overwriting of data when a plurality of programs that define a shared variable exist. A control device (1) is equipped with a program management part (11), a data storage part (13a), and a shared variable symbol table (13b). The program management part (11) acquires an identifier for a first user program, generates a shared variable name that includes the identifier and a variable name of a shared variable defined in the first user program, associates the shared variable name and an address of the shared variable with each other, and records these in the shared variable symbol table (13b).
Compile time validation of programming code
Validating programming code by providing a data schema including registered data types, identifying a data object as defined according to a registered data type of the schema; and checking attempts to access the data object according to the registered data types of the data schema, at compile time.