Programowanie, Programowanie

[ Pobierz całość w formacie PDF ]
Programowanie
1
Programowanie
Programowanie
to proces projektowania, tworzenia,
testowania i utrzymywania
lub urządzeń
wych
(
). Kod źródłowy jest napisany w
z użyciem określonych reguł, może on być
modyfikacją istniejącego programu lub czymś zupełnie
nowym. Programowanie wymaga dużej wiedzy i
doświadczenia w wielu różnych dziedzinach, jak
projektowanie aplikacji,
,
,
znajomość
i narzędzi
programistycznych, wiedza nt. kompilatorów, czy sposób
działania podzespołów
a. W
erii
programowanie
(
implementacja
) jest tylko
jednym z etapów powstawania programu.
Między programistami trwają nieustanne debaty, czy
programowanie
jest sztuką, rzemiosłem czy procesem
inżynieryjnym. Bezpośrednią formą sztuki w tej dziedzinie
jest
.
Inną debatą dotyczącą tego przedmiotu jest stopień, w jakim język programowania wpływa na formę, jaką przybiera
oraz jak funkcjonuje końcowy program. Jest ona analogiczna do
w
.
Programiści
Osoba programująca komputery nazywa się
ub potocznie
koderem
. Ich praca zazwyczaj obejmuje:



• Programowanie





 Programowanie
