These are questions about the process of programming, more than Perl-related, but I'll take a stab at them as I'm in wait-4-interrupt mode.

An API is the conceptual interface between parts of a computing system. It is the definition of how information is passed from one subsystem, module, or program to another.

'Building' is an inexact term often used for the process of compilation and linking, yes.

Programs can be separately compiled, either as standalone binaries or as libraries which are meant to be shared. In the Windows world, shared libraries, i.e., common libraries meant to be used by multiple programs, are called DLLs. People use shared libraries so as not to waste memory. For example, if you have two programs running that need to parse Unicode characters, would you want to include the same code in both programs, or would you want to just access one copy of the same code with both programs, as needed?

Header files are source files which generally are used to define data structures or include definitions of such, as opposed to code files, which define the algorithms. That distinction is blurring these days, however.

The distinction between functions and subroutines is less important and less-often preserved these days. Originally, functions were subroutines that returned values and subroutines were just packaged actions. Either can have side effects, such as I/O or changes in global variables. 'Method' is the new name which is used in describing object-oriented actions. The object paradigm generally includes a requirement that object methods not have side effects, but, especially in C++, this can be broken.

You have asked this in a Perl forum, and none of this except API has anything to do with Perl. Perl is an interpreter, as opposed to a compiler. In Perl, the perl interpreter is the binary, and you feed it your source program. The Perl language is the conceptual API, and your program while being interpreted (also "run") by perl may have its own API as an interface between you and it, or it and other programs and resident services on your computer.

These topics are included in any computer science 101 course, although you are asking them in a Windows context. Any beginning CS textbook will give you this and more. The suggestion has already been made that you look for basic C books, and that's a good one. There are numerous books which cover C in a VS/Windows context.

In reply to Re: Newbie programming questions by samizdat
in thread 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.