Wady i zalety kompilatorów

...

Programiści używają kompilatorów do przekształcania kodu źródłowego w kod maszynowy.

Komputery odczytują polecenia z języka maszynowego zapisanego w formacie binarnym, tj. długie ciągi zer i jedynek. Podczas gdy komputery potrafią efektywnie czytać ten język, większość programistów nie potrafi. Dlatego programiści pracują w zrozumiałym dla nich języku programowania, który następnie tłumaczą na język maszynowy zrozumiały dla komputera. Podczas gdy wiele nowszych języków używa tłumaczy, które tłumaczą z jednego na drugi podczas działania programu, starsze języki programowania wykorzystywały kompilatory, które wykonały to tłumaczenie całkowicie, zanim komputer wykonał program.

Zaleta: samowystarczalny i wydajny

Jedną z głównych zalet programów, które są kompilowane, jest to, że są to samodzielne jednostki gotowe do wykonania. Ponieważ są one już skompilowane do plików binarnych języka maszynowego, nie ma drugiej aplikacji ani pakietu, który użytkownik musi aktualizować. Jeśli program jest skompilowany dla systemu Windows na architekturze x86, użytkownik końcowy potrzebuje tylko systemu operacyjnego Windows działającego na architekturze x86. Dodatkowo prekompilowany pakiet może działać szybciej niż interpreter kompilujący kod źródłowy w czasie rzeczywistym.

Wideo dnia

Wada: Specyficzny sprzęt

Ponieważ kompilator tłumaczy kod źródłowy na określony język maszynowy, programy muszą być: specjalnie skompilowany dla OS X, Windows lub Linux, a także specjalnie dla 32-bitowego lub 64-bitowego architektury. Dla programisty lub firmy programistycznej, która stara się udostępnić produkt jak najszerszemu gronu odbiorców, oznacza to utrzymywanie wielu wersji kodu źródłowego dla tej samej aplikacji. Powoduje to więcej czasu poświęcanego na konserwację kodu źródłowego i dodatkowe problemy przy wydawaniu aktualizacji.

Zaleta: Optymalizacja sprzętu

Chociaż zamknięcie w określonym pakiecie sprzętowym ma swoje wady, kompilacja programu może również zwiększyć jego wydajność. Użytkownicy mogą wysyłać określone opcje do kompilatorów dotyczące szczegółów sprzętu, na którym będzie działał program. Pozwala to kompilatorowi na tworzenie kodu języka maszynowego, który zapewnia najbardziej efektywne wykorzystanie określonego sprzętu, w przeciwieństwie do bardziej ogólnego kodu. Pozwala to również zaawansowanym użytkownikom na optymalizację działania programu na swoich komputerach.

Wada: czasy kompilacji

Jedną z wad posiadania kompilatora jest to, że musi on faktycznie kompilować kod źródłowy. Podczas gdy kompilacja małych programów, których kompilacja zajmuje wielu początkujących programistów, zajmuje niewiele czasu, kompilacja większych pakietów aplikacji może zająć dużo czasu. Kiedy programiści nie mają nic do roboty poza czekaniem na zakończenie pracy kompilatora, ten czas może się sumować — szczególnie podczas etap rozwoju, kiedy kod musi zostać skompilowany w celu przetestowania funkcjonalności i rozwiązania problemów usterki.