CN105247510A - 重算用户接口中变换的编译 - Google Patents

重算用户接口中变换的编译 Download PDF

Info

Publication number
CN105247510A
CN105247510A CN201480020880.7A CN201480020880A CN105247510A CN 105247510 A CN105247510 A CN 105247510A CN 201480020880 A CN201480020880 A CN 201480020880A CN 105247510 A CN105247510 A CN 105247510A
Authority
CN
China
Prior art keywords
data
dependence
user interface
reruning
transformation chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480020880.7A
Other languages
English (en)
Other versions
CN105247510B (zh
Inventor
A·D·雷迪什
O·柯勒
R·B·格瑞安
N·阿努阿尔
J·萨卡
V·米塔尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105247510A publication Critical patent/CN105247510A/zh
Application granted granted Critical
Publication of CN105247510B publication Critical patent/CN105247510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/13Digital output to plotter ; Cooperation and interconnection of the plotter with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Abstract

显示包含变换链的一个或多个显示出的结果的电子画布的重算用户接口的变换链的编译。该变换链包括相应数据源和数据宿之间的变换。用户对重算用户接口的编辑可致使变换中的一个或多个被重新执行,从而造成重算。编译涉及就依赖关系来分析所述重算用户接口的所述变换链,以创建实体之间的依赖关系的依赖关系图。例如,某些依赖关系可能在实体之间,以便指示出如果一个实体被评估,则另一实体也应被评估。依赖关系图然后被用来创建较低级别的执行步骤。依赖关系图被进一步提供给用于程序的运行时,使得依赖关系图在重算用户接口的操作期间可用。

Description

重算用户接口中变换的编译
背景
“重算文档”是示出各种数据源和数据宿并允许数据源和数据阱之间的声明性变换的电子文档。对于互连各种数据源和数据宿的任何给定一组变换,数据源的输出可由数据宿消费,或数据源的输出可在由数据宿消费之前经受变换。这些各种变换可被评估,造成遍及重算文档来表示的一个或多个输出。
用户可以添加和编辑声明性变换,而无需对编码的深度知识。这样的编辑自动使得变换被重新计算,从而造成一个或多个输出的变化。
重算文档的特定示例是电子数据表文档,它包括单元格的网格。任何给定单元格可能包括被求值以输出在该单元格中显示的特定值的表达式。表达式可以引用数据源,如一个或多个其他单元格或值。
简要概述
本文描述的至少一些实施例涉及重算用户接口的变换链的编译。该变换链包括相应数据源和数据宿之间的声明性变换。例如,在电子数据表的上下文中,数据宿可能是某一特定电子数据表单元格,变换可能是与该特定单元格相关联的表达式,数据源可能是一个或多个其他单元格或者所述表达式内引用的特定值。用户对重算用户接口的编辑可致使变换中的一个或多个被重新执行,从而造成重算。
编译涉及就依赖关系来分析所述重算用户接口的所述变换链,以创建实体之间的依赖关系的依赖关系图。例如,某些依赖关系可能在实体之间,以便指示出如果一个实体被评估,则另一实体也应被评估。其他依赖关系可能指定对实体的评估所依赖于的用户事件。依赖关系图然后被用来创建较低级别的执行步骤。依赖关系图被进一步提供给用于程序的运行时,使得依赖关系图在重算用户接口的操作期间可用。
该概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所要求保护的主题的范围。
附图简述
为了描述可获得以上记载的及其他好处和特征的方式,将参照附图呈现各个实施例的更具体描述。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
图1抽象地例示出其中可采用本文描述的一些实施例的计算系统;
图2抽象地例示出示例重算用户接口,它例示出带有中介变换的若干数据源和数据宿,且被用作为解释本文所述的更宽泛原理而提供的具体示例;
图3例示出示例编译环境,该示例编译环境包括访问变换链以及产生编译代码以及依赖关系链的编译器;以及
图4例示出用于编译重算用户接口的变换链的方法的流程图;
图5例示出其中可采用本发明的原理的环境,该环境包括构造依赖于输入数据的视图合成的数据驱动的合成框架(compositionframework);
图6例示出表示图5的环境的一个示例的流水线环境;
图7图示地例示出图6的流水线的数据部分的一实施例;
图8图示地例示出图6的流水线的分析部分的一实施例;以及
图9图示地例示出图6的流水线的视图部分的一实施例。
详细描述
本文描述的至少一些实施例涉及重算用户接口的变换链的编译。重算用户接口可能是举例而言诸如电子数据表之类的重算文档。然而,重算用户接口可以是包括变换链的一个或多个显示出的结果的任何显示出的电子画布。该变换链包括相应数据源和数据宿之间的多个变换。用户对重算用户接口的编辑可致使变换中的一个或多个被重新执行,从而造成重算。
编译涉及就依赖关系来分析所述重算用户接口的所述变换链,以创建实体之间的依赖关系的依赖关系图。例如,某些依赖关系可能在实体之间,以便指示出如果一个实体被评估,则另一实体也应被评估。依赖关系图然后被用来创建较低级别的执行步骤。依赖关系图被进一步提供给用于程序的运行时,使得依赖关系图在重算用户接口的操作期间可用。
将参考图1来描述对计算系统的一些介绍性讨论。然后,将参考后续附图描述重算用户接口的变换链的编译。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。计算系统100还包括显示器112,显示器112可被用于向用户显示视觉表示。
本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。
在本说明书以及权利要求书中,“重算用户接口”是用户可与之交互的且出现于其中存在一个或多个数据源和一个或多个数据宿的环境中的接口。此外,存在一组变换,每个变换可被声明性地定义在一个或多个数据源与一数据宿之间。例如,一个数据源的输出被馈入变换,变换的结果然后被提供给数据宿,从而潜在地导致对用户的可视化中的某种改变。
变换是“声明性的”,意义在于用户无需具体的编码知识就能编写定义变换的声明。由于变换被声明性地定义,用户可改变声明性变换。作为响应,重算被执行,导致可能不同的数据被提供给数据宿。
重算用户接口的一种经典示例是电子数据表文档。电子数据表文档包括单元格网格。最初,单元格是空的,从而电子数据表程序的任一单元格都具有成为数据源或数据宿的可能性,这取决于用户输入的声明性表达式的含义和上下文。例如,用户可能选择一给定单元格,并将一表达式键入该单元格中。该表达式可能与被赋予该单元格的表达出的标量值一样简单。该单元格可稍后被用作数据源。替代地,某一给定单元格的表达式可能采用等式的形式,其中输入值取自一个或多个其他单元格。在该情况下,该给定单元格是显示变换结果的数据宿。然而,在持续创作期间,该单元格可被用作用于创作者声明性作出的又一些其他变换的数据宿。
电子数据表文档的创作者不需要是命令式代码方面的专家。创作者仅仅是作出定义变换的声明,以及选择相应的数据宿和数据源。下文描述的图5至9提供了更一般化的声明性创作环境,其中描述了更一般化的重算用户接口。在该后续描述的环境中,可视化的控件可充当数据源和数据宿两者。此外,可通过对那些控件的简单操纵来更直观地创作声明性变换。
图2抽象地例示出一示例重算用户接口200,它是为解释本文所述的更宽泛原理而提供的具体示例。重算用户接口200仅仅是一示例,因为本文所述的原理可被应用于任何重算用户接口来为无数种类的应用创建无数种类的重算用户接口。
重算用户接口200包括若干声明性变换211至215。围绕表示变换211至216的箭头中每一个箭头的虚线环象征变换各自采用声明性形式。
在图2的该具体示例中,变换211包括相应的数据源201和数据宿202。注意,一个变换的数据宿也可以是另一变换的数据源。例如,变换211的数据宿202也充当变换212的数据源。此外,变换可具有多个数据源。从而,可使得变换链是分层的,从而相当复杂。例如,变换212包括数据源202和数据宿203。数据宿203包括两个数据源;即变换212的数据源202以及变换214的数据源205。也就是说,也许单个变换将两个数据源202和205引入数据宿203。变换213包括数据源204和数据宿205。
如果重算用户接口是例如电子数据表文档,则各种数据源/宿201至205可能是电子数据表单元格,在这种情况下,变换表示将与每个数据宿相关联的表达式。每个表达式的输出被显示在单元格内。从而,在电子数据表的情况下。数据源/宿可能是复杂的可视化的控件,既包括到变换链的输入参数也包括来自变换链的输出参数。例如,在图2中,存在从数据源205引导到数据宿201中的附加的声明性变换215。从而,数据源/宿201可能可视化表示来自变换215的输出的信息,以及向其他数据宿提供进一步数据。
重算用户接口不需要具有可视化控件。一个示例是意图执行基于变换的计算的重算用户接口,它消耗源数据以及更新宿数据,正常情况下不向用户显示关于计算的信息。例如,该重算用户接口可能支持后台计算。第二示例是具有操作诸如流程控制示例中的阀之类的外部执行器(actuator)的输出控件的重算用户接口。这样的控件类似于显示控件,因为它们的状态受到变换计算的结果以及信号输入的控制。然而,这里,输出是对某一设备的控制信号,而不是对显示器的可视化。例如,考虑用于控制机器人的重算用户接口。该重算用户接口可能具有针对依赖于输入机器人传感器(如伺服位置和速度、超声测距测量等)的机器人动作和行为的规则。或者考虑基于获取来自设备传感器的信号(如阀位置、流体流速等)的重算用户接口的流程控制应用。
图3例示出包括访问变换链301的编译器310的示例编译环境300。变换链301的一示例是图2的变换链200。图4例示出用于编译重算用户接口的变换链的方法400的流程图。方法400可由图3的编译器310执行。在一个实施例中,方法400可响应于处理器(一个或多个)102执行体现在一个或多个计算机可读存储介质上的计算机可执行指令由计算系统100来执行。
方法400包括就依赖关系来分析重算用户接口的变换链(动作401)。例如,参考图2,编译器300可分析变换211至215中的每一个。变换是声明性的,因此依赖关系可比使用命令式计算机语言表达变换的情况更容易地被提取。
基于该分析,在变换中所引用的实体之间创建依赖关系图(动作402)。本质上,依赖关系具有源实体和目标实体,源实体表示某一事件,目标实体表示对该目标实体的评估依赖于该事件。该事件的示例可以是一用户事件,其中用户以特定的方式与重算用户接口交互。作为另一示例,该事件可以是一实体间事件,其中如果源实体被评估,则该依赖关系的目标实体也应被评估。
编译器然后基于该依赖关系图来创建较低级别的执行步骤(动作403)。较低级别的执行步骤可以是例如命令式语言代码。命令式语言代码适合于响应来检测事件、引用某一事件图表来确定要执行的功能、以及执行该功能。因此,依赖关系图中的每一个依赖关系可被简化为一功能。依赖关系图本身可被提供给运行时(动作404)。命令式语言代码可以是例如脚本语言,诸如JAVASCRIPT。然而,本文所述的原理并不限制命令式语言代码是任何特定语言。
作为一示例,图3例示出编译器310也生成较低级别代码311。这样的较低级别代码311包括对变换链中每个变换的编译。例如,较低级别代码311被例示为包括表示变换链中每个变换的编译的元素321。在图2的上下文中,元素321将包括对变换211至215中每个变换的编译。较低级别代码311还包括各种各样的功能322。对依赖关系图中的每个依赖关系生成一功能。功能可以是命令式语言功能。
当命令式语言运行时检测到依赖关系图中所列出的某一事件时,经编译的功能322内的相应功能也被执行。因此,随着所有变换被适当地编译以及随着关于特定事件的每个依赖关系被专门的功能所强制执行,声明性重算用户接口被适当地表示为命令式语言代码。
因此,已经描述了一种用于编译声明性重算用户接口的有效机制。此外,运行时被提供有依赖关系图,而不是更广泛的解释器。
现在将参考图5至9描述允许非程序员使用重算用户接口创作具有复杂行为的程序的创作流水线的一具体示例。
图5例示出可被用于构造采用重算用户接口形式的交互式视觉合成(visualcomposition)的视觉合成环境500。该重算用户接口的构造是使用数据驱动的分析法以及对分析结果的可视化来执行的。环境500包括执行逻辑的合成框架510,该逻辑是独立于视图合成530的问题域(problem-domain)而被执行的。例如,相同的合成框架510可被用于为城市规划、分子模型、杂货店货架布局、机器性能或装配分析、或其他因域而异的渲染来编制交互式视图合成。
然而,合成框架510使用因域而异的数据520来构造因域而异的实际视觉合成530。因此,通过改变因域而异的数据520,相同的合成框架510可被用于任何数量的不同域的重算用户接口,而无需重新编码合成框架510本身。从而,通过变更数据而不是重新编码和重编译,流水线500的合成框架510可适用于可能无限数量的问题域,或者至少适用于多种多样的问题域。视图合成530然后可作为指令被提供给合适的2D或3D渲染模块。本文所述的架构还允许将预先存在的视图合成模型作为构件块方便地纳入到新的视图合成模型。在一个实施例中,多个视图合成可被包括在一集成视图合成中,以允许对某一模型的两个可能解之间进行容易地比较。
图6例示出流水线环境600形式的合成框架510的示例架构。流水线环境600尤其包括流水线601本身。流水线601包括数据部分610、分析部分620以及视图部分630,将分别参考后续的图7至9以及伴随的说明来详细描述各部分。现在,一般来说,流水线601的数据部分610可接受各种各样的不同类型的数据,以及以规范形式向流水线601的分析部分620呈现该数据。分析部分620将该数据绑定到各种模型参数,以及使用模型分析法来求解模型参数中的未知量。各种参数值然后被提供给视图部分630,视图部分730使用模型参数的那些值来构造合成视图。
流水线环境600还包括创作组件640,创作组件740允许流水线601的创作者或其他用户公式化表示和/或选择数据来提供给流水线601。例如,创作组件640可被用于将数据提供给数据部分610(由输入数据611表示)、分析部分620(由分析数据621表示)、以及视图部分630(由视图数据631表示)中的每一个。各种数据611、621和631表示图5的因域而异的数据520的一示例,且将在下文更详细地被描述。创作组件640支持提供各种各样的数据,包括例如数据模式、要被模型使用的实际数据、要从外部源引入的数据的位置或可能位置范围、可视(图形或动画)对象、可在某一画面上执行的用户界面交互、建模语句(如视图、等式、约束)、绑定等等。在一个实施例中,创作组件是整体管理器组件(图6中未示出,但由图5的合成框架510表示)提供的功能的仅仅一个部分。该管理器是响应于事件(诸如用户交互事件、外部数据事件、以及来自诸如求解器、操作系统等之类的任何其他组件的事件)来对所有其他组件(诸如数据连接器、求解器、查看器等)的操作进行控制和排序的整体指挥器。
在图6的流水线环境600中,创作组件640被用于向现有的流水线601提供数据,其中正是该数据从定义输入数据,到定义分析模型(上文称为“变换链”),到定义变换链的结果如何在视觉合成中被可视化来驱动整个过程。因此,不需要执行任何编码来使流水线601适应于多种多样的域和问题中的任一个。仅提供给流水线601的数据是要改变的事物,以便应用流水线601来从完全不同的问题域可视化不同的视觉合成,或者可能调整对现有域的问题求解。此外,由于数据可在使用时(即运行时)以及在创作时被改变,模型可在运行时被修改和/或扩展。从而,创作一模型与运行该模型之间存在较少的(如果有的话)区别。由于所有的创作涉及编辑数据项且由于软件从数据运行其所有行为,对数据的每个改变立即影响行为而无需重编码和重编译。
流水线环境600还包括检测何时某一用户已与显示出的视图合成交互以及然后确定作为响应要做什么的用户交互响应模块650。例如,某些类型的交互可能要求提供给流水线601的数据无改变,并从而要求对视图合成无改变。其他类型的交互可改变数据611、621或631中的一个或多个。在该情况下,该新的或经修改的数据可致使新的输入数据被提供给数据部分610,可能要求由分析部分620对该输入数据进行重分析,和/或可能要求由视图部分630对视图合成进行重新可视化。
因此,流水线601可被用于将数据驱动的分析可视化扩展到可能无限数量的问题域,或者至少扩展到多种多样的问题域。此外,不需要是程序员来变更视图合成以解决各种各样的问题。现在将参考图7的相应数据部分700、图8的分析部分800以及图9的视图部分900以这个顺序描述流水线601的数据部分610、分析部分620以及视图部分630中的每一个。如将从图7至图9显而易见的那样,流水线601可被构造为一系列变换组件,其中它们各自1)接收某一合适的输入数据,2)响应于该输入数据执行某一动作(诸如对输入数据执行变换),以及3)输出然后用作至下一变换组件的输入数据的数据。
图7例示出图6的流水线601的数据部分700的许多可能的实施例中的仅一个实施例。数据部分700的功能之一是以与参考图8所讨论的流水线的分析部分800所理解的模式相一致的规范格式提供数据。该数据部分包括访问异种数据701的数据访问组件710。输入数据701可以是“异种的”,意义在于数据可(但无需)以规范形式呈现给数据访问组件710。实际上,数据部分700被结构化使得异种数据可以是各种各样的格式。可被模型访问并操作的不同种类的域数据的示例包括文本和XML文档、表、列表、层级(树)、SQL数据库查询结果、BI(商业智能)立方体查询(cubequery)结果、诸如各种格式的2D绘图和3D视觉模型之类的图形信息、以及它们的组合(即合成)。进一步,通过为要被访问的数据提供定义(如模式),可被访问的数据的种类可以被声明性地扩展。因此,数据部分700允许各种各样的异种输入进入模型,且还支持可访问数据类型的运行时、声明性扩展。
在一个实施例中,数据访问部分700包括用于从数个不同数据源获得数据的数个连接器。由于连接器的主要功能之一是将对应的数据放入规范形式,这样的连接器在下文以及附图中将通常被称为“规范化器”。每个规范化器可能理解其相应的数据源的特定应用程序接口(API)。规范化器还可能包括用于与该对应的API接口以从数据源读取和/或向数据源写入数据的对应逻辑。从而,规范化器桥接在外部数据源与数据的存储器映像之间。
数据访问组件710评估输入数据701。如果输入数据已经是规范的且从而可被分析部分800处理,则输入数据可作为规范数据740被直接提供以被输入给分析部分800。
然而,如果输入数据701不是规范的,则合适的数据规范化组件730能够将输入数据701转换成规范格式。数据规范化组件730实际上是数据规范化组件730的集合,其各自能够将具有特定特征的输入数据转换成规范形式。规范化组件730的该集合被例示为包括四个规范化组件731、732、733和734。然而,省略号735表示也可能存在其他数量的规范化组件,也许甚至比所例示出的四个更少。
输入数据701甚至可包括一规范化器本身以及相关的数据特征(一个或多个)的标识。数据部分700然后可登记相关的数据特征,以及将规范化组件提供给数据规范化组件集合730,在该集合中它可被添加到可用的规范化组件。如果稍后接收到具有那些相关特征的输入数据,则数据部分710可将该输入数据指派给相关的规范化组件。也可从外部源动态地发现规范化组件,例如从网络上的定义的组件库。例如,如果用于某一给定数据源的模式是已知的但所需要的规范化器不存在,则可从外部组件库定位该规范化器,只要这样的库能被发现且包含所需的组件。流水线还可能解析模式仍未知的数据并将解析结果与已知组件库中的模式信息相比较,以尝试动态确定数据的类型,并从而定位所需要的规范化器组件。
替代地,不是输入数据包括该规范化组件的全部,而是输入数据可提供定义规范化变换的变换定义。集合730于是可被配置成将该变换定义转换成相应的规范化组件,该相应的规范化组件实施该变换以及零个或多个标准的默认规范化变换。这表示了某种情况的示例,在该情况中数据部分700消费输入数据且不进一步沿流水线向下提供对应的规范化数据。然而在可能大多数情况中,输入数据701导致对应的规范化数据740被生成。
在一个实施例中,数据部分710可被配置成根据输入数据的文件类型和/或格式类型将输入数据指派给数据规范化组件。其他特征可包括例如输入数据的源。默认的规范化组件可被指派给不具有指定的对应规范化组件的输入数据。该默认的规范化组件可应用一组规则来尝试规范化输入数据。如果该默认的规范化组件不能规范化数据,则该默认的规范化组件可能触发图5的创作组件540来提示用户以提供针对输入数据的模式定义。如果模式定义并非已经存在,则创作组件540可能呈现模式定义助手来帮助创作者生成可被用于将输入数据变换成规范形式的对应的模式定义。一旦数据是规范形式,伴随该数据的模式提供该数据的充分描述,流水线601的剩余部分不需要新代码来解释该数据。相反,流水线601包括能够根据可以可访问的模式声明语言表达的任何模式来解释数据的代码。
无论如何,规范数据740被提供作为来自数据部分700的输出数据以及作为至分析部分800的输入数据。规范数据可能包括包括各种各样的数据类型的字段。例如,这些字段可包括简单数据类型,诸如整数、浮点数、字符串、向量、数组、集合、层级结构、文本、XML文档、表、列表、SQL数据库查询结果、BI(商业智能)立方体查询结果、诸如各种格式的2D绘图和3D视觉模型之类的图形信息,或甚至这些各种数据类型的复杂组合。作为另一优点,规范化过程能够规范化各种各样的输入数据。此外,数据部分700能够接受的输入数据的多样性是可扩展的。这在多个模型被组合的情况中是有帮助的,如稍后在本说明书中将被讨论的那样。
图8例示出表示图6的流水线601的分析部分620的示例的分析部分800。数据部分700将规范化的数据801提供给数据模型绑定组件810。尽管规范化数据801可能具有任何规范化的形式以及任何数量的参数,其中参数的形式和数量甚至可能在输入数据的各片段之间不同。然而,为了讨论的目的,规范化数据801具有字段802A至802H,可总地被称为“字段802”。
另一方面,分析部分800包括数个模型参数811。模型参数的类型和数量可根据模型而不同。然而,为了对一具体示例的讨论的目的,将按照包括模型参数811A、811B、811C和811D来讨论模型参数811。在一个实施例中,模型参数的身份以及模型参数之间的分析关系可无需使用命令式编码而被声明性地定义。
数据模型绑定组件810在规范化的数据字段802和模型参数811之间调停,从而提供字段之间的绑定。在该情况下,数据字段802B被绑定到模型参数811A,如箭头803A所表示的那样。换言之,来自数据字段802B的值被用于填充模型参数811A。同样,在该示例中,数据字段802E被绑定到模型参数811B(如箭头803B所表示的那样),以及数据字段802H被绑定到模型参数811C(如箭头803C所表示的那样)。
数据字段802A、802C、802D、802F和802G未被示出与任何模型参数绑定。这是为了强调并非来自输入数据的所有数据字段总被要求要被用作模型参数。在一个实施例中,这些数据字段中的一个或多个可被用于向数据模型绑定组件810提供关于来自规范化的数据(对于该规范化的数据或也许任何将来的类似的规范化的数据)的哪些字段要被绑定到哪个模型参数的指令。这表示可被提供给图6的分析部分621的分析数据620的种类的示例。对于来自规范化的数据的哪些数据字段要被绑定到哪些模型参数的定义可用许多方式来被制定。例如,绑定可以1)由创作者在创作时显式设定,2)由用户在使用时显式设定(服从于创作者强加的任何限制),3)基于算法启发由创作组件640自动绑定,4)在确定不能在算法上作出绑定时由创作组件提示创作者和/或用户指定绑定。从而,绑定也可被解析为模型逻辑本身的一部分。
创作者定义哪些数据字段被映射到哪些模型参数的能力给予创作者在能够使用创作者感觉舒适的符号来定义模型参数方面很大的灵活性。例如,如果模型参数之一表示压力,创作者可将该模型参数命名为“压力”或“P”或对创作者有意义的任何其他符号。创作者可甚至重命名该模型参数,在一个实施例中这可能造成数据模型绑定组件810自动更新来允许先前与旧名字的模型参数的绑定反而被绑定到新名字的模型参数,从而保存了所希望的绑定。用于绑定的这种机制还允许在运行时绑定被声明性地改变。
模型参数811D被例示为带有星号来强调在该示例中模型参数811D未被数据模型绑定组件810赋值。因此,模型参数811D保持未知。换言之,模型参数811D未被赋值。
建模组件820执行许多功能。首先,建模组件820定义模型参数811之间的分析关系821。分析关系821被分类成三个一般类别,包括等式831、规则832以及约束833。然而,求解器的列表是可扩展的。例如,在一个实施例中,一个或多个仿真可被结合作为分析关系的一部分,只要对应的仿真引擎被提供并注册作为求解器。
如本文所使用的术语“等式”符合在数学领域中所使用的术语。
如本文所使用的术语“规则”指的是条件语句,其中如果一个或多个条件被满足(条件语句的条件或“if”(如果)部分),则要采取一个或多个动作(条件语句的结果或“then”(则)部分)。如果一个或多个模型参数被表达在条件语句中,或者一个或多个模型参数被表达在结果语句中,则规则被应用于模型参数。
如本文所使用的术语“约束”指的是限制被应用于一个或多个模型参数。例如,在城市规划模型中,某一房屋元素可被限制称放置在具有全部可能分区指定的子集的地图位置上。桥元素可被限制为低于某一最大长度,或某一数量的车道。
熟悉该模型的创作者可提供应用于该模型的这些等式、规则和约束的表达式。在仿真的情况下,创作者可能提供合适的仿真引擎,该仿真引擎提供模型参数之间的合适的仿真关系。建模组件820可为创作者提供一种为等式、规则和约束提供自然符号表达式的机制。例如,热力学相关模型的创作者可简单地从热力学教科书中复制并粘贴等式。将模型参数绑定到数据字段的能力允许创作者使用创作者熟悉的任何符号(诸如创作者所依赖的教科书中所使用的确切符号)或者创作者想要使用的确切符号。
在求解之前,建模组件820还标识模型参数中的哪些要被求解(即下文中,单数情况的“输出模型变量”,或复数情况的“输出模型变量”,或可能为单个或多个输出模型变量的“输出模型变量(一个或多个)”)。输出模型变量可以是未知参数,或者它们可以是已知模型参数,其中已知模型参数的值受求解操作中的改变的支配。在图8的示例中,在数据模型绑定操作之后,模型参数811A、811B和811C是已知的,而模型参数811D是未知的。因此,未知模型参数811D可能是输出模型变量之一。替代地或附加地,已知模型参数811A、811B和811C中的一个或多个也可能为输出模型变量。如果可能的话,求解器840然后求解输出模型变量(一个或多个)。在下文所述的一个实施例中,求解器840能够求解各种各样的输出模型变量,即使是在单个模型中,只要足够的输入模型变量被提供以允许求解操作被执行。输入模型变量可能是例如其值不受到求解操作期间的改变的支配的已知模型参数。例如,在图8中,如果模型参数811A和811D是输入模型变量,求解器可能反而替代地求解输出模型变量811B和811C。在一个实施例中,求解器可能为单个模型参数输出许多不同数据类型中的任何一个。例如,不管操作数是整数、浮点数、向量还是矩阵,某些等式操作(诸如加法、减法等)都适用。
在一个实施例中,即使当求解器840不能求解某一输出模型变量时,即使实际数值结果(或无论什么求解出的数据类型)的完全解是不可能的,求解器800仍能给出该输出模型变量的部分解。这允许流水线通过提示创作者需要什么信息来得出完全解来促进增量式开发。这还帮助消除创作时和使用时之间的区别,因为贯穿各种创作阶段至少部分解是可用的。举一抽象示例,假设分析模型包括等式a=b+c+d。假设a、c和d是输出模型变量,b是具有已知值5(在该情况中是整数)的输入模型变量。在求解过程中,求解器840仅能够求解输出模型变量之一“d”,并将值6(整数)赋予称为“d”的模型参数,但是求解器840不能求解“c”。由于“a”依赖于“c”,则称为“a”的模型参数也保持未知且未被求解。在该情况下,不是将整数值赋予“a”,求解器而是可能进行部分解并将串值“c+11”输出到模型参数“a”。如先前所述,当域专家正在创作一分析模型时这可能尤其有用,且将实质上用于提供关于模型参数“a”的内容的部分信息以及也将用于提示创作者需要提供允许“c”模型参数被求解的某些进一步的模型分析。该部分解结果可能或许以某种方式被输出在视图合成中,以允许域专家看到该部分结果。
求解器840在图8中以简化形式被示出。然而,如将参考图9所描述的那样,求解器840可指导多个构成的求解器的操作。在图8中,建模组件820然后使得模型参数(包括现在已知和被求解出的输出模型变量)可用作要被提供给图9的视图部分900的输出。
图9例示出表示图6的视图部分630的示例且表示重算用户接口200中的可视化的控件的示例的视图部分900。视图部分900从图8的分析部分800接收模型参数811。视图部分还包括包含视图组件的集合的视图组件储存库920。例如,视图组件储存库920在该示例中被例示为包括视图组件921至924,但是视图组件储存库920可包含任意数量的视图组件。视图组件各自可包括零个或多个输入参数。例如,视图组件921不包括任何输入参数。然而,视图组件922包括两个输入参数942A和942B。视图组件923包括一个输入参数943,而视图组件924包括一个输入参数944。也就是说这仅仅是一示例。输入参数可(但非必须)影响视觉项如何被渲染。视图组件921不包括任何输入参数的事实强调了可能存在无需引用任何模型参数而被生成的视图。考虑仅包括不改变的固定(内建)数据的视图。这样的视图可能例如为用户构成参考信息。替代地,考虑仅提供一种浏览目录的方式的视图,使得项目可从中被选取来导入模型中。
每个视图组件921至924包括或关联于对应的逻辑,当视图合成组件940使用对应的视图组件输入参数(一个或多个)(如果有的话)执行逻辑时,使得相应的视图项被放置在虚拟空间950中。虚拟项可以是静态图像或物体,或者可以是动态动画化的虚拟项或物体。例如,视图组件921至924中的每一个与对应的逻辑931至934相关联,当逻辑被执行时使得对应的虚拟项951至954分别被渲染在虚拟空间950中。虚拟项被例示为简单形状。然而,虚拟项可以是相当复杂的形式,或许甚至包括动画。在本说明书中,当一视图项被渲染在虚拟空间中时,这意味着视图合成组件已经创作了足够的指令,这些指令当被提供给渲染引擎时,渲染引擎能够在指定的位置和以指定的方式在显示器上显示该视图项。
使用例如图6的创作组件640,视图组件921至924或许甚至可作为视图数据被提供给视图部分900。例如,创作组件640可能提供使得创作者能够从若干几何单形中选择,或者或许组成其他几何单形的选择器。创作者也可能为每个视图组件指定输入参数的类型,而某些输入参数可以是视图部分900所强加的默认输入参数。与每个视图组件921至924相关联的逻辑也可作为视图数据被提供,和/或也可包括由视图部分900本身提供的某些默认功能。
视图部分900包括被配置成将模型参数中的至少一些绑定到视图组件921至924的对应输入参数的模型视图绑定组件910。例如,模型参数811A被绑定到视图组件922的输入参数942A,如箭头911A所表示的那样。模型参数811B被绑定到视图组件922的输入参数942B,如箭头911B所表示的那样。同样,模型参数811D被分别绑定到视图组件923和924的输入参数943和944,如箭头911C所表示的那样。模型参数811C未被示为绑定到任何对应的视图组件参数,强调了并非所有的模型参数都需要被流水线的视图部分所使用,即使那些模型参数在分析部分中是重要的。同样,模型参数811D被示为绑定到视图组件的两个不同输入参数,表示模型参数可被绑定到多个视图组件参数。在一个实施例中,模型参数与视图组件参数之间的绑定的定义可以通过以下来被制定:1)由创作者在创作时显式设定,2)由用户在使用时显式设定(服从于创作者强加的任何限制),3)基于算法启发由创作组件640自动绑定,和/或4)在确定不能在算法上作出绑定时由创作组件提示创作者和/或用户指定绑定。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.一种用于编译重算用户接口的变换链的方法,所述方法包括:
就依赖关系来分析所述重算用户接口的所述变换链以创建实体之间的依赖关系的依赖关系图的动作;
使用所述依赖关系图来创建较低级别的执行步骤的动作;以及
使得所述依赖关系图可用于程序的运行时的动作。
2.根据权利要求1所述的方法,其特征在于,所述依赖关系图包括实体间依赖关系标识,从所述实体间依赖关系标识可确定如果第一实体被评估,则第二实体也要被评估。
3.根据权利要求1所述的方法,其特征在于,所述依赖关系图包括用户事件依赖关系,从所述用户事件依赖关系可确定如果一用户事件发生,则一实体要被评估。
4.根据权利要求1所述的方法,其特征在于,所述重算用户接口是电子数据表文档。
5.根据权利要求1所述的方法,其特征在于,所述重算用户接口具有复杂控件,所述复杂控件具有到所述变换链的输入参数和来自所述变换链的输出参数。
6.根据权利要求1所述的方法,其特征在于,所述变换链被声明性地表达。
7.根据权利要求6所述的方法,其特征在于,所述较低级别的执行步骤以命令式语言代码表达。
8.一种包括其上具有计算机可执行指令的一个或多个计算机可读存储介质的计算机程序产品,所述计算机可执行指令被结构化成使得在计算系统的一个或多个处理器执行时,使所述计算系统执行一种用于编译的方法,所述方法包括:
分析重算用户接口中从一数据源到一数据宿的变换的动作;
创建所述变换的依赖关系图的动作,所述依赖关系图表示一事件与一实体之间的依赖关系;以及
使用所述依赖关系图来创建较低级别的执行步骤的动作。
9.根据权利要求8所述的计算机程序产品,其特征在于,所述用于编译的方法进一步包括:
使得所述依赖关系图可用于程序的运行时的动作。
10.根据权利要求8所述的计算机程序产品,其特征在于,所述数据宿是一控件。
CN201480020880.7A 2013-04-12 2014-04-11 重算用户接口中变换的编译 Active CN105247510B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/862,277 US9417890B2 (en) 2013-04-12 2013-04-12 Compilation of transformation in recalculation user interface
US13/862,277 2013-04-12
PCT/US2014/033708 WO2014169160A2 (en) 2013-04-12 2014-04-11 Compilation of transformation in recalculation user interface

