|
Authored by: bprice on Saturday, April 21 2012 @ 09:23 AM EDT |
SLi's quotation from the gcc documentation got munged by its use of < and
>. Here it is in (I hope) unmunged form (using < and > for<
and >, respectively):
The ISO C standard defines (in clause 4)
two classes of conforming implementation. A conforming hosted implementation
supports the whole standard including all the library facilities; a conforming
freestanding implementation is only required to provide certain library
facilities: those in <float.h>, <limits.h>, <stdarg.h>, and
<stddef.h>; since AMD1, also those in <iso646.h>; and in C99, also
those in <stdbool.h> and <stdint.h>. In addition, complex types,
added in C99, are not required for freestanding implementations. The standard
also defines two environments for programs, a freestanding environment, required
of all implementations and which may not have library facilities beyond those
required of freestanding implementations, where the handling of program startup
and termination are implementation-defined, and a hosted environment, which is
not required, in which all the library facilities are provided and startup is
through a function int main (void) or int main (int, char *[]). An OS kernel
would be a freestanding environment; a program using the facilities of an
operating system would normally be in a hosted implementation.
Neither of us has marked up the quote to distinguish code from
non-code, like the original (q. v., if you really
care).--- --Bill. NAL: question the answers, especially mine. [ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Saturday, April 21 2012 @ 01:30 PM EDT |
Thank you. I think I'm starting to see what they're talking about then. So
this is why the witness said that java can actually be used without the APIs,
but it wouldn't be very useful, then...
Using the language example... It would be like using the English language, only
being able to use a handful of words, but restricted from being able to have a
real conversation? It would force someone to create their own dictionary using
different words (which would then no longer be English).
When Google created their own libraries for Android, they used the same words so
that any java programmer would feel at home while programming. It would be
"Like" programming in Java, but it wouldn't be Java.
Is this a fair assessment?
[ Reply to This | Parent | # ]
|
|
Authored by: fredex on Saturday, April 21 2012 @ 07:30 PM EDT |
SLi:
thanks for the excellent treatise on what is an API. It goes along very
closely with what I've been thinking of as I read all these postings, but pretty
much nobody has said it quite right (according to my understanding) until you
did.
Having said that, I have one small quibble with this exchange:
So what you are saying is that when I "#include" in
a .cpp, I am invoking the API dealing with the most basic in/out functions of
C++?
Yes, that's definitely correct. The I/O routines and header
files (like ) are part of the standard library, and any time you interact with
the standard library in any way, you are doing so via an API.
I
would say that when you "#include" in a .cpp (or .c) you are causing the
compiler to become aware of HOW TO MAKE USE of an available API, but that isn't
the same as actually invoking the API.
You don't invoke that API until
you call some function (or use some method or instantiate or otherwise refer to
some object).
An API is, as you said in your first posting, intangible.
You can't point to it and say "THAT is an API". You can describe it, you can
talk about it, you can even create an implementation of it in code, and you can
of course write programs that utilize that implementation of it, but none of
those things IS the API. The API is the intangible thought-entity that all those
other things point--or allude, perhaps--to.
It would be great if someone
knowledgeable (i.e., some high powered witness or expert) in this trial could
say all this to the court and thereby make clear all the obfuscation Oracle is
trying so as to twist the world to its own desires.
[ Reply to This | Parent | # ]
|
|
|
|
|