Software weaving and merging

Information

  • Patent Application
  • 20070157073
  • Publication Number
    20070157073
  • Date Filed
    December 29, 2005
    18 years ago
  • Date Published
    July 05, 2007
    17 years ago
Abstract
There is disclosed transforming an electronic plain text to an electronic anchored text, comprising inserting anchors located between characters in said plain text. Each character has a unique association with a nearest preceding or succeeding anchor. Each anchor serves as a join point and specifies a predetermined state and a predetermined operation. There is also disclosed the weaving and merging of two or more electronic plain texts.
Description

DESCRIPTION OF THE DRAWINGS


FIG. 1 shows a C program fragment with porting concerns.



FIG. 2 is a schematic block diagram of a method for merging/weaving sessions embodying the invention.



FIG. 3 is a listing of the ParEdit syntax.



FIG. 4 shows an example of reference and sub anchors.



FIG. 5 shows example weaver semantics domains.



FIG. 6 shows an example revision plan and molecules' weaving.



FIG. 7 shows an example weaving string paste.



FIG. 8 shows an example weaving anchored text cut.



FIG. 9 shows an example weaving string cut.



FIG. 10 shows an example weaving anchored text copy.



FIGS. 11 and 12 show an example weaving anchored text paste.



FIG. 13 shows an example working text as an association list.



FIG. 14 shows example ANSI/ISO C99 expression labels.



FIG. 15 shows a computer implementation for the example software merging and weaving.


Claims
  • 1. A method for transforming an electronic plain text to an electronic anchored text, comprising inserting anchors located between characters in said plain text, each character having a unique association with a nearest preceding or succeeding anchor, and each anchor serving as a join point and specifying a predetermined state and a predetermined operation.
  • 2. The method of claim 1, wherein said predetermined operations act on one or more of: (a) only the anchor;(b) the anchor and a preceding set of characters; and(c) the anchor and a succeeding set of characters.
  • 3. The method of claim 2, wherein said predetermined operations include cut, copy and paste.
  • 4. The method of claim 1, wherein there is one anchor per lexer token of said plain text characters.
  • 5. The method of claim 1, further comprising inserting one or more subanchors located between two adjacent anchors, a subanchor delineating a boundary of an additional text region between said two adjacent anchors and being grouped with one of said two adjacent anchors, and each subanchor serving as a join point and specifying a predetermined state and a predetermined operation.
  • 6. The method of claim 5, wherein said grouping with an adjacent anchor includes either of (i) a preceding anchor and its associated text, and (ii) a succeeding anchor and its associated text.
  • 7. The method of claim 1, wherein said predetermined state includes either working anchored text or plain character strings and a partial ordering of execution among the predetermined operations on said working text and plain strings.
  • 8. A method of weaving two or more electronic plain texts comprising: transforming each said electronic plain text to an electronic anchored text by inserting anchors located between characters in said plain text, wherein each character has a unique association with a nearest preceding or succeeding adjacent anchor, and each anchor serves as a join point and specifies a predetermined state and a predetermined operation; andperforming one or more of the operations of copying, cutting and pasting anchored text or character strings associated with a said anchor from one said anchored text to another anchor point in another said anchored text.
  • 9. The method of claim 1, wherein said predetermined operations act on one or more of: (a) only the anchor;(b) the anchor and a preceding set of characters; and(c) the anchor and a succeeding set of characters.
  • 10. The method of claim 9, wherein said predetermined operations include cut, copy and paste.
  • 11. The method of claim 8, wherein there is one anchor per lexer token of said plain text characters.
  • 12. The method of claim 8, further comprising inserting one or more subanchors located between two adjacent anchors, a subanchor delineating a boundary of an additional text region between said two adjacent anchors and being grouped with one of said two adjacent anchors, and each subanchor serving as a join point and specifying a predetermined state and a predetermined operation.
  • 13. The method of claim 12, wherein said grouping with an adjacent anchor includes either of (i) a preceding anchor and its associated text, and (ii) a succeeding anchor and its associated text.
  • 14. The method of claim 8, wherein said predetermined state includes either working anchored text or plain character strings and a partial ordering of execution among the predetermined operations on said working text and plain strings.
  • 15. A method of merging two or more electronic plain texts comprising: transforming each said electronic plain text to an electronic anchored text by inserting anchors located between characters in said plain text, wherein each character has a unique association with a nearest preceding or succeeding adjacent anchor, and each anchor serves as a join point and specifies a predetermined state and a predetermined operation;identifying differences among two plain texts and expressing the differences as a part of the said predetermined operations; andexecuting the predetermined operations on one of the transformed texts to bring it to a merged state.
  • 16. The method of claim 15, wherein the step of identifying the differences among the two plain texts is performed from an ancestor text.
  • 17. A method of versioning electronic plain text starting from an ancestor text common to descendent versions thereof, comprising: transforming each said ancestor plain text to an electronic anchored text by inserting anchors located between characters in said plain text, wherein each character has a unique association with a nearest preceding or succeeding adjacent anchor, and each anchor serves as a join point and specifies a predetermined state and a predetermined operation;specifying descendent versions of said transformed ancestor text using anchored text operations; andexecuting said anchored text operations from any one version on to the anchored text of another version to merge changes of the first version into the state of the second version.
  • 18. A system for transforming an electronic plain text to an electronic anchored text, comprising computational means for inserting anchors located between characters in said plain text, each character having a unique association with a nearest preceding or succeeding anchor, and each anchor serving as a join point and specifying a predetermined state and a predetermined operation.
  • 19. A system for weaving two or more electronic plain texts comprising: computational means for transforming each said electronic plain text to an electronic anchored text by inserting anchors located between characters in said plain text, wherein each character has a unique association with a nearest preceding or succeeding adjacent anchor, and each anchor serves as a join point and specifies a predetermined state and a predetermined operation; andcomputational means for performing one or more of the operations of copying, cutting and pasting anchored text or character strings associated with a said anchor from one said anchored text to another anchor point in another said anchored text.
  • 20. A computer program product comprising a computer program storage medium and a computer program stored thereon for transforming an electronic plain text to an electronic anchored text, said computer program including code means to insert anchors located between characters in said plain text, each character having a unique association with a nearest preceding or succeeding anchor, and each anchor serving as a join point and specifying a predetermined state and a predetermined operation.
  • 21. A computer program product comprising a computer program storage medium and a computer program stored thereon for merging two or more electronic plain texts, said computer program including code means for: transforming each said electronic plain text to an electronic anchored text by inserting anchors located between characters in said plain text, wherein each character has a unique association with a nearest preceding or succeeding adjacent anchor, and each anchor serves as a join point and specifies a predetermined state and a predetermined operation; andperforming one or more of the operations of copying, cutting and pasting anchored text or character strings associated with a said anchor from one said anchored text to another anchor point in another said anchored text.