Programowanie wprowadzenie

Z Skrypty dla studentów Ekonofizyki UPGOW

Wersja ZygmuntGburski (dyskusja | edycje) z dnia 12:09, 24 mar 2010
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

WPROWADZENIE

Programowanie komputera to po prostu tworzenie listy poleceń (instrukcji) do wykonania przez mikroprocesor. Taką listę poleceń – sporządzoną według reguł danego języka programowania – nazywamy programem komputerowym. Z biegiem lat powstało bardzo wiele języków programowania, można je z grubsza podzielić na:

  • niskiego poziomu (maszynowe, asemblery). Podzespoły elektroniczne mikroprocesora przetwarzają informacje dostarczane w postaci binarnej (ciągi zer i jedynek). Programowanie w języku maszynowym, czyli na najniższym poziomie symboliki i abstrakcji, polega na dostarczaniu procesorowi rozkazów oraz danych bezpośrednio, w postaci strumienia zer i jedynek. Oto przykład takiego kodu maszynowego:

    111010100000000000001111111111111111100010011101100000000010100000001

Stopień wyżej w hierarchii pojawiają się asemblery. Poszczególnym rozkazom maszynowym odpowiadają określone symbole literowe, tzw. mnemoniki, a nie ciągi liczb. Zastąpienie sekwencji zer i jedynek, reprezentujących rozmaite fragmenty rozkazu maszynowego, przez ich symboliczne nazwy czyni program nieco bardziej czytelny dla człowieka. Spójrzmy na fragmentu kodu w asemblerze:

movw %ax, %fs 
movw %ax, %gs 
lgdt saved_gdt 
lidt saved_idt

Każdy język niskiego poziomu jest związany z danym typem procesora, jego listą rozkazów, architekturą, tak pisane programy niesposób przenosić pomiędzy platformami bazującymi na różnych procesorach. Współcześnie asembler jest wykorzystywany do programowania mikrokontrolerów lub tworzenia niewielkich, wysoce specjalistycznych kodów, wymagających bardzo wysokiej efektywności, programów antywirusowych, itp.

  • wysokiego poziomu (np. Fortran, Pascal, C, C++, Java, Python, C#, Ruby, …). Oferują one instrukcje składające się z słów angielskich, znaków logicznych i operacji matematycznych, zwykle też bibliotekę funkcji standardowych lub klas.

Spójrzmy na kod napisany w jednym z języków wysokiego poziomu:

int suma = 0;
for (int i = 0; i < 6; i = i + 1)
suma = suma + i;
</source