Publications (2)

Publication Number Publication Date
CN105247510A true CN105247510A (zh) 2016-01-13
CN105247510B CN105247510B (zh) 2018-11-16

Family

ID=50694068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480020880.7A Active CN105247510B (zh) 2013-04-12 2014-04-11 重算用户接口中变换的编译

Country Status (16)

Country Link
US (2) US9417890B2 (zh)
EP (1) EP2984584A2 (zh)
JP (1) JP6563381B2 (zh)
KR (1) KR102194163B1 (zh)
CN (1) CN105247510B (zh)
AU (1) AU2014250924B2 (zh)
BR (1) BR112015025513B1 (zh)
CA (1) CA2908054C (zh)
CL (1) CL2015003015A1 (zh)
HK (1) HK1215478A1 (zh)
MX (1) MX348639B (zh)
MY (1) MY180955A (zh)
PH (1) PH12015502312A1 (zh)
RU (1) RU2666238C2 (zh)
SG (1) SG11201508262QA (zh)
WO (1) WO2014169160A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464572A (zh) * 2017-08-16 2017-12-12 重庆科技学院 多模式交互音乐感知系统及其控制方法
CN110619135A (zh) * 2018-06-18 2019-12-27 富士施乐株式会社 信息处理设备和非暂时性计算机可读介质

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952747B1 (en) * 2013-09-24 2018-04-24 Amazon Technologies, Inc. Updating data fields in a user interface
US9733915B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Building of compound application chain applications
US9658836B2 (en) 2015-07-02 2017-05-23 Microsoft Technology Licensing, Llc Automated generation of transformation chain compatible class
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US9733993B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Application sharing using endpoint interface entities
US10198252B2 (en) 2015-07-02 2019-02-05 Microsoft Technology Licensing, Llc Transformation chain application splitting
US9712472B2 (en) 2015-07-02 2017-07-18 Microsoft Technology Licensing, Llc Application spawning responsive to communication
US9785484B2 (en) 2015-07-02 2017-10-10 Microsoft Technology Licensing, Llc Distributed application interfacing across different hardware
US9860145B2 (en) 2015-07-02 2018-01-02 Microsoft Technology Licensing, Llc Recording of inter-application data flow
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US10031724B2 (en) 2015-07-08 2018-07-24 Microsoft Technology Licensing, Llc Application operation responsive to object spatial status
US10277582B2 (en) 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
US9547478B1 (en) * 2015-09-30 2017-01-17 Semmle Limited Hierarchical dependency analysis enhancements using disjoint-or trees
US10608900B2 (en) * 2015-11-04 2020-03-31 Microsoft Technology Licensing, Llc Generating a deferrable data flow
US10001976B2 (en) 2015-12-28 2018-06-19 Microsoft Technology Licensing, Llc Generation of a device application
US11615071B2 (en) * 2019-10-24 2023-03-28 Palantir Technologies Inc. Methods and systems for data synchronization
US11237752B2 (en) 2020-04-21 2022-02-01 International Business Machines Corporation Automated data translation
US11860894B2 (en) 2020-08-24 2024-01-02 International Business Machines Corporation Database management system data replication

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332686A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp ユーザインタフェース挙動記述方法、ならびにそれを用いたユーザインタフェース装置、ソフトウェア評価方法およびソフトウェア作成方法
US5471612A (en) * 1994-03-03 1995-11-28 Borland International, Inc. Electronic spreadsheet system and methods for compiling a formula stored in a spreadsheet into native machine code for execution by a floating-point unit upon spreadsheet recalculation
US6317758B1 (en) * 1998-02-20 2001-11-13 Corel Corporation Method and system for detecting and selectively correcting cell reference errors
US6460059B1 (en) * 1998-08-04 2002-10-01 International Business Machines Corporation Visual aid to simplify achieving correct cell interrelations in spreadsheets
US6574788B1 (en) * 2000-11-13 2003-06-03 Reshape, Inc. Method and system for automatically generating low level program commands as dependency graphs from high level physical design stages
EP1367514A1 (en) * 2002-05-29 2003-12-03 Framtidsforum I & M AB Method in connection with a spreadsheet program
US20060080594A1 (en) * 2004-10-07 2006-04-13 Chavoustie Michael D Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet
WO2008107665A2 (en) * 2007-03-05 2008-09-12 Resolver Systems Ltd A graphical user interface for use in integrating programming functions with spreadsheet applications
US20090292730A1 (en) * 2008-05-23 2009-11-26 Microsoft Corporation Spreadsheet formula translation of server calculation rules
US7984371B2 (en) * 2005-02-18 2011-07-19 Andrew Joseph Zdenek Method and system for the graphical modeling of data and calculations of a spreadsheet
US8352397B2 (en) * 2009-09-10 2013-01-08 Microsoft Corporation Dependency graph in data-driven model

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100112B1 (en) * 1999-05-20 2006-08-29 Microsoft Corporation Dynamic properties of documents and the use of these properties
FR2793912B1 (fr) * 1999-05-21 2001-08-10 Crouzet Automatismes Outil universel de compilation de graphes
AU2001264895A1 (en) * 2000-06-21 2002-01-02 Microsoft Corporation System and method for integrating spreadsheets and word processing tables
US7010779B2 (en) 2001-08-16 2006-03-07 Knowledge Dynamics, Inc. Parser, code generator, and data calculation and transformation engine for spreadsheet calculations
US8032821B2 (en) * 2006-05-08 2011-10-04 Microsoft Corporation Multi-thread spreadsheet processing with dependency levels
US9037961B1 (en) * 2006-09-18 2015-05-19 Credit Suisse Securities (Usa) Llc System and method for storing a series of calculations as a function for implementation in a spreadsheet application
US8880564B2 (en) * 2007-10-11 2014-11-04 Microsoft Corporation Generic model editing framework
US8386916B2 (en) 2008-12-29 2013-02-26 SAP France S.A. Systems and methods to create a multidimensional expression calculated member in a spreadsheet cell
US8692826B2 (en) * 2009-06-19 2014-04-08 Brian C. Beckman Solver-based visualization framework
US8502823B2 (en) * 2009-12-21 2013-08-06 Business Objects Software Limited Method and system for lane graph visualization
US8627199B1 (en) * 2010-01-29 2014-01-07 Asana, Inc. Incremental computing of changes to computer user interfaces
US20110314365A1 (en) 2010-06-17 2011-12-22 Microsoft Corporation Decompiling loops in a spreadsheet

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332686A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp ユーザインタフェース挙動記述方法、ならびにそれを用いたユーザインタフェース装置、ソフトウェア評価方法およびソフトウェア作成方法
US5471612A (en) * 1994-03-03 1995-11-28 Borland International, Inc. Electronic spreadsheet system and methods for compiling a formula stored in a spreadsheet into native machine code for execution by a floating-point unit upon spreadsheet recalculation
US6317758B1 (en) * 1998-02-20 2001-11-13 Corel Corporation Method and system for detecting and selectively correcting cell reference errors
US6460059B1 (en) * 1998-08-04 2002-10-01 International Business Machines Corporation Visual aid to simplify achieving correct cell interrelations in spreadsheets
US6574788B1 (en) * 2000-11-13 2003-06-03 Reshape, Inc. Method and system for automatically generating low level program commands as dependency graphs from high level physical design stages
EP1367514A1 (en) * 2002-05-29 2003-12-03 Framtidsforum I & M AB Method in connection with a spreadsheet program
US20060080594A1 (en) * 2004-10-07 2006-04-13 Chavoustie Michael D Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet
US7984371B2 (en) * 2005-02-18 2011-07-19 Andrew Joseph Zdenek Method and system for the graphical modeling of data and calculations of a spreadsheet
WO2008107665A2 (en) * 2007-03-05 2008-09-12 Resolver Systems Ltd A graphical user interface for use in integrating programming functions with spreadsheet applications
US20090292730A1 (en) * 2008-05-23 2009-11-26 Microsoft Corporation Spreadsheet formula translation of server calculation rules
US8352397B2 (en) * 2009-09-10 2013-01-08 Microsoft Corporation Dependency graph in data-driven model

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DAVID BOTZER 等: "Adi-Active Dependency Integration", 《HTTP://RESEARCHWEB.WATSON.IBM.COM/HAIFA/PROJECTS/SOFTWARE/ADI/PAPERS/ADI_V8.PDF》 *
FABIAN NUNEZ 等: "ViSSh: A Data Visualisation Spreadsheet", 《SPRINGER VIENNA》 *
JORMA SAJANIEMI 等: "《Goals and Plans in Spreadsheet Calculation》", 31 December 1999 *
PETER H. FEILER 等: "Propagator: A Family of Patterns", 《TECHNOLOGY OF OBJECT-ORIENTED LANGUAGE AND SYSTEMS》 *
PETER SESTOFT: "《Spreadsheet technology》", 31 January 2012 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464572A (zh) * 2017-08-16 2017-12-12 重庆科技学院 多模式交互音乐感知系统及其控制方法
CN107464572B (zh) * 2017-08-16 2020-10-16 重庆科技学院 多模式交互音乐感知系统及其控制方法
CN110619135A (zh) * 2018-06-18 2019-12-27 富士施乐株式会社 信息处理设备和非暂时性计算机可读介质

