Wprowadzenie do języków programowania - Programowanie jest łatwe

Moglibyśmy stworzyć algorytm od razu za pomocą kodu maszynowego- szeregu instrukcji i ich operandów jednak ten sposób jest karkołomny, np. na operację dodawania dwóch zmiennych do siebie składa się kilka instrukcji.

Entre les trous de la memoire, Dominique Appia

Do opisu algorytmu do tej pory używaliśmy schematu blokowego albo opisu słownego. Oba, pomimo swojej prostoty, mają wspólny problem- trudno przenieść je do pamięci komputera w postaci bezpośrednich instrukcji. Moglibyśmy stworzyć algorytm od razu za pomocą kodu maszynowego- szeregu instrukcji i ich operandów jednak ten sposób jest karkołomny, np. na operację dodawania dwóch zmiennych do siebie składa się kilka instrukcji. Pisanie w ten sposób zajęłoby sporo czasu a ilość błędów, które moglibyśmy popełnić byłaby bardzo duża. Dlatego właśnie powstały języki programowania.

Istnieje cała gama języków programowania. Wybór języka to przede wszystkim decyzja jakie problemy chcemy rozwiązywać. Każdy język jest w czymś lepszy od innego, niektóre idealnie nadają się do zarządzania pamięcią i wydawania rozkazów bezpośrednio do procesora, inne, bardziej abstrakcyjnie, mogą okazać się lepsze przy rozwiązywaniu górnolotnych problemów. Dodatkowo jest jeszcze kwestia programisty, w końcu to on będzie pisać algorytm, czyli potrzebuje takiego narzędzia, które sprawia mu lekkość w posługiwaniu się.

Zalecam rozpocząć przygodę programowania od języka C. Jego składnia jest mocno rozpowszechniona i sporo współczesnych języków z niej czerpie. Znając C bardzo łatwo będzie Tobie nauczyć się innego języka. Dodatkowo ten język dysponuje mechanizmami, które w bardzo bezpośredni sposób dotykają tego, co jest w programowaniu najważniejsze- pamięci. Gdy nauczysz się posługiwać wskaźnikami i referencjami bez problemu zrozumiesz obiektowość w JAVA czy innym języku, który jest pozbawiony tej warstwy na korzyść prostoty, czytelności i większej odporności na błędy, które mogą powstać w wyniku bezpośredniego gmerania w pamięci.

Narzędzia

Programując będziemy korzystać z wielu narzędzi. O ile do samego pisania programów wystarczy nam kartka papieru i ołówek o tyle do uruchomienia napisanego programu potrzebujemy czegoś bardziej wyrafinowanego.

Do napisania programu wystarczy nam prosty edytor tekstu. Mam tutaj na myśli prosty notatnik czy inną aplikację, która służy jedynie do zapisania tekstu do pliku a nie specjalnego edytora, który dodatkowo formatuje tekst (dodając np. kolory, rozmiary czcionek czy inne właściwości). W systemie Windows będzie to Notatnik, Linuxie Gedit a na Mac OS np. TextWrangler. W skrócie- każda aplikacja, która radzi sobie z plikami z rozszerzeniem .txt bez formatowania. Istnieją zaawansowane narzędzia programistyczne, aplikacje, które mają w sobie rozbudowane edytory tekstu zwane IDE. Takie narzędzia dodatkowo kolorują słowa kluczowe czy dopełniają składnię jednak zapisany w nich kod źródłowy w pliku jest zwykłym tekstem. Środowisko zintegrowane dodatkowo ułatwia pracę na wielu plikach ponieważ programy, zwłaszcza te bardziej rozbudowane nie są tworzone w jednym pliku tylko rozbijane na wiele, niekiedy setki, mniejszych plików po to, aby można było łatwiej nimi zarządzać czy lepiej pracować w zespole. Nierzadko takie narzędzia mają wbudowane także inne podręczne narzędzia.

Kompilator

Po napisaniu kodu źródłowego potrzebujemy narzędzia, które przetłumaczy nasz język programowania na instrukcje, które ma wykonać procesor. Ten proces nazywa się kompilacją a aplikacja, która robi to za nas nazywana jest kompilatorem. Kompilator, jak każdy automat, otrzymuje jako parametry pliki programu zawierające kod źródłowy a po zakończeniu swojej pracy daje plik wyjściowy z binarnymi instrukcjami, które można umieścić w pamięci i podać procesorowi do przetwarzania. Proces kompilacji składa się na kilka etapów. Najważniejsze z nich to: Analiza leksykalna: sprawdzenie, czy użyte nazwy są poprawne i są właściwie zdefiniowane. Np. gdy stworzymy zmienną ala a w jakimś miejscu napiszemy alo proces kompilacji zostanie przerwany a komputer poinformuje nas o błędzie leksykalnym. Analiza syntaktyczna: W tym miejscu kompilator sprawdza czy nie popełniliśmy błędu składni. Np. gdy nie określimy typu zmiennej albo użyjemy nieistniejącego typu. Stworzenie częściowego pliku wyjściowego: to etap, w którym cały nasz algorytm jest zamieniany na szereg instrukcji, które wykona procesor. Linkowanie: Nasz program, nawet ten najmniejszy, będzie korzystać z tzw. Bibliotek czyli zestawu funkcji (algorytmów) napisanych przez samych twórców języka albo innych programistów. Np. gdybyśmy chcieli wyświetlić coś na ekranie komputera- jesteśmy wyposażeni w szereg funkcji do tego, które wystarczy wywołać. Linker, czyli część kompilatora za to odpowiedzialna, sprawdzi wszystkie zależności, którymi się posługujemy i połączy wszystkie potrzebne elementy z naszym częściowym plikiem wynikowym tworząc ostateczny plik, który nazwiemy plikiem wykonywalnym. W Windows ma on rozszerzenie .exe.


Dodano: 2018-01-12 06:27 przez Piotr Poźniak

podręcznik , języki programowania , kompilator , linker , etapy kompilacji ,
Piotr Poźniak
O autorze:

Programuję od ponad 15 lat. Prowadzę software house. Angażuję i zachęcam wszystkich do programowania w ramach inicjatywy Programowanie jest łatwe.