Patents

Systems and methods for services for assisting programming are disclosed. The systems and methods can be used to, during edit time, for program code or data of interest, identify one or more services available to the program code or the data of interest, generating a context for the one or more services, execute code for the one or more services within the context to generate a result for each of the one or more services, analyze the result for each of the one or more services to select a subset of results based on criteria associated with the program code, the data of interest, or the one or more services, and offer, to a user, services corresponding to the subset of results or the subset of results as suggestions to facilitate further development of the program code or use of the data of interest.

Image illustrating the code generated versus code executed to generate the UI

Systems and methods for automatic code generation

2021 – US 11379194 B2 | 2018 – US 10949173 B1

In accordance with some embodiments, a non-transitory computer-readable medium storing executable instructions that, when executed by a processor, may cause the processor to receive a value setting via a user interface associated with a first program code, and generate a second program code that, when executed, produces a computational result. To generate the second program code, the instructions, when executed by the processor, may cause the processor to obtain a portion of the first program code that, when executed with the value setting, generates the computational result, determine an organizational structure of the portion, the organizational structure including a plurality of stages, determine, in one or more of the plurality of stages, a first segment of code that accesses the value setting and a second segment of code that does not access the value setting, and replace the first segment with the value setting.

Image illustrating the code generated versus code executed to generate the UI

A method may include displaying an output, e.g., a figure, a data set, a symbolic expression or equation, a model, or any object with a representation that can be manipulated, e.g., a tree, a list, or a control loop, from executing program code. The method may include receiving an indication that the output has been modified through one or more manipulations, and generating code that represents modifications to the output, such that executing the code with the program code generates the output that has been modified.

Image showing the code generated to reproduce pan and zoom operation on a figure

A device analyzes program code to generate an intermediate version of the program code. When analyzing the program code, the device applies first rules for mapping portions of the program code to different portions of the intermediate version of the program code. The device generates the intermediate version of the program code that the different portions of the intermediate version of the program code mapped from the portions of the program code. The device applies, to the intermediate version of the program code, second rules for determining first portions of the intermediate version of the program code to keep together and second portions of the intermediate version of the program code to keep separate in a presentation to be generated from the program code, and generates the presentation from the program code based on applying the second rules to the intermediate version of the program code.

Image showing a MATLAB script rendered as slide presentation

A device may provide a user interface element for display in association with a displayed document that contains code. The user interface element may be associated with at least one adjustable state. The device may determine, based on a user interaction with the user interface element, a selected state of the at least one adjustable state of the user interface element. The device may generate information based on the selected state of the user interface element. The device may store the user interface element, the selected state of the user interface element, and the information in association with the document.

Image showing an interactive control to select color embedded in the code

A device may determine to provide help information associated with a portion of program code included in a program and provided via a user interface of a programming environment. The device may obtain generic help information, associated with the portion of program code, based on determining to provide the help information. The device may determine a set of rules for modifying the generic help information using the portion of program code. The device may analyze the program, using the set of rules, to identify information, included in the program, to be included in modified help information. The device may modify the generic help information, to generate the modified help information, using the information identified based on analyzing the program. The device may provide the modified help information for display via the user interface.

Image showing help being generated from code, and code being generated from help

A device may receive an indication to evaluate a portion of program code. The device may cause the portion of program code to be evaluated based on receiving the indication to evaluate the portion of program code. The device may determine an intermediate result used to generate an overall result of evaluating the portion of program code based on causing the portion of program code to be evaluated. The intermediate result may be determined by evaluating a sub-portion of program code included in the portion of program code. The device may receive information that identifies a granularity level for displaying the intermediate result. The granularity level may indicate whether the intermediate result is to be provided for display. The device may selectively provide the intermediate result for display based on the granularity level.

Image showing the display of the evaluation of compound statements

A device may receive an indication to evaluate a first portion of program code and a second portion of program code provided in a first section of a user interface. The device may evaluate the first portion of program code and the second portion of program code. The device may generate a first result corresponding to the first portion of program code and may generate a second result corresponding to the second portion of program code based on evaluating the first portion of program code and the second portion of program code. The device may provide the first result and the second result in a second section of the user interface. The second section may be separate from the first section. The device may provide a correspondence indicator that indicates a correspondence between the first result and the first portion of program code

Image showing the display of the output for a certain line of code

A device may provide a user interface that includes a first section for displaying multiple portions of program code and a second section for displaying multiple results of evaluating the multiple portions of program code. The device may detect an evaluation trigger associated with an unevaluated portion of program code of the multiple portions of program code. The device may determine one or more portions of program code to be evaluated based on detecting the evaluation trigger. The one or more portions of program code may be less than the multiple portions of program code. The device may cause the one or more portions of program code to be evaluated to generate one or more corresponding results. The device may provide the one or more corresponding results for display via the second section of the user interface.

Image showing dependencies of different line of code, which control the execution

