decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Jacobs tells another howler | 439 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Jacobs tells another howler
Authored by: BJ on Monday, May 14 2012 @ 02:25 PM EDT
My reaction is to wait and see what the actual exchange was.
Like Jacobs is quoted here, it makes little sense, But seeing as last week they
were talking about a 'run' of the programs to establish symbolic references, and
NOT calling that run-time (Google said that, even, I seem to recall), Jacobs may
be referring to that, and may be correct in that.

As to set theory -- I am thinking he's throwing that in as a lawyer, who, after
all I think are supposed to know a little about it. Maybe he sees an either/or
situation. Again -- the true transcripts would be most important here.

bjd



[ Reply to This | Parent | # ]

From mechanical engineering
Authored by: Anonymous on Monday, May 14 2012 @ 02:30 PM EDT
"Statics" is the analysis of physical systems that *are not* moving.
"Dynamics" is the analysis of physical systems that *are* moving.

The term is used in the same way in software engineering: "Static"
means while the software *is not* running; "dynamic" means while the
software *is* running. Static is before compilation, at compilation, at
linking, at archiving (jar-file-creation), or at install time, or even just
before execution. Dynamic is *while the program is executing*, and nothing
else.

MSS2

[ Reply to This | Parent | # ]

This is all about Oracle's theory about what a running system is...
Authored by: Anonymous on Monday, May 14 2012 @ 03:07 PM EDT
Oracle has built a case that because an odex is created on the handset itself
that this is a type of dynamic optimization on a running system. Its pretty far
fetched, but I can see where some people could be swayed by it, but I'm
certainly not.

As was mentioned several times, static optimizations occur once. Typically this
happens when code is initially compiled or statically linked on a
"development machine". Android is different because part of the
static optimization is deferred until the application is installed on a device.

The dynamic optimization that is described in the 104 patent is describing an
optimization that occurs during the execution of the application. This type of
dynamic optimization actually happens once per execution. So the next time the
application runs, it will need to do the same optimization again.

You may wonder what makes this so obvious to us as both scenarios seem so
similar. Why am I so certain that the patent describes a runtime optimization?
The answer has to do with how the optimization is encountered and executed. The
patent describes how the virtual machine encounters a symbolic reference in an
opcode [note that this is not a pointer to a symbol or string, but the actual
letters are in the byte code] and then pauses execution, resolves the symbolic
reference, updates the opcode with a numeric reference, then restarts the
virtual machine. This means that the virtual machine is actually executing the
program. When the deferred static optimization takes place, rather than pulling
off an opcode one at a time and performing them (or simulating them), a somewhat
simple search is performed for opcodes that reference a symbol. I say somewhat
simple because opcodes can take a variable number of bytes, so the search must
skip over any extra bytes containing opcode parameters. It does not make sense
to do this type of optimization at runtime.

Hopefully this helps..

[ Reply to This | Parent | # ]

Ironic detail about "dynamic" that everyone seems to have missed
Authored by: bugstomper on Monday, May 14 2012 @ 05:59 PM EDT
Judge Alsup, in the Order that defines the claim construction of symbolic
reference, makes the distinction between dynamic and static resolution. It looks
like Oracle is pushing for a loose definition of it that can happen before
runtime.

However, in looking over the patent I found a big hole in everyone's arguments.
Go to the patent claims and search for the word "dynamic". Some claims
mention that the symbol resolution is dynamic. Those claims either mention that
it is done in an interpreter or just before the instruction is executed. The
claims that are in this case, however, 11, 27, 29, 39, 40, and 41, do not
mention "dynamic". Those claims do, however, all mention instructions
that "contain" symbolic references, which is what Google says lets
Android off the hook. The fact that some claims specify "dynamic" and
others don't indicate that the distinction is purposeful. The claims are written
to make some some broader and some narrower, presumably to have better chances
at escaping prior art by being narrow or finding infringement by being broad.
But the six claims of '104 in this case are the broadest ones (which the PTO
ruled have all been anticipated by the Gries textbook)

By the way, to add to the discussion about dynamic resolution, even if it may
not be relevant to the actual claims in the case: The important distinction
between dynamic and static is that dynamic resolution is done on demand, whereas
static is done in advance in case it will be needed. For example, look at the
difference between dynamic linking in shared libraries or DLLs and static
linking with libraries. It is possible to load a shared library and dynamically
resolve its links before runtime of the application in which it is used.

That wider definition of "dynamic" that happens before
"runtime" does not affect the argument about Android, since according
to Google's technical presentation all of the resolution is done with a static
linker to make the optimized file that contains only numeric references.

[ Reply to This | Parent | # ]

Jacobs tells another howler
Authored by: ThrPilgrim on Tuesday, May 15 2012 @ 09:33 AM EDT
As far as I can tell the following terms need defining for this part of the
case

Static, dynamic, run time, symbolic look up, Index look up, offset.

So hear we go.

Run time. When the program that you wrote is running on the system.

Index look up. Finding a piece of data by taking a base pointer in memory and
adding to it index * size of one data object. Only works if all the data objects
are the same size.

Offset the result of multiplying the index by the size of one data object.

Symbolic look up. Finding a piece of data by looking in a dictionary examining
each element in the dictionary and comparing it to your symbol and when found
using the data stored in the dictionary along with the symbol to do an index
look up. There are numerous ways to optimize this, but they are outside the
scope of this discussion.

Static. Doing things to something else.

Dynamic. Doing things to yourself.

These are not the standard definitions but they seam to fit what has been
discussed in the trial.

So the dexopt program takes another java program as data. Looks at that programs
internals and produces a third program as it's output.

So this is static, as it happens to something else. It's not at run time as the
java program is not running. So all we have left is symbolic look up. And
according to both experts the manor of look up is to take a base address and add
an offset, so by definition it's not a symbolic look up.

Hope this helps

---
Beware of him who would deny you access to information for in his heart he
considers himself your master.

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )