IP Library Granted Patent US 7,620,933
Granted Patent B1
US 7,620,933 · App. 10/939,919 · Granted Nov 17, 2009

Language binding system

Assignee: DreamFactory Software, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,620,933
App. No.
10/939,919
Granted
Nov 17, 2009
Kind
B1
Abstract

A method for determining a distance between a first node and a second node that share a root node within a structured program. A first node path between the first node and the root node is determined, and a first node depth is counted. A second node path between the second node and the root node is also determined, and a second node depth is likewise counted. One of the node paths that has a highest count is designated as the deepest path, and the other is designated as the shallowest path. The deepest path is descended to a depth that is equal to that of the shallowest path, and a distance count is increased by one count for each node that was descended on the deepest path to reach a depth that is equal to the shallowest path. Both the deepest path and the shallowest path are descended to the root node, and the distance count is increased by two counts for each node that was descended. The distance count is provided as the distance between the first node and the second node.

Claims (43)

1. A method for determining a distance between a first node and a second node that share a nearest root node within a structured program, the method comprising programming a processor to perform the steps of:

determining a shortest first node path between the first node and the nearest root node,

counting a first node depth between the first node and the nearest root node along the first node path,

determining a shortest second node path between the second node and the nearest root node,

counting a second node depth between the second node and the nearest root node along the second node path,

designating one of the first node path and the second node path that has a highest count as a deepest node path,

designating another of the first node path and the second node path that has a lowest count as a shallowest node path,

descending the deepest node path to a node depth that is equal to that of the shallowest node path,

increasing a distance count by one count for each node that was descended on the deepest node path to reach a node with a depth that is equal to that of the shallowest node path,

descending both the deepest node path and the shallowest node path to the nearest root node,

increasing the distance count by two counts for each node that was descended on the deepest node path and the shallowest node path to reach the nearest root node, and

providing the distance count as the distance between the first node and the second node.

2. A method for selecting one of a second node and a third node as a called node from a first node in a structured program, the method comprising programming a processor to perform the steps of:

determining a distance between the first node and the second node by,

locating a nearest root node between the first node and the second node,

determining a shortest first node path between the first node and the nearest root node,

counting a first node depth between the first node and the nearest root node along the first node path,

determining a shortest second node path between the second node and the nearest root node,

counting a second node depth between the second node and the nearest root node along the second node path,

designating one of the first node path and the second node path that has a highest count as a deepest node path,

designating another of the first node path and the second node path that has a lowest count as a shallowest node path,

arbitrarily assigning one of the first node path and the second node path as the deepest node path and another of the first node path and the second node path as the shallowest node path when the first node depth is equal to the second node depth,

descending the deepest node path to a node depth that is equal to that of the shallowest node path,

increasing a distance count by one count for each node that was descended on the deepest node path to reach a node with a depth that is equal to that of the shallowest node path,

descending both the deepest node path and the shallowest node path to the nearest root node,

increasing the distance count by two counts for each node that was descended on the deepest node path and the shallowest node path to reach the nearest root node, and

providing the distance count as a second distance between the first node and the second node,

determining a distance between the first node and the third node by,

locating a nearest root node between the first node and the third node,

determining a shortest first node path between the first node and the nearest root node,

counting a first node depth between the node and the nearest root node along the first node path,

determining a shortest third node path between the third node and the nearest root node,

counting a third node depth between the third node and the nearest root node along the third node path,

designating one of the first node path and the third node path that has a highest count as a deepest node path,

designating another of the first node path and the third node path that has a lowest count as a shallowest node path,

arbitrarily assigning one of the first node path and the third node path as the deepest node path and another of the first node path and the third node path as the shallowest node path when the first node depth is equal to the third node depth,

descending the deepest node path to a node depth that is equal to that of the shallowest node path,

increasing a distance count by one count for each node that was descended on the deepest node path to reach a node with a depth that is equal to that of the shallowest node path,

descending both the deepest node path and the shallowest node path to the nearest root node,

increasing the distance count by two counts for each node that was descended on the deepest node path and the shallowest node path to reach the nearest root node, and

providing the distance count as a third distance between the first node and the third node,

selecting the second node as the called node when the second distance is shorter than the third distance, and

selecting the third node as the called node when the third distance is shorter than the second distance.

Assignments (2)
SECURITY INTEREST Recorded May 12, 2016
From: DREAMFACTORY SOFTWARE, INC.
To: NEW ENTERPRISE ASSOCIATES 11, LIMITED PARTNERSHIP
Reel/Frame 038576/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2004
From: APPLETON, WILLIAM C.
To: DREAMFACTORY SOFTWARE, INC.
Reel/Frame 015790/0685 →