|
Authored by: Anonymous on Tuesday, May 15 2012 @ 02:47 AM EDT |
I see a big challenge here for a lot of programmers. They may think they know
what a symbol is. It is not clear what the definition of a symbol is. There is
the Java definition of a symbol. There may be a different byte code definition
of a symbol. There are definitions of symbols for communications theory. There
is the term symbol for a character. Or it could be anything that is used to
represent something else. Which one(s) does the patent cover? Heaven help you if
you try to pin Oracle down on this. Remember that the lack of a symbol is also a
symbol. [ Reply to This | Parent | # ]
|
|
Authored by: BitOBear on Tuesday, May 15 2012 @ 02:54 AM EDT |
Numbers, that is native numeric representations, -can- be used as symbolic
references in the case of sparse or mapped data structures.
For instance I can make a map in C++ that is indexed by integer (e.g.
"typedef map<int,string> names_by_number;).
This is a -rational- thing to do, but only in some very special cases, and it
can be done in a java -application- as well as any other code.
-HOWEVER-
This is -not- what is happening in the Google et al code that Oracle is trying
to attach to its patent.
See, its bad to this reference-by-integer action whenever all the integers are
going to be used in order, or mostly in order, such as when filling in a table
of things like function references.
If I asked you to write down all the numbers from 1 to 100 you -could- write
each one on a 3x5 card, shuffle those cards, and then build a tree out of them
by stringing them together with yarn. One hole punched in the top of each card
and two holes punched in the bottom. like a kindergarten wall hanging. And if
you did this, and you strung them in order, such that you looked left from each
card for numbers less than that card, and right for numbers greater than that
card, you could find any number I asked for by following the yarn. But to find
any number you wouldn't know how many cards you would have to read or bits of
yarn you would have to follow.
So the above is what you get to do if you use a number
"symbolically".
This is also what you must do if you use any kind of symbolic lookup.
It isn't always a tree, and it isn't always only one datum per card, but it -is-
-always- an expensive chore.
-SO- when using numbers, if they are all next to one another, you set them up
the way you would -really- do it if I told you to write the numbers from one to
100. You would write them in order, close together, on one page if you had the
space, or on a scroll if you like, or in a bound composition book. And if I told
you to find any given number N you would know how to skip to it directly.
(Aside: computer people count "from zero" because if you count from
"one" you have to find the number N by skipping N-1 numbers, but if
you count from zero, you find "0" by skipping zero slots, and you find
"5" by skipping five slots etc.)
Computers are exceptionally good at skipping over some number of slots to find
something in the slot numbered that number. It's like they were -made- to do
this very thing.
--SO-- --FINALLY--
We know the expert who said that numbers -can- be used for symbolic referencing
is not -wrong-.
But we -also- -know- that he was misleading the court by claiming that such
activity was happening in this usage, which it isn't by the way.
No lawyer was ready to call him on it since that is the role of competing expert
testimony. And no lawyer, as they are not experts in the field of computing, was
ready to ask the follow up question(s) necessary to make his lie obvious in its
current use.
e.g.
Are you familiar with this code?
Is the number being used as an index?
Is the number being used as a reference?
When a number is being used as a number and a reference at the same time, is it
normal to call it a "symbolic reference"?
Is sequential reference a more applicable term?
Is index a more applicable term?
Is this a table lookup in this code?
Is this a symbol-table lookup in this code?
Can you show me the -symbols- in this table that are being examined in the
search?
So does the virtual machine do any -math- when using this numeric reference?
Does the math look like "start of table plus item sought locates
item"?
Does the math look like "start of table plus item sought times size of one
item"?
Is this the same kind of math that looking up something by "name"
would do?
Do you know when "table lookup" logic was invented?
Was "table lookup" invented before 1970? 1960?
Is "table lookup" a common practice?
Since 1970?
If (patent number) was patented on (date), and table look up was invented before
1970, isn't the patent an attempt to claim common practice that existed for
decades?
So can you see any difference between the Google code and a table lookup?
What line number(s) demonstrate this difference between established practice and
the patented claim?
(etc).[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Tuesday, May 15 2012 @ 06:09 AM EDT |
no text. [ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Tuesday, May 15 2012 @ 07:55 AM EDT |
I've never posted here before, but this situation reminds me of something you
might find relevant.
Is anyone else thinking of Microsoft Windows's "export by ordinal"
system for DLLs? You can have a function exported from a DLL by a number instead
of a name, say, a function named "22". This 22 is stored as a string
in the DLL's export table, and any program that uses it has to have a string
containing "22" in their input table. When Windows loads the file, it
simply performs a string search between the two tables and patches the import
table of the executable loading the DLL with the address contained in the export
table entry with the string "22" as its name. So the 22 is just a
placeholder for a name, being used as the name itself. This is done for
non-public functions you might want to export to be used in another part of your
program, but not used by other programs.
Windows doesn't create 22 entries when you have an export by ordinal of 22 -- it
just substitutes 22 for the the name of the function. This seems to be the
situation the poster above intended to describe. You could do the same thing
with a number directly encoded into the executable, just use a lookup table
which you search to find the entry based on the integer being a search key. A
binary search tree could work well for this, or a hash table in which the
ordinal numbers are used as the "hash" key directly.[ Reply to This | Parent | # ]
|
|
|
|
|