Also Published As

Publication number Publication date
US20140310697A1 (en) 2014-10-16
AU2014250924B2 (en) 2019-05-02
AU2014250924A1 (en) 2015-10-15
US20160335063A1 (en) 2016-11-17
MX2015014301A (es) 2015-12-08
EP2984584A2 (en) 2016-02-17
WO2014169160A2 (en) 2014-10-16
BR112015025513A8 (pt) 2019-12-10
PH12015502312B1 (en) 2016-02-10
US9417890B2 (en) 2016-08-16
CN105247510B (zh) 2018-11-16
JP6563381B2 (ja) 2019-08-21
PH12015502312A1 (en) 2016-02-10
RU2666238C2 (ru) 2018-09-06
WO2014169160A3 (en) 2015-04-09
MX348639B (es) 2017-06-22
CL2015003015A1 (es) 2016-07-15
CA2908054C (en) 2020-11-10
SG11201508262QA (en) 2015-11-27
KR102194163B1 (ko) 2020-12-22
BR112015025513A2 (pt) 2017-07-18
HK1215478A1 (zh) 2016-08-26
JP2016522476A (ja) 2016-07-28
BR112015025513B1 (pt) 2022-08-16
RU2015142982A (ru) 2017-04-13
US9645801B2 (en) 2017-05-09
CA2908054A1 (en) 2014-10-16
KR20150143658A (ko) 2015-12-23
MY180955A (en) 2020-12-14

