Subsections
Komputery są maszynami, wykonującymi zlecone przez użytkownika zestawy instrukcji.
Aby użytkownik mógł porozumieć się z komputerem - zlecić mu zadanie i mieć możliwość
uzyskania wyników, potrzebny jest określony zestaw poleceń - instrukcji sterujących.
Tak więc wszystko co ma związek z PRACĄ komputera, jest zestawem rozumianych przez komputer
instrukcji-poleceń. Z kolei informacje, które podlegają PRZETWARZANIU przez komputer, są - DANYMI.
Nasuwa się więc pytanie - jakie instrukcje rozumie komputer?
Jak zapewne większość z nas doskonale
wie, komputer pracuje w logice binarnej, tzn. informacje, które przetwarza oraz instrukcje umożliwiające
proces przetwarzania danych, są reprezentowane w postaci ciągów zer i jedynek, które z kolei odpowiadają
konkretnym literom i znakom. Odpowiednia kombinacja zer i jedynek oznacza więc polecenie uruchomienia
danego programu, wysłania wiadomości e-mail, czy wreszcie jest zbiorem czyichś danych osobowych.
Procesor komputera przetwarza ciągi zer i jedynek, traktując je jak liczby i wykonując na nich
operacje matematyczne - jest to wykonywaniem tzw. poleceń maszynowych, których zbiór
oznacza w praktyce wykonanie danego zadania: wczytanie danych i wykonanie na nich określonej operacji:
wyszukanie czegoś w bazie danych, zapisanie informacji w pamięci dyskowej,.... Odpowiednie instrukcje
maszynowe, były więc tworzone przez programistów, dla realizacji określonych zadań, a ich zbiór -
instrukcji maszynowych - nazywamy programem komputerowym.
W początkach komputeryzacji, programowanie6.1, polegało więc, na tworzeniu programów w postaci podawanej do wykonania bezpośrednio
procesorowi, a więc polecenia i ich argumenty zapisywano w postaci ciągów zer i jedynek6.2. Tak więc, ciąg zer i jedynek powstaje z zapisania w reprezentacji
binarnej poleceń w postaci rozumianej przez procesor.
Taki stan rzeczy był niezwykle niewygodny i rodził ryzyko powstania
sporych błędów, jeśli w którymś momencie ciągu - o co wcale nietrudno - zamiast ``0'' pojawiłaby się
``1''. Stworzono więc język programowania, tzw. assembler, który umożliwiał zapisywanie programu
komputerowego przy pomocy skrótów, reprezentujących instrukcje kodu maszynowego. Kod programu jest
następnie tłumaczony na instrukcje kodu maszynowego, w tzw. procesie kompilacji.
Takie rozwiązanie uczyniło programy komputerowe bardziej czytelnymi i łatwiejszymi do zrozumienia. Powstawały kolejne języki, umożliwiające zapisywanie programu komputerowego w postaci zdań, czyli
reprezentacji zbliżonej do algorytmu danego problemu6.3. Były to języki wysokiego poziomu - gdyż umożliwiały pisanie programu w notacji
rozumianej przez ludzi - kompilowalne6.4 i skryptowe
6.5, 6.6.
W kolejnych latach powstało wiele języków: COBOL, BASIC, LISP, Fortran, jednakże największym
wydarzeniem było powstanie języka C6.7.
Uniwersalność języka, łatwa do opanowania składnia i oferowane spore możliwości sprawiły, że
język C, stał się szybko popularnym językiem programowania. Ponadto jego rozszerzenie
o możliwości obiektowe6.8 spowodowało że, jest to najważniejszy spośród języków umożliwiających
programowanie obiektowe, a jednocześnie najbardziej popularny i najczęściej stosowany język
programowania - mimo szeregu wad i utrudnień.
Inne współcześnie popularne języki programowania to:
- języki kompilowalne:
- Java - najważniejszy z języków wykorzystywanych w programowaniu sieciowym; poważny
konkurent dla języka C++; kod skompilowany w Javie jest całkowicie przenośny, tzn. zadziała na dowolnym
komputerze, działającym pod kontrolą dowolnego sytemu operacyjnego, pod warunkiem występowania tam
środowiska uruchomieniowego Javy;
- Pascal - do niedawna bardzo popularny z racji prostej składni i sporych możliwości,
wyparty przez C, w którym pisane są używane obecnie systemy operacyjne: unixowe i windowsowe;
- Fortran - powoli odchodzący w zapomnienie - język stworzony do zastosowań naukowych;
szacuje się, że większość obecnie używanego oprogramowania bankowego została stworzona w Fortranie i Cobolu.
- języki interpretowane(zwane skryptowymi):
- HTML - język, w którym zapisywane są strony WWW; nie wymaga - w przeciwieństwie do innych języków
skryptowych - występowania w systemie określonego interpretera, przetwarzającego program i umożliwiającego
jego wykonanie. W przypadku języka HTML, interpreterem jest dowolna przeglądarka WWW;
- Perl - wyjątkowo popularny język, wykorzystywany głównie w technologiach CGI(
Common
Gate Interface, stosowanych jako wsparcie dla języka HTML. Posiada mocno rozbudowane mechanizmy
leksykalne, umożliwiające analizę i przetwarzanie tekstów)
;
- Python - zaawansowany język umożliwiający m.in. programowanie obiektowe - przez
wielu uznawany za język, od którego poznania powinno rozpoczynać się naukę programowania obiektowego;
umożliwia łatwe wykorzystywanie kodu napisanego w innych językach;
- JavaScript - popularny język stosowany w połączeniu z językiem HTML6.9.
Na przestrzeni lat, rozwijano i zmieniano zasady dotyczące tworzenia programów komputerowych.
Ze względu na sposób organizacji kodu programu, rozróżnia się podział na:
- programowanie proceduralne - program komputerowy jest konstruowany w formie
występujących kolejno po sobie wywołań funkcji i procedur;6.10;
- programowanie strukturalne - programowanie strukturalne sprowadza się do budowania
programu komputerowego z mniejszych elementów. Zadanie, które ma być realizowane przez program,
dzielimy na zbiór mniejszych podzadań i każde z nich oprogramowujemy jako niezależną całość. Następnie
z posiadanych podprogramów tworzymy właściwy program. Dodatkową zaletą takiego podejścia jest połączenie
w wydzielonych częściach programu: danych wraz z operacjami, które na tych danych są przeprowadzane;
- programowanie obiektowe - to najbardziej zaawansowany model programowania. Podejście to
polega na tworzeniu programu komputerowego w postaci systemu, komunikujących się między sobą obiektów -
analogicznie do realnego świata. Obiekt jest tutaj pewną niepodzielną strukturą, reprezentującą
pewne dane i wszystkie operacje, które z wykorzystaniem tych danych można wykonać. Przykładem
obiektu może być lokata bankowa. Zawiera ona DANE o osobie, która jest jej posiadaczem, a jednocześnie
zawiera pewien zestaw czynności, zwanych METODAMI, które na tych danych możemy wykonywać. Przykładem
metod będą: wpłata/wypłata gotówki, przychód wynikający z oprocentowania lokaty,....
Na zakończenie wstępu, wyjaśnię jeszcze jedno pojęcie związane z programowaniem - debugowanie.
Jest to proces kontroli działającego programu, umożliwiający testowanie i wyszukiwanie błędów.
Dokładniej omawiam zagadnienia dotyczące debugowania programów w dodatku A, poświęconym -
działającemu w środowisku systemu operacyjnego Linux - debugerowi DDD(Data Display Debuger).
Marcin Maźniewski
2006-05-15