Kompilatory C++
Czym jest kompilator?
Pisząc program, zarówno w C++, jak i każdym innym języku możemy go w zasadzie pisać w dowolnym edytorze tekstowym, chociażby notatniku. Ten kod programu, który my piszemy jest nazywanym kodem źródłowym. Jednak posiadając sam kod źródłowy nie możemy z całą pewnością stwierdzić, że program dobrze działa, albo nawet, że robi to co miał robić - do tego jest właśnie potrzebny kompilator.
Kompilator umożliwia przekształcenie kodu źródłowego do kodu wynikowego, który możemy już bezpośrednio uruchomić na komputerze. W momencie kompilacji (czyli przetwarzania kodu źródłowego do kodu wynikowego), następuje prawdziwy test poprawności składni napisanego przez nas kodu. To tutaj, jeśli zrobiliśmy jakiś błąd, np. zapomnieliśmy średnika, zostaniemy poinformowani o błędzie.
Jeśli kompilator wykryje w naszym kodzie chociaż jeden błąd - kończy swoje działanie. Kod wynikowy nie zostaje otrzymany, a o błędach jesteśmy zazwyczaj w jakiś sposób poinformowani. Niestety rzadko kiedy łatwo pojąć gdzie popełniliśmy błąd, nawet gdy przeczytamy dokładnie listę błędów. Wszystkie błędy warto zaczynać eliminować od pierwszego błędu, bowiem dość często zdarza się, że my popełniliśmy tylko jeden błąd, natomiast kompilator wypisuje listę np. dwudziestu błędów.
Oprócz błędu, kompilator podczas kompilacji może wyświetlić ostrzeżenie. Ostrzeżenie, jest zazwyczaj odróżniane od błędu poprzez dodanie przed właściwym komunikatem słowa Warning, co po polsku znaczy właśnie ostrzeżenie. Jeśli podczas kompilacji pojawi się jedno lub więcej ostrzeżeń, a nie pojawi się żaden błąd, to kod wynikowy zostanie otrzymany i możemy już spróbować uruchomić program.
O ile w przypadku błędów sprawa jest oczywista - musisz się ich pozbyć, żeby otrzymać kod wynikowy i móc uruchomić program, to w przypadku ostrzeżeń ktoś może sobie pomyśleć - przecież kod wynikowy już mam, to po co mam się martwić ostrzeżeniami. Sprawa jest jednak nieco bardziej skomplikowana - ostrzeżenia informują nas często o możliwości zaistnienia błędu innego typu - błędu logicznego w danym miejscu. Dlatego też jeśli kompilator ma opcję powiadamiania o ostrzeżeniach, warto ją mieć włączoną i postarać pozbyć się wszystkich warningów. Ja sam w przypadku wszystkich poważniejszych programów właśnie tak robię.
Jak już wspomniałem, podczas kompilacji, kompilator może wypisać listę błędów, jakie popełniliśmy. Błędy wyświetlane przez kompilator to błędy składniowe - czyli takie błędy, które można by powiedzieć, że dla nas jako dla człowieka mogą nie mieć większego znaczenia, bowiem patrząc na program z jednym małym błędem, nam udałoby się zrozumieć co program robi. Kompilator natomiast nie jest taki mądry, dlatego potrzebuje mieć napisane wszystko idealnie według zasad, które zna. Oprócz błędów składniowych istnieją już wspomniane wcześniej przeze mnie błędy logiczne - to one sprawiają, że program nie działa w sposób przez nas oczekiwany, bo po prostu coś źle wymyśliliśmy. Włączenie ostrzeżeń i ich eliminowanie przez programistę, może zapobiegać niektórym z tego typu błędów.