|
C
Język C powstawał na początku lat siedemdziesiątych XX wieku (dokładnie od roku 1969 do roku 1973), a jego autorem jest Denis Ritchie. Początkowo język ten był ściśle związany z systemem UNIX, (Ritchie jest także współautorem UNIXa), a 95% tego systemu jest napisana w języku C. W latach osiemdziesiątych (dokładnie w 1983) amerykański komitet ANSI (ang. American National Standards Institute - Amerykański narodowy komitet standardów) opracował standard, z którym obecnie zgodne są wszystkie najpopularniejsze kompilatory C. Rezultatem opracowania takiego standardu stał się wzrost popularności tego języka, również poza platformą UNIXa. Obecnie w języku C programuje się pod kontrolą większości systemów operacyjnych.
Język C jest także prekursorem innych języków wyższego poziomu np.: C++, Java, Php. Gdy chodzi o klasyfikację C należy do języków trzeciej generacji i jest językiem strukturalnym. Niektórzy specjaliści nazywają go językiem średniego poziomu, a dzieje się tak ponieważ łączy on funkcjonalność asemblera z łatwością programowania języków wysokiego poziomu. System LINUX podobnie jak inne wersje UNIXa jest związany z językiem C, dlatego większa część aplikacji dla tego systemu jest w nim napisana.
W języku C każdy program składa się z tzw. funkcji. Funkcja jest elementem składowym programu wykonującym jakąś czynność. Na przykład, w programie obliczającym rozwiązania równania kwadratowego programista może stworzyć funkcję obliczającą deltę, a w grze Arkanoid programista może stworzyć funkcję przesuwającą piłeczkę na ekranie. To jak programista nazwie swoją funkcję zależy tylko od niego. Jednakże ze względów praktycznych nazwy funkcji powinny mówić o ich zastosowaniu. Na przykład funkcja licząca deltę nie powinna się nazywać: funkcja1, ponieważ nie mówi to o jej zastosowaniu. W języku C mamy do czynienia, także z tzw. funkcjami standardowymi. Są to funkcje napisane przez twórców kompilatora C. Przykładem takiej funkcji jest printf - funkcja wypisująca tekst na ekranie. Pisząc program nie musimy się zastanawiać nad tym jak wypisać tekst na ekranie; inni programiści zrobili to za nas. My tylko musimy wpisać do programu printf i tekst, który chcemy wypisać.
Tłumaczenie programu na język maszynowy w C nie odbywa się w sposób jednolity. Jest ono podzielone na kilka faz. Pierwszą z nich jest tzw. preprocessing, w tej fazie kompilator wycina z tekstu programu komentarze i analizuje dyrektywy preprocesora. Kolejną fazą jest kompilacja. Kompilator tłumaczy program do tzw. kodu obiektowego, czyli pośredniego. Jest to coś pomiędzy kodem źródłowym a wykonywalnym (dokładnie kod zawierający zakodowany opis algorytmu, operujący na identyfikatorach, a nie na adresach; do tego nie obejmujący załączonych standardowych funkcji bibliotecznych). Zasadę działania kompilatora prezentuje Rys.1. Każdy plik programu jest tłumaczony do takiego kodu obiektowego. Jeżeli, na przykład, plik z kodem źródłowym nazywał się hello.c to jest on kompilowany do pliku hello.o zawierającego jego kod obiektowy. Wszystkie pliki zawierające kod obiektowy są następnie konsolidowane (ang. linking) razem z tzw. standardowymi bibliotekami zawierającymi takie funkcje jak na przykład printf. W wyniku konsolidacji powstaje plik z kodem wykonywalnym programu. Jest to już gotowy program.
Rysunek 1. Zasada działania kompilatora języka C
Opisy języków programowania
Logo |
Basic |
Pascal |
C |
Visual Basic |
C++ |
Java
|