Hello Monks, I have some very newbie kind of questions. Thought, you guys explain things beautifully, so here I come to Perl Monk Land to seek some divine knowledge.

From practical perspective, I generally remain confused when it comes to the following terms in relation to, say C language/visual studio. Please explain to me from a practical, easy to understand, perspective.

1. API - what are they? Are these also known as DLLs or Libs or header files? Can .exes be called APIs?

2. Build - Process of compilation. Right?

3. Compilation - Does compilation in C produce .exe or .DLL or anything else? What I understand by compilation is that source code gets converted to some binary format and some linking takes place. I don't understand what all gets linked in this process. What exactly happens in the computer memory in this process?

4. Linking - Linking of necessary fucntions. Right?

5. Run - Run is used to execute the binary (.exe or .dll?) produced by Compilation. Do other functions/system resources required by the source code (that generates the .exe) reside within the .exe or are they used externally as and when when .exe requires them? What exactly happens in the computer memory in the Run process?

6. DLL - Not too clear about it. How and what are being linked here. Also, what's the motivation, necessity of making a DLL in the first place? Why shouldn't I make an .exe instead of this?

7. Exe - A standalone program. But, can such programs function in the absence of compiler say visual studio or something?

8. Libs (library) - It is a collection of functions. Right? Does that mean that it is a single file that contains definitions of other functions in a project? What is its importance, motivation of having it? Are they used through some header file?

9. Header file - Its a collection of functions. Can it also be called a Lib? What's the difference between Lib and header file?

10. Function/subroutine/method - I guess loosely they all mean the same. Right?

11. Broadly, what are the associations and differences between APIs, DLLs, Header files, Libs, linking etc.

Also, please suggest links to any good tutorial, material on the above subject.

Thank you very much in advance.

Raj

Considered by holli: mark as off-topic

20050303 Unconsidered by Corion: Too many keep votes: edit:34 keep:12 del:5


In reply to Newbie programming questions by newbio

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.