Similar Documents

Publication Publication Date Title
CN105247510A (zh) 重算用户接口中变换的编译
CN105210036A (zh) 声明性程序的增量式编译
CN105164643A (zh) 重算用户接口中的信号捕捉控件
CN105210054B (zh) 数据源到复合控件的绑定
CN105637476A (zh) 控制事件的辅助创建
CN104662514A (zh) 基于模型关联关系的遗产软件系统的现代化
Bulatewicz et al. The simple script wrapper for OpenMI: enabling interdisciplinary modeling studies
CN112199086A (zh) 自动编程控制系统、方法、装置、电子设备及存储介质
Karhela et al. Open ontology-based integration platform for modeling and simulation in engineering
Yun et al. Cropbox: a declarative crop modelling framework
Kulshreshtha et al. Efficient computation of derivatives for solving optimization problems in R and Python using SWIG-generated interfaces to ADOL-C
Dupuy-Chessa et al. A software engineering method for the design of mixed reality systems
Neumann et al. Introduction of an Assistant for Low-Code Programming of Hydraulic Components in Mobile Machines
Drozd et al. R for all (I): Introduction to the new age of biological analyses
Eterigho et al. A Review On The Comparative Roles Of Mathematical Softwares In Fostering Scientific And Mathematical Research
Gratien Implementing Lowest-Order Methods for Diffusive Problems with a DSEL
Karhela Open ontology-based integration platform for modeling and simulation in engineering Author (s) Karhela, Tommi; Niemistö, H
Papajorgji et al. MDA with Oliva Nova

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1215478

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant