====== Programming ======
Programming is the labour of writing instructions for a [[computer]] to carry out a certain task. Expressed another way, the [[programmer]] //"tames"// the computer to perform instructions in a certain way, by //"telling"// the computer in an excruciatingly detailed way how to do those instructions. The programmer is [[program creation|creating]] a [[program]] for the computer to [[execution|execute]], the programmer [[program enhancement|enhances]] the program to be able to handle more cases — to be more capable — the programmer [[program communication|connects]] and adapts the program to other programs, improves it to user and customer needs, collaborates with other programmers, internal sales and customer support personel, and so on.
Programming relies in the //far end// of the rules of [[mathematics]], most notably [[logics]], but often the //near end// [[human factors|human aspect]], is forgotten — the programmer is supposed to be a human and must collaborate with human users (at the very least) in order to make programs that fit a purpose.
===== Programming languages =====
{{main|Programming language}}
All computer systems have a basic language that can be used for programming called Machine Code. However coding in Machine Code is not practical. It is not designed to be very readable and because different systems may use their own version of machine code it is not portable between different systems. Because of this higher level languages were created that solve these problems. When a program is written in a higher-level language it is then compiled into the machine code that the computer understands.
==== Source Code ==== Source code is the Text representation of the program before it has been compiled. Having the source code allows a programmer to know how a program works so they can fix errors and make other improvements. With Open Source software the Source code is made publicly available so that many programmers can debug the code at the same time.
==== Program translation ==== {{insertme|compilers|interpreters|linkers}}
===== Programming tools =====
{{insertme|IDE|editor|debugger|lint|x-refs|...}}
===== See Also ===== * [[Open|Source]] * [[GCC]]
[[w:c:opensource:programming|Programming]] |}