|
Główne cechy języka c++ Kompilacja Programy napisane w języku C++ są kompilowane do kodu maszynowego. W tym wypadku mogą one bezpośrednio zarządzać alokacją pamięci, dzięki czemu są bardzo szybkie i efektywnie gospodarują zasobami systemowymi. Efektywność kodu napisanego C++ wynika także z wieloletnich doświadczeń w optymalizacji kompilatorów dla tego języka. Jezyk C++ może być również kompilowany do kodu pośredniego .NET. Wymaga to jednak zastosowania specjalnych rozszerzeń języka, np. Managed C++ lub C++/CLI (ten ostatni uznawany jest za osobny język programowania i zawiera rozwiązania chronione patentami). W tym wypadku program może skorzystać z mechanizmów automatycznego zarządzanie alokacją pamięci. Powoduje to, że co prawda programy są nieco wolniejsze, jednak zawierają mniejszą ilość błędów związanych z nieprawidłową alokacją pamięci lub błędy te są neutralizowane przez automatyczne mechanizmy zarządzania pamięcią (Garbage collection). Cechy standardów Projekt języka C++ usiłuje zachować możliwie jak największą zgodność (na poziomie kodu źródłowego) z językiem C. Projektanci C++ za idealną uznaliby sytuację, w której język C byłby podzbiorem języka C++ (tj. każdy program w C byłby takim samym programem w C++, ale nie odwrotnie). Zgodność pomiędzy obu językami nie zawsze była całkowita, ale jak dotąd ewentualne różnice były w praktyce nieistotne [1]. 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 , obliczenia i wizualizację. Biblioteki C++ związane z interfejsami systemów nie są przenaszalne poza ich obręb, co wynika z faktu, że takie interfejsy są specyficzne dla dane systemu i nie jest to specyficzne tylko dla C++. Większość użytecznych programów w C++ wymaga stosowania bibliotek niestandardowych. Są one łatwo dostępne w Sieci zarówno jako produkty komercyjne, jak i typu Open Source. W szczególności programy napisane w C++ mogą korzystać z ogromnych zasobów bibliotek języka C. Język C++ posiada swój oficjalny standard (aktualnie jest to IEC14882:2003) z 2003 r. Język C++ nie jest własnością żadnej osoby, instytucji czy korporacji. Właściwości języka Język C++ jest językiem wieloparadygmatowym [2]. Oznacza to, ze można w nim stosować (jednocześnie!) różne style programowania, w tym programowanie proceduralne, obiektowe, generyczne, a nawet programować na poziomie asemblera. Język C++ zakłada ścisłą statyczną kontrolę typów; posiada też elemety dynamicznej kontroli typów. Język C++ umożliwia bezpośrednie zarządzanie pamięcią wolną. 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. Do dziś (2006 r.) żaden wiodący kompilator nie jest w pełni zgodny z obowiązującym standardem języka, aczkolwiek ewentualne niezgodności dotyczą już tylko raczej mało pożądanych cech języka (np. implementacji słowa kluczowego export. Język C++ nie zmusza programistów do wyboru określonego stylu programowania czy stosowania określonych rozwiązań. Otwiera to ogromne pole do popisu dla doświadczonych programistów, jednak powoduje też, że początkujący adepci C++ z reguły tworzą kod bardzo marnej jakości, często nie mając świadomości rzeczywistego sposobu działania swojego kodu.
|