Pytania pomocnicze - INF.04
Projektowanie, programowanie i testowanie aplikacji
Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 3064.
Strona 40 z 40.
Dlaczego licencja GNU GPL pasuje do pytania o modyfikowanie i rozpowszechnianie kodu źródłowego?
GNU GPL daje użytkownikowi prawo do dostępu do kodu źródłowego, jego modyfikacji oraz dalszego rozpowszechniania programu. To jedna z podstawowych licencji wolnego oprogramowania.
Czym różni się licencja GNU GPL od licencji komercyjnej?
Licencja komercyjna zwykle ogranicza kopiowanie, modyfikowanie i udostępnianie programu. GNU GPL pozwala na modyfikację i rozpowszechnianie, ale wymaga zachowania warunków tej samej licencji.
Co oznacza zasada copyleft w licencji GNU GPL?
Copyleft oznacza, że zmodyfikowana i rozpowszechniana wersja programu GPL również musi być udostępniona na licencji GPL. Chroni to wolność dalszego korzystania z kodu.
Czy program objęty licencją GNU GPL może być sprzedawany?
Tak, GPL nie zakazuje sprzedaży programu. Trzeba jednak zachować prawa użytkowników, w tym dostęp do kodu źródłowego i możliwość dalszego rozpowszechniania.
Czym różni się shareware od oprogramowania na licencji GNU GPL?
Shareware to zwykle program udostępniany do testów, często z ograniczeniami lub koniecznością zapłaty za pełną wersję. GNU GPL dotyczy wolności używania, modyfikowania i rozpowszechniania kodu.
Czym jest licencja OEM i dlaczego nie jest poprawną odpowiedzią w tym pytaniu?
Licencja OEM jest zwykle przypisana do konkretnego sprzętu lub producenta. Nie oznacza automatycznie prawa do zmieniania i rozpowszechniania kodu źródłowego.
Na czym polega główna różnica między kompilatorem a interpreterem?
Kompilator tłumaczy kod źródłowy przed uruchomieniem programu, często tworząc plik wykonywalny. Interpreter wykonuje kod w trakcie działania programu.
Dlaczego odpowiedź B jest poprawna?
Ponieważ kompilator przekształca kod źródłowy na postać wykonywalną, np. kod maszynowy, zanim aplikacja zostanie uruchomiona.
Dlaczego odpowiedź A jest błędna?
Opisuje działanie w momencie wykonywania programu, co jest bardziej charakterystyczne dla interpretera niż dla klasycznego kompilatora.
Czy interpreter tworzy plik wykonywalny?
Zwykle nie. Interpreter odczytuje i wykonuje kod podczas działania programu, zamiast tworzyć samodzielny plik wykonywalny.
Jakie języki są zwykle kojarzone z kompilacją?
Z kompilacją często kojarzy się C, C++ lub C#. Kod takich programów jest przetwarzany przed uruchomieniem.
Jakie języki są zwykle kojarzone z interpretacją?
Z interpretacją często kojarzy się Python, JavaScript lub PHP. Kod jest wykonywany przez interpreter lub środowisko uruchomieniowe.
Czy program skompilowany zwykle działa szybciej niż interpretowany?
Często tak, ponieważ kod został wcześniej przetłumaczony na postać bliższą procesorowi. Nie jest to jednak reguła absolutna, bo nowoczesne środowiska używają też technik pośrednich, np. JIT.
Na czym polega kompilacja kodu źródłowego?
Kompilacja polega na przetłumaczeniu kodu źródłowego na kod wynikowy, często maszynowy lub pośredni. Jej efektem może być plik wykonywalny.
Dlaczego generowanie pliku wykonywalnego jest związane z kompilatorem?
Kompilator przetwarza cały kod programu i tworzy wynik gotowy do uruchomienia. W wielu językach, np. C lub C++, tym wynikiem jest plik wykonywalny.
Czym różni się kompilator od interpretera?
Kompilator tłumaczy program przed uruchomieniem, często tworząc plik wykonywalny. Interpreter tłumaczy i wykonuje instrukcje na bieżąco podczas działania programu.
Czy debugowanie jest tym samym co kompilowanie?
Nie. Debugowanie służy do analizowania działania programu i znajdowania błędów, np. przez wykonywanie kodu krok po kroku. Kompilowanie służy do przetworzenia kodu źródłowego na postać wynikową.
Dlaczego błędy logiczne zwykle nie są wykrywane przez sam kompilator?
Kompilator sprawdza głównie składnię, typy i formalną poprawność kodu. Błąd logiczny oznacza, że program działa, ale daje niepoprawny wynik, więc często ujawnia się dopiero podczas testowania lub uruchomienia.
Co oznacza wykonywanie kodu krok po kroku?
To technika debugowania, w której programista zatrzymuje program na kolejnych instrukcjach i obserwuje wartości zmiennych oraz przebieg działania programu.
Czym jest biblioteka programistyczna?
Biblioteka programistyczna to gotowy zestaw funkcji, klas, metod lub modułów, które można wykorzystać we własnej aplikacji. Pozwala przyspieszyć tworzenie programu i unikać pisania tego samego kodu od zera.
Dlaczego odpowiedź „plik wykonywalny działający jako odrębny program” nie opisuje biblioteki?
Taki opis pasuje raczej do samodzielnej aplikacji, np. pliku EXE. Biblioteka zwykle nie jest uruchamiana samodzielnie, tylko jest używana przez inny program.
Jaka jest różnica między biblioteką a frameworkiem?
Biblioteka dostarcza gotowe elementy, które programista wywołuje wtedy, gdy ich potrzebuje. Framework narzuca zwykle strukturę aplikacji i kontroluje główny przepływ działania programu.
Do czego służą funkcje i klasy udostępniane przez bibliotekę?
Służą do wykonywania gotowych operacji, np. obsługi plików, połączeń sieciowych, interfejsu użytkownika, baz danych lub obliczeń. Dzięki temu kod aplikacji jest krótszy i łatwiejszy w utrzymaniu.
Czy biblioteka może być używana tylko podczas kompilacji programu?
Nie zawsze. Biblioteka statyczna jest dołączana podczas kompilacji lub linkowania, ale biblioteka dynamiczna może być ładowana podczas działania programu.
Jakie są przykłady bibliotek programistycznych?
Przykładami mogą być jQuery w JavaScript, NumPy w Pythonie, STL w C++ lub biblioteki .NET w C#. Każda z nich udostępnia gotowe funkcje, klasy albo struktury danych.
Czym jest kompilator?
Kompilator to program, który tłumaczy kod źródłowy napisany w języku programowania na kod maszynowy lub inną postać możliwą do wykonania przez komputer.
Dlaczego odpowiedzią nie jest plik źródłowy?
Plik źródłowy jest wejściem dla kompilatora, a nie jego wyjściem. Kompilator przetwarza kod źródłowy na postać wykonywalną.
Czy zestaw błędów może być wynikiem pracy kompilatora?
Kompilator może zgłosić błędy, jeśli kod jest niepoprawny, ale nie jest to właściwy produkt kompilacji. Poprawnym wyjściem przy udanej kompilacji jest program wynikowy.
Czym różni się kod źródłowy od kodu maszynowego?
Kod źródłowy jest czytelny dla programisty i zapisany w języku wysokiego poziomu. Kod maszynowy jest zrozumiały dla procesora i może być wykonywany przez komputer.
Jaka jest różnica między kompilatorem a interpreterem?
Kompilator tłumaczy program przed uruchomieniem, zwykle tworząc plik wynikowy. Interpreter wykonuje kod bezpośrednio, najczęściej instrukcja po instrukcji.
Czym jest język pośredni w procesie kompilacji?
Język pośredni to forma kodu znajdująca się między kodem źródłowym a maszynowym. Występuje np. w Javie jako bytecode, ale w tym pytaniu egzaminacyjnym oczekiwana jest odpowiedź: plik maszynowy gotowy do uruchomienia.
Co oznacza, że plik jest gotowy do uruchomienia?
Oznacza to, że system operacyjny może rozpocząć wykonywanie programu. Taki plik zawiera kod wynikowy oraz informacje potrzebne do startu programu.
Na czym polega interpretacja kodu źródłowego?
Interpretacja polega na wykonywaniu programu przez interpreter, który tłumaczy i uruchamia kod na bieżąco, zwykle instrukcja po instrukcji lub fragment po fragmencie.
Czym różni się interpreter od kompilatora?
Interpreter wykonuje kod w czasie działania programu, bez wcześniejszego tworzenia samodzielnego pliku wykonywalnego. Kompilator tłumaczy cały kod źródłowy wcześniej, zwykle do kodu maszynowego lub pośredniego.
Dlaczego odpowiedź „tworzenie pliku wykonywalnego” nie opisuje interpretacji?
Tworzenie pliku wykonywalnego jest typowe dla kompilacji. W interpretacji program jest uruchamiany przez interpreter i nie musi powstać osobny plik .exe.
Co oznacza tłumaczenie kodu w czasie rzeczywistym?
Oznacza, że kod jest analizowany i wykonywany podczas uruchamiania programu, a nie w całości przed jego startem.
Jakie języki są często kojarzone z interpretacją?
Do języków często wykonywanych przez interpreter należą Python, JavaScript, PHP i Ruby, choć współczesne środowiska mogą łączyć interpretację z kompilacją JIT.
Jakie są zalety interpretacji kodu?
Interpretacja ułatwia szybkie testowanie i uruchamianie programu bez osobnego etapu kompilacji. Często sprzyja też przenośności między systemami.
Jakie są wady interpretacji kodu?
Program interpretowany może działać wolniej niż program skompilowany do kodu maszynowego, ponieważ tłumaczenie odbywa się w trakcie działania.
Do czego służy debugger podczas tworzenia programu?
Debugger służy do analizowania działania programu w czasie jego uruchomienia. Pomaga wykrywać błędy logiczne, sprawdzać wartości zmiennych i śledzić wykonywanie kodu krok po kroku.
Czym debugger różni się od kompilatora?
Kompilator tłumaczy kod źródłowy na kod maszynowy lub pośredni. Debugger nie tłumaczy kodu, tylko pomaga znaleźć błędy podczas działania programu.
Co oznacza wykonywanie programu krok po kroku?
Oznacza uruchamianie kolejnych instrukcji programu pojedynczo. Dzięki temu programista może obserwować, w którym miejscu pojawia się błąd.
Czym jest breakpoint w debuggerze?
Breakpoint, czyli punkt przerwania, to miejsce w kodzie, w którym program zostaje zatrzymany podczas debugowania. Pozwala to sprawdzić stan programu w konkretnym momencie.
Jakie informacje można sprawdzić za pomocą debuggera?
Można sprawdzić między innymi wartości zmiennych, kolejność wykonywania instrukcji, zawartość stosu wywołań oraz moment wystąpienia wyjątku lub błędu.
Czy debugger służy do kontroli wersji kodu?
Nie. Do kontroli wersji kodu służą systemy takie jak Git. Debugger służy do wykrywania i analizowania błędów w działającym programie.
Czym różni się biblioteka statyczna od dynamicznej?
Biblioteka statyczna jest dołączana do pliku wykonywalnego podczas budowania programu. Biblioteka dynamiczna pozostaje osobnym plikiem i jest ładowana przy uruchamianiu lub w czasie działania aplikacji.
Dlaczego poprawną odpowiedzią jest informacja o dodaniu biblioteki do pliku wykonywalnego?
To podstawowa cecha biblioteki statycznej. Jej kod zostaje włączony do programu na etapie kompilacji/linkowania, więc aplikacja zawiera potrzebne fragmenty biblioteki.
Co oznacza linkowanie w procesie budowania programu?
Linkowanie to etap, w którym łączone są skompilowane moduły programu oraz potrzebne biblioteki. W przypadku biblioteki statycznej jej kod trafia do pliku wykonywalnego.
Jakie są zalety biblioteki statycznej?
Program może działać bez osobnego pliku biblioteki, co ułatwia dystrybucję. Zmniejsza to ryzyko braku wymaganej biblioteki w systemie użytkownika.
Jakie są wady biblioteki statycznej?
Plik wykonywalny jest zwykle większy. Aktualizacja biblioteki wymaga ponownej kompilacji lub ponownego zbudowania programu.
Kiedy używa się bibliotek dynamicznych?
Gdy kod ma być współdzielony przez wiele programów lub gdy biblioteka ma być aktualizowana niezależnie od aplikacji. Przykładem są pliki DLL w systemie Windows.
Czy biblioteka dynamiczna musi być obecna podczas uruchamiania programu?
Tak, jeżeli program jej wymaga, plik biblioteki dynamicznej musi być dostępny w odpowiedniej lokalizacji. W przeciwnym razie aplikacja może się nie uruchomić.
Czym różni się kod źródłowy od kodu maszynowego?
Kod źródłowy jest czytelny dla programisty i zapisany w języku programowania. Kod maszynowy jest zbiorem instrukcji zrozumiałych bezpośrednio dla procesora.
Na czym polega kompilacja programu?
Kompilacja polega na przetłumaczeniu kodu źródłowego na kod wynikowy, np. kod maszynowy lub kod pośredni. Wykonuje ją kompilator.
Dlaczego odpowiedź „przetwarzanie kodu źródłowego przez kompilator” nie opisuje uruchamiania aplikacji?
Ponieważ opisuje etap kompilacji, a nie wykonania programu. Uruchamianie następuje dopiero wtedy, gdy gotowy program zaczyna działać.
Co robi system operacyjny podczas uruchamiania aplikacji?
System operacyjny tworzy proces, ładuje program do pamięci, przydziela zasoby i rozpoczyna jego wykonywanie.
Czym jest język pośredni w procesie tworzenia aplikacji?
Język pośredni to forma kodu pomiędzy kodem źródłowym a kodem maszynowym. Występuje np. w Javie jako bytecode lub w C# jako IL.
Jaka jest różnica między programem kompilowanym a interpretowanym?
Program kompilowany jest zwykle tłumaczony przed uruchomieniem do kodu wynikowego. Program interpretowany jest analizowany i wykonywany przez interpreter w czasie działania.
Czym różni się kompilacja od uruchamiania programu?
Kompilacja przygotowuje program do wykonania, przekształcając kod źródłowy na kod wynikowy. Uruchamianie programu polega na wykonywaniu tego kodu przez komputer.
Jakie błędy może wykryć kompilator?
Kompilator może wykryć m.in. błędy składniowe, niezgodność typów, brakujące deklaracje lub niepoprawne użycie instrukcji języka.
Na czym polega optymalizacja kodu podczas kompilacji?
Optymalizacja polega na takim przekształceniu kodu, aby program działał szybciej, zużywał mniej pamięci lub generował krótszy kod wynikowy.
Dlaczego tłumaczenie kodu źródłowego na kod maszynowy jest częścią kompilacji?
Kod źródłowy jest zrozumiały dla programisty, ale procesor wykonuje instrukcje maszynowe. Kompilator tłumaczy program na postać możliwą do wykonania przez komputer.
Czym jest analiza działania programu w czasie rzeczywistym?
To obserwowanie programu podczas jego wykonywania, np. sprawdzanie wartości zmiennych, czasu działania funkcji lub zużycia pamięci. Nie jest to etap kompilacji.
Jaką rolę pełni debugger w analizie programu?
Debugger pozwala śledzić działanie programu krok po kroku, ustawiać punkty przerwania i sprawdzać wartości zmiennych w czasie wykonania.