Abstract: A data-serialization system initially uses a recursive serialization algorithm to serialize a hierarchy of nested data objects by translating those objects into a serial stream of data. The system determines that a stack-overflow error is likely to occur whenever the number of objects serialized by the system exceeds a threshold value, or whenever the stack has reached an unacceptable level of utilization. When the system determines that a stack-overflow error is likely or if the system detects that a stack-overflow error will definitely occur if another object is serialized, the system either transfers control to a nonrecursive algorithm that does not require a stack data structure or reduces stack utilization by transferring contents of the stack to a variable-size queue-like data structure.
Type:
Grant
Filed:
July 17, 2018
Date of Patent:
March 3, 2020
Assignee:
International Business Machines Corporation
Inventors:
Timothy P. Ellison, Amit S. Mane, Sathiskumar Palaniappan, Vijay Sundaresan
Abstract: A process performed on a server includes configuring the server to enable script for a Web service to be defined dynamically, where the Web service includes an application program interface (API) for enabling access by, and interaction with, a computer program executing on a device other than the server. The process also includes compiling the script to produce machine-executable code for the Web service, receiving a call from the computer program to the Web service, executing the machine-executable code in response to the call to produce an output, and sending the output to the device.
Abstract: Methods and computer-readable media are disclosed herein for generating asynchronous runtime compatible applications from non-asynchronous applications. In embodiments, source code for the application that is not compatible with asynchronous processing is examined. The source code is parsed in order to identify unsafe functions that will cause failures of the application when processed in an asynchronous runtime. The source code corresponding to those unsafe functions is modified by adding asynchronous functions and commands to the source code and restructuring the source code. The modified source code may then be provided to an asynchronous runtime environment as the application is now compatible with asynchronous processing.
Type:
Grant
Filed:
December 26, 2017
Date of Patent:
February 4, 2020
Assignee:
CERNER INNOVATON, INC.
Inventors:
Douglas Bailey, Sean Emery, Matthew Homan
Abstract: Aspects of the present invention disclose a method, computer program product, and system for parsing a domain-specific language (DSL) statement. The method includes one or more processors accessing a DSL statement that includes contracted phrases. The method further includes one or more processors identifying one or more contracted phrases in the DSL statement utilizing an annotated domain vocabulary for a DSL associated with the DSL statement and grammar rules for the DSL. The method further includes one or more processors determining expanded phrases corresponding to the identified one or more contracted phrases based on the annotated domain vocabulary and the grammar rules. The method further includes one or more processors creating an expanded abstract syntax tree (AST) that is representative of the DSL statement with the determined expanded phrases replacing the identified one or more contracted phrases.
Type:
Grant
Filed:
January 19, 2017
Date of Patent:
February 4, 2020
Assignee:
International Business Machines Corporation
Inventors:
Jean-Michel G. B. Bernelas, Ulrich M. Junker, Stephane Mery
Abstract: Systems, methods, and other embodiments associated with transitioning are described. In one embodiment, a method comprises analyzing at least one interface to produce an interface analysis result. The method also comprises causing a transformation of at least one constituent element based, at least in part, on the interface analysis result.
Type:
Grant
Filed:
May 21, 2016
Date of Patent:
February 4, 2020
Inventors:
Brendan Edward Clark, Ronald Charles Krosky, Matthew Franklin Clapper
Abstract: A method (and concomitant apparatus and non-transitory computer-readable medium comprising machine readable code) for automatically deploying World Wide Web services from any function written in an interpretive computer language, comprising creating a new cloud workspace for a function written in an interpretive computer language, receiving the function and storing it in the cloud workspace, establishing an interpreter for the interpretive computer language, and allowing for execution of the function by the interpreter via the internet or an intranet.
Abstract: According to an exemplary embodiment of the present disclosure, disclosed is a method for seamless application version management in a system including a plurality of application servers. Procedures stored in a computer program for processing the above-mentioned method include: transmitting held application version information to an application management server, receiving an updated version of an application file and version information corresponding to the application file from the application management server; determining that it is possible to perform a service using the updated version of an application by loading the updated version of the application file; transmitting application update readiness information to the application management server when it is determined that it is possible to perform the service using the updated version of the application; and receiving a command to apply the updated version from the application management server.
Abstract: Embodiments of the present disclosure relate to techniques for maintaining a state of a distributed system. In particular, certain embodiments relate to identifying a function. Some embodiments relate to, upon determining that the function comprises an annotation indicating that the function is capable of modifying the state of the distributed system, transforming the function to allow the function to generate updates to a state machine.
Type:
Grant
Filed:
September 5, 2018
Date of Patent:
January 28, 2020
Assignee:
Nicira, Inc.
Inventors:
Michael Wei, Dahlia Malkhi, Medhavi Dhawan, Maithem Munshed
Abstract: An improved software optimization tool framework is provided that, when executed, creates software agents that attach themselves to all running instances of a user-specified application and/or process, be it in a single machine or across multiple machines (e.g. in a computer cluster). Once the software agents attach, for each attached application and/or process, the tool can be configured to capture the input and output data of specified target sections of code for the specified application or process. In an embodiment, a software programmer may want to optimize a specific target section of code that may comprise a single function or multiple functions or code portions. Based on pre-identified code sections, the tool can write captured input and output data into binary files, along with the target sections of code, and build an optimization framework around the input and output data, including the targeted sections of code.
Abstract: In an approach, a virtual machine identifies, within a set of instructions, an instruction to load a constant; identifies, based on the instruction to load the constant, a first entry in a data structure that identifies a particular constant type of the one or more constant types, wherein the first entry specifies at least constant data and a first set of instructions for assembling a value or partial value from the constant data; executes the first set of instructions to assemble the value or the partial value from the constant data; and stores a particular value or a reference to the particular value onto a run-time data structure used to pass values or references between sets of instructions executing in a run-time environment, wherein the particular value is based on the value or the particular value assembled from the constant data.
Abstract: A method, computer program product, and system includes a processor(s) obtaining, during runtime, from a compiler, two versions of a data parallel loop for an operation. The host computing system comprises includes a CPU and a GPU is accessible to the host. The processor(s) online profiles the two versions by asynchronously executing the first version, in a profile mode, with the GPU and executing the second version, in the profile mode, with the CPU. The processor(s) generates execution times for the first version and the second version. The processor(s) stores the executions times and performance data in a storage, where the performance data comprises a size of the data parallel loop for the operation. The processor(s) update a regression model(s) to predict performance numbers for a process of an unknown loop size. The processor(s) execute the operation with the CPU or the GPU based on the performance data.
Type:
Grant
Filed:
December 21, 2017
Date of Patent:
January 21, 2020
Assignee:
International Business Machines Corporation
Abstract: In one example, an apparatus comprises processing circuitry to analyze a program at compile time to determine a set of latency parameters associated with instruction sets implemented to execute the program and select a latency management technique based at least in part on the set of latency parameters associated with instruction sets implemented to execute the program. Other examples may be described and claimed.
Type:
Grant
Filed:
February 23, 2018
Date of Patent:
January 21, 2020
Assignee:
INTEL CORPORATION
Inventors:
Travis Schluessler, Abhishek Venkatesh, Elmoustapha Ould-Ahmed-Vall, John Gierach, Tomer Bar On, Devan Burke
Abstract: This disclosure relates to deploying centralized design data in a development system. An exemplary system generally includes a server configured to perform the following steps. The server receives a style element and a reference name paired with the style element. The server then generates a visual definition comprising design data associated with the style element and paired with the reference name. The server then identifies a development environment for use with the visual definition and formats the visual definition into a local definition compatible with the development environment. Finally, the server transmits the local definition to a developer device associated with the development environment.
Abstract: Various approaches for automating code completion are described herein. More particularly, approaches are provided that automatically generate coded commands of a coding language (i.e., code) that function and operate as intended by the user. As the user codes the commands, such approaches assist a user in various ways. For example, such automated assistance provides the user an understanding of various coding options available in the coding language. The assistance also enforces the proper employment of the available coding options, as well as provides an understanding of the functionality of the generated code. Automating code completion provides various benefits to the user, such as decreasing the time the user spends generating code, increasing the likelihood that the generated code functions and operates on a system as intended, and reducing the number of code versions required to be executed or compiled by the system.
Type:
Grant
Filed:
July 29, 2016
Date of Patent:
January 7, 2020
Assignee:
SPLUNK INC.
Inventors:
Jindrich Dinga, Yuan Xie, Katherine Kyle Feeney, Jesse Miller
Abstract: Disclosed are a firmware distribution system etc, including a first apparatus configured to send a firmware acquisition request and information regarding the installation location of the first apparatus; and a distribution apparatus configured to, when receiving the firmware acquisition request and the information regarding a installation location from the first apparatus via a network, distribute first firmware or second firmware depending on the information regarding the installation location to the first apparatus, the second firmware including the first firmware except a predetermined process of the first firmware.
Abstract: At a carousel origin server, an indication is obtained that at least one of a plurality of consumer premises equipment connected to a video content network requires a software upgrade. Responsive to obtaining the indication, the carousel origin server loads onto a carousel at least one image required for the software upgrade. The at least one image required for the software upgrade is broadcast from the carousel to the at least one of the plurality of consumer premises equipment, for a predetermined period. Subsequent to the predetermined period, the at least one image required for the software upgrade is removed from the carousel.
Abstract: Disclosed embodiments relate to previewing dynamic web pages via an online editor interface. Operations include storing a plurality of data elements for display on a plurality of web pages; storing instructions for enabling organization of the data elements into a plurality of groups; providing instructions to a browser to display an interface for enabling a user to add data elements to the database, to associate each added data element with at least one of the plurality of groups, and to modify the at least one of front-end code and back-end code; executing instructions to generate the plurality of scrollable virtual web pages; and providing instructions to the browser to display a preview interface configured to display the plurality of scrollable virtual web pages.
Abstract: Processor hardware detects when memory aliasing occurs, and assures proper operation of the code even in the presence of memory aliasing. The processor defines a special store instruction that is different from a regular store instruction. The special store instruction is used in regions of the computer program where memory aliasing may occur. Because the hardware can detect and correct for memory aliasing, this allows a compiler to make optimizations such as register promotion even in regions of the code where memory aliasing may occur.
Type:
Grant
Filed:
November 30, 2017
Date of Patent:
December 17, 2019
Assignee:
International Business Machines Corporation
Abstract: Corruption of call stacks is detected by using guard words placed in the call stacks. A determination is made as to whether a callee routine is to include corruption detection logic to detect corruption of stacks. Based on determining the callee routine is to include the corruption detection logic, corruption detection logic is provided in the callee routine.
Type:
Grant
Filed:
December 7, 2018
Date of Patent:
December 3, 2019
Assignee:
INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventors:
Michael K. Gschwind, Ronald I. McIntosh
Abstract: Methods and apparatus to convert a non-series-parallel control flow graph to data flow. An example apparatus includes a node analyzer to detect a non-series-parallel node in sequential code, and an instruction generator to: generate instructions for prior nodes associated with the detected non-series-parallel node including a consumption operand, generate a combination instruction to combine results of the instructions generated for the prior nodes, and output the combination instructions and the instructions generated for the prior nodes to generate data flow code.