Thread overview
Why is one d file compiled into two files object file & executable.
Feb 11, 2015
Venkat Akkineni
Feb 11, 2015
Andre Artus
Feb 11, 2015
Kagamin
Feb 11, 2015
Andre Artus
Feb 11, 2015
Kagamin
Feb 11, 2015
Kagamin
Feb 11, 2015
jklp
February 11, 2015
Hi

I am coming from Java. What is the purpose of an object file & why is it generated at compile time in addition to an executable. I know C generates an object file too, but I don't know what the use is.

Please point me to any detailed documentation u may have regarding object files.

Also does D have any facilities for dynamic code generation & compilation ?

Thankyou
Sincerely
Venkat
February 11, 2015
On Wednesday, 11 February 2015 at 05:08:16 UTC, Venkat Akkineni wrote:
> Hi
>
> I am coming from Java. What is the purpose of an object file & why is it generated at compile time in addition to an executable. I know C generates an object file too, but I don't know what the use is.
>


Hi Venkat,

The object files are kind of an intermediate format produced by the compiler, to be used by the linker in generating the executable.

> Please point me to any detailed documentation u may have regarding object files.
>

If you wish to learn more the following Wikipedia article is a reasonable starting point.

http://en.wikipedia.org/wiki/Object_file


> Also does D have any facilities for dynamic code generation & compilation ?
>

Yes, it does.

D has good support for meta-programming, look at http://ddili.org/ders/d.en/ under the template and mixin sections, and also http://qznc.github.io/d-tut/meta.html



February 11, 2015
On Wednesday, 11 February 2015 at 05:08:16 UTC, Venkat Akkineni wrote:
> I am coming from Java. What is the purpose of an object file & why is it generated at compile time in addition to an executable. I know C generates an object file too, but I don't know what the use is.

Java uses a similar process: it has to generate .class files before they can be packed into a .jar file.
February 11, 2015
On Wednesday, 11 February 2015 at 07:42:31 UTC, Kagamin wrote:
> On Wednesday, 11 February 2015 at 05:08:16 UTC, Venkat Akkineni wrote:
>> I am coming from Java. What is the purpose of an object file & why is it generated at compile time in addition to an executable. I know C generates an object file too, but I don't know what the use is.
>
> Java uses a similar process: it has to generate .class files before they can be packed into a .jar file.

I thought about making that analogy myself, but then decided that it is likely to be more confusing than helpful. There are similarities, but there are also  numerous distinctions.

First to  mind is that in Java .class files are executable (in Java runtime), while object files are not.

A .jar file is just a organized collection of .class files (in a compressed container). In that sense a .jar file is perhaps more akin to a .lib file.
February 11, 2015
On Wednesday, 11 February 2015 at 05:08:16 UTC, Venkat Akkineni wrote:
> Hi
>
> I am coming from Java. What is the purpose of an object file & why is it generated at compile time in addition to an executable. I know C generates an object file too, but I don't know what the use is.
>
> Please point me to any detailed documentation u may have regarding object files.
>
> Also does D have any facilities for dynamic code generation & compilation ?
>
> Thankyou
> Sincerely
> Venkat

It's not D-specific, every compiler for a compiled language produces objects:

http://en.wikipedia.org/wiki/Object_file

February 11, 2015
On Wednesday, 11 February 2015 at 08:49:40 UTC, Andre Artus wrote:
> First to  mind is that in Java .class files are executable (in Java runtime), while object files are not.

There was a library, which could load object files with D code, resolve symbols and execute it.
February 11, 2015
http://www.dsource.org/projects/ddl