Hi Hayden,

Well, your confusion is do in large part to the fact you are comparing
two different meanings of the word runtime. In general the word
runtime simply means a dependency or compiled library or executable
rrequired by a certain program. This meaning of runtime has absolutely
nothing to do with if a programming language is a native programming
language or a runtime programming language. As I'm certain what I'm
saying has royally confused you let me explain in more detail.

When we talk about programming languages they are generally divided up
into three basic catagories: low level, intermediate level, and high
level. Each of these have advantages and disadvantages and are used
for different applications of programming.

First, we have the low level programming languages like Assembly
which can be compiled into what we call a native application. What
that means is the Assembly code you typed into Notepad is converted to
machine language, also called binary, which is simply a huge string of
ones and zeros. These ones and zeros, binary, work by sending on/off
pulses to the CPU. Every time the state is 1 it is on and every time a
0 is sent that is off. If you string enough of these ones and zeros
together you can form words, graphics, music, etc. I'm not going to
explain the ins and outs of binary theory, but its enough to say that
anything you write in Assembly can be converted directly into machine
language your CPU can understand. Therefore it is a native application
and is usually very specific to the type of platform and hardware it
was designed for.

Second, we have the intermediate languages such as C and C++. This is
what most developers use today because you can still compile programs
into machine language, but the language is a lot easier to understand
than Assembly code. It allows for some more abstract ideas such as
classes, structures, unions, pointers, etc all that helps the
programmer communicate with the computer in something he/she can
understand. However, unlike Assembly a C++ compiler breaks the
compilation process down into two steps. First it converts C++ into
assembly, and then links the Assembly objects into a binary file the
CPU can understand.

Finally, we have the high level languages where Python, Java, Perl,
and the .Net languages come in. These languages are often very
readable, very easy to understand, look the most like human speech,
but they usually get compiled to what we call an intermediate
language. In other words instead of getting a binary file compiled
into machine code it is still mostly human  readable, and it requires
a seperate program, usually written in C++, to execute the code. For
example, python.exe, java.exe, perl.exe, etc are native C/C++
applications that simply executes the instructions stored in your
Java, Python, or Perl application. These runtime languages are simply
that. They require a third-party runtime program like Java, Python,
Perl, .Net, etc to be installed to run were a true native C/C++
application can run without any third-party applications.

To clarify the point. The Linux kernel, vmlinuz, is written in C. It
boots the operating system as well as handles all the low level
drivers. It can do that because C doesn't need anything else but
itself to run. You couldn't do that with Python, Java, Perl, whatever
because you can't convert the code in to machine language. They still
require a specific C or C++ application to be installed to run.

Now, I am able to answer your question more directly. In the case of
something like the Microsoft Visual C++ Runtime they aren't talking
about an actual Runtime environment like Java, Python, Perl, etc but a
set of dependencies required by apps compiled by Visual C++. The
difference here is that if I wanted too I could take my code and
compile it with MinGW or some other C++ compiler and never use the
MSVC Runtime libraries at all. Those MSVC++ Runtime libraries are just
libraries most Windows developers use to access various things when
programming Windows apps. That has nothing to do with weather C++ can
be compiled to machine language or compiled to an intermediate
language the way Java, Python, .Net, etc are. You were quite
litterally mixing apples and oranges here from a programming/technical
point of view.


On 4/25/11, Hayden Presley <hdpres...@hotmail.com> wrote:
> HI Thomas,
> Something that has confused me is this: obviously I am not following what
> "native binary" means but if C++ is not a runtime language then why do you
> end up needing to have C++ runtime libraries on your system to run an
> application written in C++?
> Best Regards,
> Hayden

Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
All messages are archived and can be searched and read at
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to