Patent classifications
G06F8/423
APPLICATION DEVELOPMENT METHOD, TOOL, AND DEVICE, AND STORAGE MEDIUM
Embodiments of the present application disclose an application development method performed at a computing device. The method includes: obtaining an input file in a predetermined format, the input file including content code of each part used for forming an application; disassembling the content code of each part in the input file into different category code according to corresponding categories; invoking a corresponding compiler according to an attribute of each piece of the category code, to compile the category code, to correspondingly obtain a description file of each piece of the category code; and performing plug-in processing on the description file of the category code of each part, to obtain the application.
APPLICATION DEVELOPMENT FRAMEWORK FOR DEVICE CONTROL APPLICATIONS OF IOT DEVICES
In embodiments, a processing device receives an identification of a source code file for a device control application and an associated configuration file for the device control application. The processing device parses the configuration file to identify a first set of classes that are specified in the configuration file but that are not specified in the source code file. The processing device analyzes the source code file to identify a second set of classes that are specified in the source code file. The processing device retrieves the first set of classes and the second set of classes from a library, wherein classes from the library other than the first set of classes and the second set of classes are not retrieved. The processing device generates an executable file for the device control application based on the source code file, the first set of classes and the second set of classes.
DEVICE CONTROL APPLICATION WITH CHANGEABLE WORKFLOW
In embodiments, a device control application reads a configuration file responsive to a first execution of the device control application on a mobile device. The mobile device parses the first configuration file to identify one or more supported devices, managed properties of each of the one or more supported devices, actions that indicate information about the managed properties, and controls associated with at least one of the one or more supported devices or the one or more managed properties, wherein a control causes a specified user input to generate a command to cause a managed property to have a specified value. The mobile device crates a first version of the device control application based on the configuration file during runtime of the device control application based on a result of the parsing. The mobile device then presents the first version of the device control application.
System and method for providing code completion features for code modules
Systems and methods are described for providing code completion features for code modules that have been incorporated into a source code document being edited by a user of a source code editor. Embodiment dynamically load and apply partial code evaluation to code modules referenced in the source code document (and any code modules referenced directly or indirectly by such code modules) while the user is editing it. The partial code evaluation is performed on a background thread that is separate from a main thread used to execute the user interface for the source code editor. The results of such partial code evaluation are cached and used to provide code completion information for the code modules.
OPTIMIZING SOURCE CODE USING CALLABLE UNIT MATCHING
An embodiment searches source for callable units, and scans the contents of the callable units, and generates a set of unit groups that each include one or more of the callable units. The embodiment preprocesses the callable units and then generates hashes of each of the callable units. The embodiment generates a data structure comprising unit identifiers associated with the hashes and their corresponding callable units. The embodiment generates statistical data using a callable-unit metric and updates the data structure by prioritizing the callable units based on the statistical data. The embodiment compares hashes of the callable units and identifies first and second callable units as redundant callable units. The embodiment updates the data structure by identifying the second callable unit as being redundant to the first callable unit. The embodiment generates a report of redundant callable units based on the data structure.
Automatic creation of macro-services
This disclosure provides a computer-implemented method for automatically creating a macro-service. The method includes: converting source code of an analytic program that includes a set of operation units into a graph representation. Each of the set of operation units performs at least an operation to a data object, and the method further includes performing a query associated with the macro-service on the graph representation to determine a subset of the graph representation. The method further includes generating code for the macro-service based on the determined subset of the graph representation.
Single-source-base compilation for multiple target environments
A method for software compilation is disclosed. A compiler may identify features of source code which are unavailable in a target environment for the compilation. The compiler may then translate the identified features into modified features in response to determining that projections for the identified features into the target environment are available. The compiler may then compile the source code dependent upon the modified features.
Adaptive portable libraries
Platform-agnostic source code can be augmented with one or more portions of source code annotated for different platforms and/or versions. The source code including both the platform-agnostic and platform-specific and/or version-specific portions can be compiled once to create a single executable that can be distributed to and can run on multiple device platforms and/or multiple versions of one or more platforms. Platform-specific or version-specific executables (e.g., assemblies, binaries, etc.) can be embedded into a binary or executable as resources (e.g., data). When the compiled code is executed on a device, the runtime can extract the platform-specific portion corresponding to the device on which the executable is being run, can bind the extracted portion to the executable and can load and execute the executable. Hence the same binary can produce different results or functionalities depending on the capabilities of the platform on which the binary runs.
SYSTEMS AND METHODS FOR REDUCING REGISTER BANK CONFLICTS BASED ON SOFTWARE HINT AND HARDWARE THREAD SWITCH
Mechanisms for reducing register bank conflicts based on software hint and hardware thread switch are disclosed. In some embodiments, an apparatus for thread switching includes a graphics processing unit (GPU) that includes a plurality of register banks to store operands that are assigned at least partially to avoid register bank conflicts. A decoding circuitry checks a thread switching field of a first instruction to be executed by a first thread. The GPU performs a thread switch mechanism to cause a second instruction to be executed by a second thread when the thread switching field of the first instruction is set.
Automated integration of a source modification engine
Systems and methods of cyber hardening software by modifying one or more assembly source files. In some embodiments, the SME tool transparently and seamlessly integrates into the build process of the assembly source files being modified. For example, upon integration of the disclosed SME tool into the application's development environment, the modifications in the final executable are transparent to the developer and can support other cyber hardening techniques. In some embodiments, the integration of the SME tool into a build can be automated. Simplifying integration, through automated means, can be beneficial for widespread adoption of SME tools in cyberhardening software applications. Automated SME build integrations, e.g., removing manual methods and techniques, can help eliminate human errors and result in faster SME integrations, in comparison to manual integrations of a SME tool.