A device may receive an indication to evaluate a first portion of program code and a second portion of program code provided via a user interface. The first portion of program code may include an error. The device may cause the first and second portions of program code to be evaluated based on receiving the indication to evaluate the first and second portions of program code. The second portion of program code may be evaluated after the first portion of program code. The device may generate a first result corresponding to the first portion of program code and a second result corresponding to the second portion of program code. The first result may include an error indicator. The device may provide the first result and the second result via the user interface.

Image showing code continue to execute after encountering an error in a non-dependent section of code

Text import tool for a technical computing environment

2013 – US 9613017 B2 | 2013 – US 8619090 B2

A device receives text that includes data values, and parses the text to identify data types associated with the data values. The device generates, based on the data values and the data types, a graphical representation of the text that includes data cells corresponding to the data values, and provides the graphical representation for display. The device receives one or more selections of one or more data cells in the graphical representation, stores the one or more selections as a selection history, and provides the selection history for display.

Image showing the main elements of the import user interface, which allows to dynamically control the way data gets imported

Graphical Data Conversion/Translation

2011 – US 20120313953 A1

A computer-readable storage media for storing computer-executable instructions executable by processing logic causes the processing logic to receive data in a first format for conversion to a second format different than the first format, wherein the data includes information having a first type and information having a second type and display the data in the first format via a graphical interface. One or more translation rules are received relating to processing the information having the first type or the information having the second type. The one or more translation rules are pre-applied to the data in the first format. Effects of the pre-applied rules on the displayed data are displayed via the graphical interface. The data in the first format is converted to the data in the second format based on the one or more translation rules.

Image showing the import of text data

In an embodiment, a technique for identifying a target for a pointing device in a display. The technique may involve identifying a trajectory of movement of the pointing device and identifying the target for the pointing device based on at least the identified trajectory. The target may be, for example, a graphical user interface (GUI) element that may be displayed in the display or a location in the display.

Image showing the different mouse trajectory angles that determine whether to keep the popout open or closed

A system and method identifies a set of operations or tasks, such as functions, of a programming system or technical computing environment based on a selection of input data. The technical computing environment may have a plurality of operations that may be called and executed. The operations may operate on one or more input arguments that may need to satisfy certain constraints. Upon selection of input data, a matching engine may classify the input data, and compare the classifications of the input data to the input argument constraints of a plurality of operations. The matching engine may identify those operations whose input argument constraints are satisfied by the selected input data, as well as those operations whose input argument constraints are not satisfied by the selected input data. The matching and non-matching operations may be provided to an action unit, which may be configured to perform some task or action with regard to some or all of the operations.

Image showing the required condition to display a specific plot

User interface for a display device

2009 – US D613299 S1

Image showing the fundamental user interface element for browsing hierarchical data

Three-dimensional visualization

2008 – US 9454283

In an embodiment, a mechanism for visualizing a graphical model in three dimensions is discussed. An executable graphical model is obtained that includes a hierarchy of model levels that include a top level. The hierarchy includes multiple components. A three-dimensional (3D) view of the graphical model is displayed that provides views of a first and second component at a first and second depth. A graphical indicator is generated in the view of the top level of the graphical model that is associated with the first component and also generated in the view of the second component. A control alters a user perspective of a view that includes at least one of the components in the graphical model.

Image showing the use of three dimensional layers to show different type of data

A device may receive an indication to perform a performance evaluation on program code. The device may partition the program code into multiple program code portions based on receiving the indication to perform the performance evaluation. The device may execute a first program code portion of the multiple program code portions. The device may determine that the first program code portion has finished executing, and may determine a performance characteristic associated with execution of the first program code portion based on determining that the first program code portion has finished executing. The device may execute a second program code portion, of the multiple program code portions, and may provide information that identifies the performance characteristic while the second program code portion is being executed

Image showing the display in real time of the execution time for a section of code

In a modeling environment, a composite signal configuration element is provided. The composite signal configuration element configures one or more signals of a composite signal having a selectable grouping of the one or more signals. Configuring signals of a composite signal allows for the selectable creation, editing, and separation of composite signals. In some embodiments, hierarchical composite signals may be selectably created edited or separated into individual signals. In certain embodiments the composite signal configuration element may include additional functionality for performing operation on the composite signal.

Image showing the user interface to edit a BUS signal

In one embodiment, a method for displaying elements of an attribute in an executable block diagram model is provided. The method may include displaying an executable block diagram model in a first window and receiving a first input from an input device, wherein the first input associates with a first parameter of a block diagram modeling component in the executable block diagram model, the first parameter is represented in the executable block diagram model by a first graphical affordances. The method may include triggering the display of a value of a first parameter in a first user interface widget in the first window.

Image showing local editing of parameters for a model block

Collaborative modeling environment

2007 – US 8005812 B1

A system may receive a model, extract information from the model, form a group of tags using the extracted information, and associate the group of tags with the model. The system may further receive a search query including one or more sequences of characters and determine whether to provide the model in a list of models created for the search query, based on the one or more sequences of characters and the group of tags

Image showing a gallery of projects the user is collaborating on