Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Patents Microsoft

Microsoft Patents 'IsNot', Enlists WTO 720

Milhouse102 writes "I was just reading an article on The Register about Microsoft's offshore patent war following Ballmer's recent outburst in Asia. I came across this little nugget, it seems MS has patented BASIC's IsNot operator."
This discussion has been archived. No new comments can be posted.

Microsoft Patents 'IsNot', Enlists WTO

Comments Filter:
  • Not Quite (Score:5, Informative)

    by RangerRick98 ( 817838 ) on Friday November 19, 2004 @10:46AM (#10863797) Journal
    Unless I'm mistaken, they've only applied for a patent; it has not yet been granted. Sadly, given the state of the patent system nowadays, it would not surprise me if it is granted.
  • Patent Application (Score:1, Informative)

    by mzwaterski ( 802371 ) on Friday November 19, 2004 @10:49AM (#10863832)
    They have filed an application, it IsNot allowed yet.
  • by N Monkey ( 313423 ) on Friday November 19, 2004 @10:49AM (#10863839)
    After a quick read of the patent, it seems to say that it is a test to see if two "variables" are actually the same entity, i.e. at the same address.

    That would seem to imply

    #define IsNot(A,B) (&(A) != &(B))

    infringes?

    Surely this is done in things like memmove() to prevent overwriting of data?

  • by arn0n ( 675488 ) on Friday November 19, 2004 @10:50AM (#10863844)
    From the patent application:
    A system, method and computer-readable medium support the use of a single operator that allows a comparison of two variables to determine if the two variables point to the same location in memory.

    Prior art:
    The C operator !=, for comparing two pointers.

  • by RangerRick98 ( 817838 ) on Friday November 19, 2004 @10:54AM (#10863895) Journal
    IANAL, but the patent application seems to be pretty specific in saying that it's only in BASIC that they're trying to patent it, so a similar thing in C would likely be unaffected. I don't know what good having this patent would do them, honestly. I can't conceive of any way off the top of my head that this could be infringed if it is granted. I 'll let that kind of brainstorming up to my fellow /.ers.
  • by Anonymous Coward on Friday November 19, 2004 @10:56AM (#10863923)
    More to the point, the operator has existed in Lisp since at least the '60s:

    (neq a b)

    In Java the operator is simply !=, which tests for pointer equivalence in all non-numerical cases:

    a != b

    But ISNOT is likely a Bill Gates invention. It would seem the whole of the patent rests on a single claim, #2: the operator being in BASIC. Can this possibly stand up?

  • by albalbo ( 33890 ) on Friday November 19, 2004 @11:03AM (#10863994) Homepage
    Actually, they specifically admit "Is" as prior art, the example they give is:

    If (Not(A Is B)) Then (Goto Z) End If

    By generating an IsNot operator, such that Not(A Is B)===(A IsNot B), you're re-ordering the sentance:

    If (A IsNot B) Then (Goto Z) End If

    That's what they're trying to patent. The use of a keyword rather than boolean logic. I rather hope and suspect this patent will fail for insufficient inventive step.
  • Relevant section (Score:2, Informative)

    by mykdavies ( 1369 ) on Friday November 19, 2004 @11:05AM (#10864004)

    Extract from application:

    [0013] Similarly, (for example), if a user wanted to perform Z if the variables a and b do not point to the same memory location, the following code, combining two operators, "Is" and "Not" (a negation of the expression) would be required:

    3 Dim a, b As x a = New x( ) b = New x( ) . . . If Not (a Is b) Then (Perform Z) End If

    [0014] Such a language construction is ungrammatical, requires more typing and violates the philosophy on which BASIC rests. It would be helpful therefore, if a single more intuitive operator could perform the function that the combination of the two operators Is and Not typically performs.

    SUMMARY OF THE INVENTION

    [0015] A system, method and computer-readable medium support the use of a single operator that allows a comparison of two variables to determine if the two variables point to different locations in memory, that is, the reverse of the existing "Is" operator in a BASIC programming language or a derivative of BASIC or BASIC-like programming language. In one embodiment of the invention, the memory locations represent objects. The new operator enables a user to determine if the left operand (e.g., a reference type) "is not" the same instance as the reference type listed as the right operand. The use of a single operand for this concept may increase the readability of the programming language.

    Wow. They even explain that it's neither original, innovative nor useful. How can this application fail?

  • Re:Prior art (Score:3, Informative)

    by Alioth ( 221270 ) <no@spam> on Friday November 19, 2004 @11:05AM (#10864012) Journal
    It's not prior art because the patent application states it should be in the BASIC language, where your example is in C.

    However, having said that, the patent should not be granted because it's *obvious*.
  • by N Monkey ( 313423 ) on Friday November 19, 2004 @11:06AM (#10864016)
    If ever there were an example of how completely broken and useless the current patent system is then this is it.

    Before you burst a blood vessel, this appears to only be a patent application, not a granted patent.

    The USPTO "recently" changed its rules (to match the rest of the world) and no publishes applications before they are granted.
  • Why bother? (Score:2, Informative)

    by Smack ( 977 ) on Friday November 19, 2004 @11:06AM (#10864017) Homepage
    It is weird and pointless, but not exactly trivial. Since BASIC doesn't expose pointers to the programmer, you need a custom operand to compare them. And this patent only covers BASIC-style languages, as you can clearly see from the claims.
  • by OblongPlatypus ( 233746 ) on Friday November 19, 2004 @11:07AM (#10864022)
    Unless I'm completely mistaken, each of the claims in a patent stands separately, so if the patent is granted, the first claim would have merit on its own, and a C version would indeed infringe.
  • by albalbo ( 33890 ) on Friday November 19, 2004 @11:08AM (#10864038) Homepage
    UK patent application GB0312175.3 [patent.gov.uk], someone already tried:

    "The applicant appeared to be trying to protect the use of '0' and '1' in computer technology. [...] The applicant appeared to have completely misunderstood the patent system, and had not actually invented anything."

    Via softwarepatents.co.uk [softwarepatents.co.uk]. Well, at least *that* didn't get through. ARM's patent on the use of pointer arithmetic in CPU emulators *was* allowed, though.
  • Re:Not Quite (Score:5, Informative)

    by servoled ( 174239 ) on Friday November 19, 2004 @11:09AM (#10864042)
    Yes, this is a publication of a pending patent application. The easy to tell is to look at the number: 20040230959.

    Published patent applications use the format of YYYY/####### to denote the Year and the number in which the application was received.

    Granted patents have the format of ####### with no year attached to denote the order in which the patent was granted. They are someone around 6,800,000 right now.
  • by unfortunateson ( 527551 ) on Friday November 19, 2004 @11:11AM (#10864069) Journal
    This really boils down to a RTFA, but I'll expound here:

    First off, the IsNot operator is not part of VB 6.0 or VB.net 2003 (I haven't checked 2005, which is still in Beta)

    Second, if you undestand VB's "Is" operator, IsNot makes more sense.

    "Is" is a memory location comparison commonly used to see if two variables point to the same object, e.g.
    objThisControl Is objTheControlICareAbout
    . It does not compare the values of the variables, only that they are pointers to the same object.

    Because there is no inverse version of this operator like there is with "=" and "", you end up with non-natural-language statements such as
    If Not (objThisControl Is objTheControlICareAbout) Then
    Much more natural looking is
    If objThisControl IsNot objTheControlICareAbout Then
    Whether this is patentable is another issue. But you can certainly patent a published idea -- it's the only way to protect it.
  • by servoled ( 174239 ) on Friday November 19, 2004 @11:15AM (#10864106)
    Each claims stands alone. So, only claim 2 would be limited to BASIC, while claims 1, 3 and 4 would apply to any programming language.

    The dependent claims (2, 3 and 4) are merely shorthand to avoid writing the entire claim out each time, but for purposes of what they cover, you should read the claims like this:
    1. A system for determining if two operands point to different locations in memory, the system comprising: a compiler for receiving source code and generating executable code from the source code, the source code comprising an expression comprising an operator associated with a first operand and a second operand, the expression evaluating to true when the first operand and the second operand point to different memory locations.


    2. A system for determining if two operands point to different locations in memory, the system comprising: a compiler for receiving source code and generating executable code from the source code, the source code comprising an expression comprising an operator associated with a first operand and a second operand, the expression evaluating to true when the first operand and the second operand point to different memory locations, wherein the compiler is a BASIC-derived programming language compiler.

    3. A system for determining if two operands point to different locations in memory, the system comprising: a compiler for receiving source code and generating executable code from the source code, the source code comprising an expression comprising an operator associated with a first operand and a second operand, the expression evaluating to true when the first operand and the second operand point to different memory locations, wherein the operator is IsNot.

    4. A system for determining if two operands point to different locations in memory, the system comprising: a compiler for receiving source code and generating executable code from the source code, the source code comprising an expression comprising an operator associated with a first operand and a second operand, the expression evaluating to true when the first operand and the second operand point to different memory locations, wherein the compiler comprises a scanner, a parser, an analyzer and an executable-generator.
  • Patents on logic? (Score:2, Informative)

    by HexaByte ( 817350 ) on Friday November 19, 2004 @11:16AM (#10864114)
    This is of course an attempt to patent a piece of logic. While it may be said that the whole purpose of the computer is to follow logic, we also have the problem of prior art. IsNot, a combination of 2 simple English words, does not differ from using ! as a way of symbolizing *not equal to*.

    If MS gets away with this, thay will use it to destroy their compitition, as has been their habit. Can you imagine the problems created when every software developer gets a notice from MS's legal team that they're in violation of the IsNot patent?

    This cannot be allowed to stand, and is clearly an abuse of the system.

    Hhhmmm Can I patent cannot?
  • by serviscope_minor ( 664417 ) on Friday November 19, 2004 @11:18AM (#10864144) Journal
    10 DIM A 10
    15 REM this is equivalent to A=malloc(10)
    20 B=A ... ...
    100 IF BA THEN ...

    So this tests to see if two variables point to the same memory location, in a variant of Basic which has been in use since about 1982.

    BBC Basic supports pointers, proper indirection, indexed indirection and dynamic allocation.

  • by grungeman ( 590547 ) on Friday November 19, 2004 @11:20AM (#10864154)
    http://www.panopticoncentral.net/archive/2003/11/1 7/243.aspx#Comments [panopticoncentral.net]

    And he writes that they "had requests for this in the past", so they did not even invent it, but some users suggested it.

    Finally check out the comments of the VB users below wetting their pants for this little feature. Now isn't that really sad?

  • Re:IsNot Microsoft? (Score:4, Informative)

    by jimicus ( 737525 ) on Friday November 19, 2004 @11:27AM (#10864213)
    The patent claim makes interesting reading. Specifically:


    2. The system of claim 1, wherein the compiler is a BASIC-derived programming language compiler.
    3. The system of claim 1, wherein the operator is IsNot.


    Most of the other claims simply describe how a compiler goes about producing executable code.

    IANAL, but does this mean that any language which wasn't BASIC derived would be free to implement this? Similarly, you could work around it simply by calling the operator Isnt.

  • by originalhack ( 142366 ) on Friday November 19, 2004 @11:28AM (#10864233)

    So, just sent a registered letter to the patent examiner with a registered copy to the attorneys pointing out that there is prior art for claim one. this 1998 ISO comment [davros.org], this 1997 IBM document [umn.edu] or a few zillion others.

  • by Smallpond ( 221300 ) on Friday November 19, 2004 @11:34AM (#10864290) Homepage Journal
    You're right, its a completely level playing field. Anyone can have a patent.

    Basic filing fee - Utility $790.00
    Utility issue fee 1,370.00
    Due at 3.5 years 940.00
    Due at 7.5 years 2,150.00
    Due at 11.5 years 3,320.00

  • by Anonymous Coward on Friday November 19, 2004 @11:58AM (#10864532)
    Groklaw has an interesting article [groklaw.net] on MS and its FUD about OSS and patents.
  • by Halo1 ( 136547 ) on Friday November 19, 2004 @12:00PM (#10864558)
    IANAL, but the patent application seems to be pretty specific in saying that it's only in BASIC that they're trying to patent it, so a similar thing in C would likely be unaffected.
    You are incorrect. Read claim 1. That's an independent claim. Everything that just fulfills those conditions infringes (if that claims is granted).
  • by Craig Ringer ( 302899 ) on Friday November 19, 2004 @12:02PM (#10864578) Homepage Journal
    Umm... no, it doesn't.

    The Python 'is not' operator does, but to get the same effect in C/C++ you must, as another poster noted, do the equivalent of

    &a != &b

    to determine if they're the same object. It's not an equality test, it's an identity test.
  • by crow23 ( 634516 ) on Friday November 19, 2004 @12:17PM (#10864739) Homepage
    If you check the PTO web site, it is for "published patent applications."

    Microsoft applied for a patent on "IsNot" on May 14, 2004, and the patent was published 18 months later on November 14, 2004.

    This doesn't mean that the patent will issue and that Microsoft will receive patent protection for the operator. The author is getting ahead of himself...
  • Laches (Score:3, Informative)

    by tepples ( 727027 ) <tepples.gmail@com> on Friday November 19, 2004 @12:46PM (#10865116) Homepage Journal

    You're under no obligation to enforce patents. Submarining a la Unisys is perfectly legal. Trademark law is different

    U.S. trademark law has a rather strong doctrine of use it or lose it, but U.S. patent case law has something similar but weaker called the doctrine of laches. If a patent holder harms an alleged infringer by delaying legal action, the patent holder cannot recover damages for infringements prior to legal action; about the best the patent holder can hope for is an injunction against further infringement and some negative press.

  • Really Old Prior Art (Score:2, Informative)

    by Iron Monkey ( 113162 ) on Friday November 19, 2004 @12:54PM (#10865211)
    A system, method and computer-readable medium support the use of a single operator that allows a comparison of two variables to determine if the two variables point to the same location in memory.

    Seems to me that Lisp had just such an operator in the 50's. That's right, the eq operator! Oh wait. I guess you'd have to prepend a not to that, wouldn't you.

    All hail Microsoft's brilliant innovation!

  • by gstoddart ( 321705 ) on Friday November 19, 2004 @01:01PM (#10865295) Homepage
    Other than using IsNot as an operator, in what way is this defined to be any different than the != operator which would test the same thing?

    Is this a statement which works in a different way or on a particular object in memory that makes it unique?

    Since pointers in C work more or less the same way, how exactly can they claim to have invented anything which exists in all other languages?

    Doesn't this all come down to the equivelant of the BNZ (Branch Non Zero) which is used to check this stuff down at the machine code??

    I just don't get it.

  • Re:Prior art (Score:3, Informative)

    by kbmccarty ( 575443 ) <kmccarty@@@gmail...com> on Friday November 19, 2004 @01:10PM (#10865401) Journal
    A system for determining if two operands point to different locations in memory, the system comprising: a compiler for receiving source code and generating executable code from the source code, the source code comprising an expression comprising an operator associated with a first operand and a second operand, the expression evaluating to true when the first operand and the second operand point to different memory locations.

    Then this is absolutely trivial to find prior art for:

    char *a, *b;
    bool prior_art;
    ...
    prior_art = (a != b);
  • Prior Art (Score:2, Informative)

    by brianerst ( 549609 ) on Friday November 19, 2004 @01:16PM (#10865462) Homepage
    I wonder if a Usenet post on the Microsoft Public VB newsgroup (microsoft.public.dotnet.languages.vb [google.com]) from December 2000 comprises prior art.

    Suggested use of the exact same syntax is here [google.com]. There are numerous other examples of Jonathan Allen suggesting and requesting this exact same feature.

    Maybe he should sue for not being mentioned in the patent [uspto.gov] application! Or maybe he just didn't read the EULA for Microsoft newsgroups...

  • This *is* an assault on GNU. I'm glad he pointed this out.
  • by Anonymous Coward on Friday November 19, 2004 @02:06PM (#10866086)
    This is a published patent application. It most definitely IsNot a patent...

    Sorry to spoil the MS-bashing party kids, but there's really nothing to see here.

    It hasn't even been reviewed by an Examiner yet. If you're concerned or curious about the progress of this application (or any other), you can monitor changes here: http://portal.uspto.gov/ [uspto.gov]. Just plug in the application or publication number. The "Transaction History" tab has a timeline of things that have happened with the application, and the "Image File Wrapper" tab (if there is one) links to images of every paper filed in the application.
  • by WalterBright ( 772667 ) on Friday November 19, 2004 @02:28PM (#10866432) Homepage
    The "isnot" operator was proposed for the D Programming Language as a replacement for the !== operator already in use in D. The !== operator determines if two references are at the same address or not. Both the "isnot" reference and the !== operator well predate the patent application.
    isnot proposal [digitalmars.com]
    earlier D specification [cuj.com]
  • Re:Am too. (Score:2, Informative)

    by shutdown -p now ( 807394 ) on Friday November 19, 2004 @03:49PM (#10867517) Journal
    You can't use iSnot, this patent is case-insensitive.
  • by Anonymous Coward on Friday November 19, 2004 @07:05PM (#10870350)
    Bender sez: Bite my shiny, metal ass!
  • Found one! (Score:3, Informative)

    by Selanit ( 192811 ) on Friday November 19, 2004 @11:14PM (#10871946)
    Could somebody with more legal background than I have please write a HOWTO on submitting prior art?

    Sorry to reply to my own post . . . when, oh, when will we get the ability to edit our posts?

    Anyway -- it seems someone has already written a Prior Art HOWTO, [fplc.edu] as I would have discovered had I thought to run it through Google before hitting the "Submit" button.

8 Catfish = 1 Octo-puss

Working...