Języki programowania

C++


C++ – język programowania ogólnego przeznaczenia. Umożliwia abstrakcję danych oraz stosowanie kilku paradygmatów programowania: proceduralnego, obiektowego i generycznego. Charakteryzuje się wysoką wydajnością kodu wynikowego, bezpośrednim dostępem do zasobów sprzętowych i funkcji systemowych, łatwością tworzenia i korzystania z bibliotek (napisanych w C++, C lub innych językach), niezależnością od konkretnej platformy sprzętowej lub systemowej (co gwarantuje wysoką przenośność kodów źródłowych) oraz niewielkim środowiskiem uruchomieniowym. Podstawowym obszarem jego zastosowań są aplikacje i systemy operacyjne. C++ został zaprojektowany przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów. Zachowanie zgodności z językiem C na poziomie kodu źródłowego pozostaje jednym z podstawowych celów projektowych kolejnych standardów języka. W latach 90. XX wieku język C++ zdobył pozycję jednego z najpopularniejszych języków programowania ogólnego przeznaczenia. Na początku XXI wieku liczbę programistów języka C++ szacowano na około 3 miliony. Język C++ jest standaryzowany przez ISO. Ostatnia, najnowsza z wersji standardu, nazywana C++17, opublikowana została w grudniu 2017 jako ISO/IEC 14882:2017. Pierwszą wersję, C++98, opublikowano w 1998 jako ISO/IEC 14882:1998. Następnie kilkukrotnie standard aktualizowano: C++03, C++11 (opracowany już w 2009 jako C++0x, jednak opublikowany dopiero w 2011), oraz C++14. Obecnie planowana jest już kolejna wersja standardu, na razie roboczo nazywana C++2a. Projekt języka C++ usiłuje zachować możliwie jak największą zgodność (na poziomie kodu źródłowego) z językiem C. Zgodność pomiędzy obydwoma językami nie zawsze była całkowita, ale jak dotąd ewentualne różnice były w praktyce nieistotne. Większym problemem związanym ze zgodnością była niekompatybilność kompilatorów języka C++ w zakresie obsługiwanej składni – przez wiele lat programy napisane pod jednym nie działały pod innym. Biblioteki C++ związane z interfejsami systemów nie są przenośne poza ich obręb, co wynika z faktu, że takie interfejsy są specyficzne dla danego systemu i nie dotyczy to wyłącznie C++.

Właściwości języka

Język C++ jest językiem wieloparadygmatowym
Język C++ zakłada statyczną kontrolę typów; posiada też elementy dynamicznej kontroli typów.
Język C++ umożliwia bezpośrednie zarządzanie wolną pamięcią.
Projekt języka zakłada, że żadna nowa (względem języka C) cecha języka C++ nie może mieć negatywnego wpływu na szybkość działania programu lub zapotrzebowanie na pamięć operacyjną. Dzięki temu dobrze napisany program w C++ jest z reguły co najmniej równie szybki, jak jego odpowiednik napisany w C; co więcej, dzięki możliwości zastosowania algorytmów generycznych w wielu przypadkach C++ jest wyraźnie szybszy od C (np. podczas sortowania)
Język C++ ze względu na bardzo rozbudowaną składnię oraz surowe wymogi w zakresie wydajności kodu stanowi duże wyzwanie dla twórców kompilatorów