G06F8/437

User-defined Secure Remote Code Execution from No-code Platforms

A method includes receiving a trigger interaction indication indicating a first graphical user interaction by a user within a no-code environment. In response to receiving the trigger interaction indication, the method also includes establishing a trigger condition for an application generated by the no-code environment. The method also includes receiving an action interaction indication indicating a second graphical user interaction by the user within the no-code environment. The method also includes, in response to receiving the action interaction indication, defining an action response for the application when the trigger condition is satisfied. The action response includes a function call calling a function of a script. The script is generated within a low-code environment. The method also includes executing the application.

LANGUAGE INTEROPERABILITY TO AUTOMATE CODE ANALYSIS

Language interoperability between source code programs not compatible with an interprocedural static code analyzer is achieved through language-independent representations of the programs. The source code programs are transformed into respective intermediate language instructions from which a language-independent control flow graph and a language-independent type environment is created. A program compatible with the interprocedural static code analyzer is generated from the language-independent control flow graph and the language-independent type environment in order to utilize the interprocedural static code analyzer to detect memory safety faults.

RUNTIME TYPE IDENTIFICATION OF AN OBJECT UTILIZING CLASS INHERITANCE RELATIONSHIPS
20220058006 · 2022-02-24 ·

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.

GENERATING VERIFICATION METADATA AND VERIFYING A RUNTIME TYPE BASED ON VERIFICATION METADATA

Operations include (a) receiving a request to verify a first runtime type loaded based on a first runtime type reference; (b) identifying verification metadata comprising a stored assignable relationship between a second runtime type reference and a third runtime type reference; (c) determining whether an actual assignable relationship between a second runtime type and a third runtime type adheres to the stored assignable relationship between the second runtime type reference and the third runtime type reference; and (d) responsive at least to determining that the actual assignable relationship adheres to the stored assignable relationship, determining that the first runtime type is verified based on the verification metadata.

Resource access safety through immutable object types

A language extension that advances safety in system programming in that an entire type may be declared to be immutable in the case in which all instances of that type are immutable. The immutable type declaration automatically causes any instances of that type to be treated as immutable, and automatically causes all directly or indirectly reachable members (e.g., fields, methods, properties) of the instance to also be treated as immutable. Furthermore, any construction time reference that allows for field assignment of the instance is not permitted to survive beyond the point at which the instance becomes accessible to its creator. Accordingly, this instance, and any other instance of that same type, will be immutable from the very time of construction. The ability to classify all such instances as immutable is beneficial as the immutable characteristic permits actions that normally would not be allowed due to resource access safety.

Automated guidance for selecting components of an it solution

A computer displays a first set of components available for selection by the customer for an IT solution. The computer receives, from the customer, selection of a first component included in the first set of components. The computer determines that subsequent use of the first component requires a service. The computer identifies and displays a second set of components based on compatibility with the first component and ability to use the same service as the first component. The computer receives selection, from the customer, a second component included in the second set of components. The computer designs the IT solution to (a) include the first component and the second component and (b) share the same service during use of the first component and the second component.

Automated guidance for selecting components of an it solution

A computer displays a first set of components available for selection by the customer for an IT solution. The computer receives, from the customer, selection of a first component included in the first set of components. The computer determines that subsequent use of the first component requires a service. The computer identifies and displays a second set of components based on compatibility with the first component and ability to use the same service as the first component. The computer receives selection, from the customer, a second component included in the second set of components. The computer designs the IT solution to (a) include the first component and the second component and (b) share the same service during use of the first component and the second component.

System of type inference for tuple graph programs

A programming model provides a method for type inference in programming operations. Information defining one or more attributes of an operation is received, the information specifying a field including a field name and a field type identifier for each of the attributes. Constraints for the operation are determined at least based on the attributes, wherein the constraints restrict at least one of a type of input for the operation or a type of output for the operation. Information defining an input for the operation is received, and it is determined, based on the constraints and the received information defining the input, the type of output for the operation. The type of output is associated with an output for the operation.

Verification of a dataflow representation of a program through static type-checking

Functionality is described for providing a compiled program that can be executed in a parallel and a distributed manner by any selected runtime environment. The functionality includes a compiler module for producing the compiled program based on a dataflow representation of a program (i.e., a dataflow-expressed program). The dataflow-expressed program, in turn, includes a plurality of tasks that are connected together in a manner specified by a graph (such as a directed acyclic graph). The compiler module also involves performing static type-checking on the dataflow-expressed program to identify the presence of any mismatch errors in the dataflow-expressed program. By virtue of this approach, the above-described functionality can identify any errors in constructing the graph prior to its instantiation and execution in a runtime environment.

Deeply parallel source code compilation

Abstract Syntax Trees (ASTs) are generated using the source code of a programming language that include information relating to the structure of the program. The generation of the ASTs may be performed in parallel. The types are split into a number of modules (e.g. configurable) that form an assembly. During the different stages of the compilation process, each module may be compiled in parallel. As the different modules are being compiled (e.g. in parallel), compiler metadata from the different modules may be written to a repository accessible by the different compilation processes. After flowing through the compilation pipeline, each of the enriched ASTs are used for code generation where they are transformed into the target language (e.g. a code stream that can be executed on hardware). The executable code is then stored as part of the assembly. The storage of the code may also be performed in parallel.