Czym jest język programowania?

Program to zbiór instrukcji, które „rozumie” i wykonuje procesor. Komputer jednak ma bardzo ograniczone pole manewru, gdyż rozumie on tylko dwie kombinacje – 1 i 0. Języki programowania dzielimy na 2 poziomy – języki niskiego poziomu (np.: asemblery) i języki wysokiego poziomu (np.: C). Języki niskiego poziomu są zapisane w sposób niemal gotowy do natychmiastowej obróbki przez procesor. Jednak ich składnia jest mało intuicyjna i w praktyce trudno pisze się programy w językach niskiego poziomu. Dlatego powstała druga grupa języków – języki wysoko poziomowe. Są to języki, których składnia jest w jakiś sposób bardziej zrozumiała dla człowieka. Przykład zaciągnięty z encyklopedii www.wikipedia.pl:

Język wysokiego poziomu C: Język niskiego poziomu (asembler)
Wstęp

#include <stdio.h>

#include <stdlib.h>

int main()

{

printf("Witaj świecie\n");

exit(0);

}

.file "main.c"

.section .rodata

.LC0:

.string "Witaj \305\233wiecie"

.text

.globl main

.type main, @function

main:

leal 4(%esp), %ecx

andl $-16, %esp

pushl -4(%ecx)

pushl %ebp

movl %esp, %ebp

pushl %ecx

subl $4, %esp

movl $.LC0, (%esp)

call puts

movl $0, (%esp)

call exit

.size main, .-main

.ident "GCC: (GNU) 4.1.2 20060901 (prerelease) (Debian 4.1.1-13)"

.section .note.GNU-stack,"",@progbits



Od razu widać różnicę w kodzie programu. Program ten wyświetla na ekranie monitora napis „Witaj świecie”. To, co widzimy po prawej stronie jest wynikiem kompilacji programu z języka wysokiego poziomu (w tym przypadku C) do języka niskiego poziomu (asemblera). Program ten jest zamieniany na ciąg 0 i 1 (ciąg liczb binarnych), które rozumie procesor. W ten sposób wykonywane są wszystkie obliczenia.