2
Języki programowania
Różne języki programowania pozwalają na wykorzystanie różnych stylów programowania zwanych również
raz specyficznych cech danego języka. Wybór konkretnego języka może zależeć od
indywidualnych upodobań, polityki firmy tworzącej oprogramowanie lub ze względu na zadanie, jakie końcowa
aplikacja ma realizować.
Najlepszym rozwiązaniem jest wybór języka programowania najbardziej dostosowanego do rozwiązywanego
zadania i ewentualnej istniejącej infrastruktury. Najważniejsze kryteria wyboru języka programowania to:
paradygmat i rodzaj języka, przenośność i wydajność kompilatorów, dojrzałość oraz dostępność narzędzi i
dokumentacji.
Ze względów takich jak brak kompilatorów dla danej platformy sprzętowej, niewystarczająca wydajność
wynikowego kody aplikacji, czy konieczność utrzymania i integracji z już istniejącą infrastrukturą, może nie być to
możliwe lub zbyt kosztowne do zrealizowania. W przypadku większych projektów istotne jest też, jak szybko można
znaleźć odpowiednio wykwalifikowane osoby znające konkretny język i jak szybko uda się z nich stworzyć sprawny
zespół.
Historia programowania
Mechaniczne urządzenia liczące są
konstruowane już od czasów starożytnych.
ochodzący z
czasów starożytnej
(
-
był mechanicznym kalkulatorem opartym o
zespół kół zębatych służącym do obliczeń
astronomicznych
[1]
.
wynalazca
budował w
oku
programowalny automat perkusyjny z
pałeczkami oraz
umieszczonymi
na drewnianym bębnie w określonych
miejscach. W miarę obrotu bębna uderzały
one o dźwignie, które odgrywały określony
dźwięk na instrumencie perkusyjnym. W
roku powstało
Maszyna korzystała z kart
dziurkowanych, na których zapisany był wzór tkaniny do wytworzenia. Zmieniając zestaw kart, można było uzyskać
tkaniny z innymi wzorami. Pomysł ten został później podchwycony przez
Programowanie komputera analogowego w:pl:ELWATELWAT z końca lat 60.
XX wieku, przez łączenie tablica połączeńtablicy połączeń.
W
oku
zaczął budowę
ędącej w istocie mechanicznym,
programowalnym protokomputerem, który wyprzedzał swoją epokę. Z powodu trudności konstrukcyjnych, a także
braku zainteresowania rządu
wynalazca nie dokończył swojego wynalazku, lecz projekt został
opisany przez
która napisała także dla niego pierwszy program obliczający
i w
ten sposób została pierwszym programistą (a właściwie programistką) w historii.
Wynalezienie
możliwiło przechowywanie programów komputerowych w pamięci
operacyjnej komputera razem z danymi. Pierwsze programy musiały być składane bezpośrednio z operacji
oferowanych przez konkretną maszynę, często w notacji binarnej. Każdy model używał innego zestawu komend, co
ograniczało przenośność. W późniejszych latach zaprojektowano pierwsze
y, gdzie programista mógł
wpisywać instrukcje w formacie tekstowym z wykorzystaniem zapisu symbolicznego zamiast numeru rozkazu, np.
ADD X, TOTAL
. W
roku stworzony został pierwszy język programowania wysokiego poziomu,
,
 Programowanie
3
gdzie programiści mogli bezpośrednio formułować wyrażenia matematyczne w podobnym stylu, do jakiego jesteśmy
przyzwyczajeni:
y = x^2 + 5*x

7
. Tekst programu, lub inaczej jego
źródło
, było tłumaczone do postaci zrozumiałej
dla maszyny za pomocą specjalnej aplikacji zwanej
m. W późniejszych latach powstały nowe języki
programowania, często zorientowane do tworzenia konkretnych typów aplikacji.
W początkowych latach istnienia komputerów (ok. 1940-1960), programy komputerowe były wprowadzane do
pamięci komputera za pośrednictwem kart dziurkowanych lub papierowych taśm. Pod koniec lat sześćdziesiątych
pojawiły się pierwsze urządzenia do elektronicznego przechowywania informacji oraz terminale komputerowe,
dzięki którym kod źródłowy mógł być wprowadzany bezpośrednio do komputera za pomocą edytorów tekstu.
Wraz z rozwojem
u oraz sieci komputerowych pojawiły się narzędzia ułatwiające zespołową pracę nad
programami, takie jak
. Kod źródłowy jest tutaj przechowywany na centralnym serwerze,
natomiast programiści wysyłają do niego poprawki z własnych kopii lokalnych. Wszystkie zmiany są rejestrowane, a
program zarządzający potrafi inteligentnie łączyć ze sobą fragmenty modyfikowane niezależnie przez dwóch
programistów, dzięki czemu nie może zaistnieć sytuacja przypadkowego skasowania efektu pracy innego członka
zespołu.
Obecnie programowanie jest atrakcyjną karierą w niemal każdym kraju rozwiniętym, ze względu na stale rosnący
popyt na nowe aplikacje komputerowe. Niektóre z najbogatszych osób świata są programistami z zawodu, np.
),
,
) czy
).
Nowoczesne programowanie
Pierwsze kroki w każdym projekcie programistycznym powinny być analiza wymagań, modelowanie,
implementacja i eliminacja błędów (
). Istnieje wiele różnych sposobów na zrealizowanie każdego z tych
etapów.
Współcześni programiści korzystają z wielu specjalistycznych narzędzi wspomagających tworzenie i zarządzanie
złożonymi aplikacjami. Proces tworzenia programu komputerowego zazwyczaj rozpoczyna się od stworzenia analizy
wymagań oraz zaprojektowania architektury. Popularnymi technikami modelowania są tutaj
oraz
.
Unified Modelling Language
(
jest powszechnie akceptowaną notacją do prezentowania obu z nich.
Dopiero wtedy następuje tworzenie właściwego kodu źródłowego. Przy złożonych aplikacjach korzysta się z
zaawansowanych środowisk
wyposażonych w szereg dodatkowych menedżerów pokazujących różne
informacje o strukturze aplikacji oraz w rozbudowany system wykrywania i usuwania błędów. Popularnymi
środowiskami IDE są
firmy Microsoft oraz projekt
adzorowany przez
.
Obecnie istotnym zagadnieniem jest
odu źródłowego, który często jest modyfikowany w
sposób rozproszony przez wielu programistów. Im większy projekt (np. taki jak system operacyjny:
,
itp.) tym większe znaczenie ma integrowanie wielu zmian oraz zarządzanie nimi (np.
śledzenie zmian niezależnie od np. przemieszczania się plików itp.). Do takich systemów zaliczyć można np.
,
i inne. Wiele dużych, komercyjnych środowisk programistycznych zintegrowanych jest
w system kontroli wersji.
Usuwanie błędów z gotowej aplikacji jest ostatnim krokiem rozwoju oprogramowania. Trudność jego realizacji
zależy od środowiska, jakości kodu źródłowego oraz wybranego języka programowania. Istnieją dwa główne
sposoby debugowania: statyczna analiza kodu i dynamiczna. Pierwszy polega na analizie kodu źródłowego pod
kątem występowania możliwych błędów. Drugi, na analizie programu w trakcie pracy, służą ku temu specjalne
narzędzia, zwane debugerami oraz fragmenty kodu zawarte bezpośrednio w programie, których jedynym zadaniem
jest pomoc w znalezieniu błędów.
 Programowanie
4
Nowoczesne języki
Współcześnie używanymi językami programowania są:
,
,
,
,
,
,
Wiele języków wyewoluowało z C, jak na przykład C++, C# czy Java. Języki Java, Python i Ruby są popularne,
gdyż pozwalają na bardzo
(ang.
Rapid Application Development
) oraz są uruchamiane w
wirtualnej maszynie, co pozwala na uniknięcie wielu problemów znanych z języków niższego poziomu, takich jak
przepełniania bufora czy nieprawidłowe wskaźniki. Jednakże większość programów biurowych, jak na przykład
edytory tekstu czy grafiki, jest napisanych w wydajniejszych językach, takich jak C, C++ czy Delphi.
ą niemal całkowicie napisane w wydajnych językach, ponieważ szybkość jest konieczna.
Naukowe programy są zwykle zaimplementowane w Fortranie, gdyż przy użyciu nowszych
w możliwa
jest w nim bardzo wydajna optymalizacja obliczeń arytmetycznych. Cobol jest wciąż na silnej pozycji w
zagranicznych korporacyjnych i rządowych centrach danych, głównie na serwerach
. PHP i Java górują w
programach korzystających z bazy danych. Python, będąc językiem ogólnego zastosowania, jest wykorzystywany
zwykle w administracji systemu i na stronach
.
Istniejące języki programowania są stale rozwijane i modernizowane, powstają też zupełnie nowe, często
innowacyjne języki i kompilatory.
Debugowanie
Debugowanie jest bardzo ważną częścią procesu tworzenia oprogramowania, ponieważ program z błędami jest
zwykle bezużyteczny. Języki takie jak C czy Asembler mogą stanowić wyzwanie nawet dla doświadczonych
programistów. Bliski kontakt ze sprzętem oprócz dużej wydajności i kontroli nad sprzętem, niesie ze sobą również
podatność na wystąpienie poważnych błędów takich jak
błędne wskaźniki czy niezainicjowana
pamięć. Przepełnienie bufora może uszkodzić pograniczne segmenty pamięci i spowodować błąd w zupełnie innej
linii programu, jest również bardzo skuteczną metodą ataku - pozwala na wykonanie dowolnego kodu przez
nadpisanie wskaźnika powrotnego funkcji. Z tego powodu narzędzia takie jak
zy
są niemal niezbędne przy tworzeniu nowoczesnych aplikacji w C czy C++.
Języki takie jak
i
apobiegają większości takich błędów, ale za cenę spadku wydajności programu
wynikowego. Jest to akceptowalne w programach, którym większość czasu zabierają zapytania do
Zawody programistyczne
Od kilku dekad organizowanych jest szereg konkursów programistycznych skierowanych przeważnie do młodych
programistów (uczniów szkół średnich i studentów). W Polsce odbywa się kilka dużych konkursów tego typu, a
wśród nich, kierowane do studentów
, czy
skierowana do uczniów szkół średnich
organizowana przez Ministerstwo Edukacji.
Istnieją też portale skupiające zawodników startujących w tego typu konkursach (zob.
), które zawierają
zbiory zadań i pozwalają na automatyczne sprawdzanie rozwiązań.
Osobliwą formą zawodów programistycznych są
kompoty
(od
ompetition - turniej) organizowane przez
społeczność
a zlotach takich jak np.
inne. Kategorie
w głównej mierze
skupiają się na konkurencji w umiejętności tworzenia najwydajniejszego kodu lub wykazania niezwykłego
programistycznego polotu. Często też mają miejsce kategorie, w których ogranicza się rozmiar kodu np. 4 KB, 8
KB, 64 KB 96 KB itp. W takim przypadku autor lub autorzy próbują zbudować niezwykle urozmaicony i
rozbudowany program
ny mieszczący się w zadanych ramach.
 Programowanie
5
Zobacz też








Linki zewnętrzne
Materiały dydaktyczne
na studia informatyczne I stopnia:
• Wstęp do programowania
• Paradygmaty programowania
• Metody programowania
• Środowisko programisty
• Programowanie w Visual Basic
Materiały dydaktyczne MIMUW na studia informatyczne II stopnia:
• Metody realizacji języków programowania
Przypisy
[1] Ancient Greek Computer's Inner Workings Deciphered
/
news.
nationalgeographic.
com/
news/
2006/
11/
061129-ancient-greece.
(
. National Geographic News
/
news.
nationalgeographic.
com/
)
, 2006-11-29. [dostęp 2010-10-19].
[2]
/
wazniak.
mimuw.
edu.
pl/
index.
php?title=Wst%C4%99p_do_programowania
[3]
/
wazniak.
mimuw.
edu.
pl/
index.
php?title=Paradygmaty_programowania
[4]
/
wazniak.
mimuw.
edu.
pl/
index.
php?title=Metody_programowania
[5]
/
wazniak.
mimuw.
edu.
pl/
index.
php?title=%C5%9Arodowisko_programisty
[6]
/
www.
e-programme.
info
[7]
/
wazniak.
mimuw.
edu.
pl/
index.
php?title=Metody_realizacji_j%C4%99zyk%C3%B3w_programowania
  [ Pobierz całość w formacie PDF ]