73 captures
10 Oct 2012 - 17 Dec 2025
Apr MAY Jun
12
2012 2013 2014
success
fail

About this capture

COLLECTED BY

Organization: Internet Archive

The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Collection: Wide Crawl started April 2013

Web wide crawl with initial seedlist and crawler configuration from April 2013.
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20130512231336/http://pl.wikipedia.org/wiki/Programowanie_komputer%C3%B3w
 



Programowanie komputerów

 

Z Wikipedii, wolnej encyklopedii
 

Skocz do: nawigacji, wyszukiwania  
Ujednoznacznienie Zobacz też: programowanie w muzyce.
Listing1.jpg

Programowanie komputerów to proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych (mikrokontrolery). Kod źródłowy jest napisany w języku programowania, 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, algorytmika, struktury danych, znajomość języków programowania i narzędzi programistycznych, wiedza nt. kompilatorów, czy sposób działania podzespołów komputera. W inżynierii oprogramowania, programowanie (implementacja) jest tylko jednym z etapów powstawania programu.

Między programistami trwają nieustanne debaty, czy programowanie komputerów jest sztuką, rzemiosłem czy procesem inżynieryjnym. Bezpośrednią formą sztuki w tej dziedzinie jest demoscena.

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 hipotezy Sapira-Whorfawlingwistyce.

Spis treści

[edytuj] Programiści

Information icon.svg Osobny artykuł: Programista.

Osoba programująca komputery nazywa się programistą lub potocznie koderem. Ich praca zazwyczaj obejmuje:

[edytuj] Języki programowania

Information icon.svg Osobny artykuł: Język programowania.

Różne języki programowania pozwalają na wykorzystanie różnych stylów programowania zwanych również paradygmatami programowania oraz 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ół.

[edytuj] Historia programowania

Programowanie komputera analogowego ELWAT z końca lat 60. XX wieku, przez łączenie tablicy połączeń.

Mechaniczne urządzenia liczące są konstruowane już od czasów starożytnych. Mechanizm z Antykithiry pochodzący z czasów starożytnej Grecji (150-100 p.n.e.) był mechanicznym kalkulatorem opartym na zespole kół zębatych, służącym do obliczeń astronomicznych[1]. Arabski wynalazca Al-Jazari zbudował w 1206 roku programowalny automat perkusyjny z pałeczkami oraz krzywkami 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 1805 roku powstało krosno tkackie Josepha Marie Jacquarda. 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 Hermana HollerithazIBM.

W1833 roku Charles Babbage zaczął budowę maszyny analitycznej będącej w istocie mechanicznym, programowalnym protokomputerem, który wyprzedzał swoją epokę. Z powodu trudności konstrukcyjnych, a także braku zainteresowania rządu Wielkiej Brytanii wynalazca nie dokończył swojego wynalazku, lecz projekt został opisany przez Adę Lovelace, która napisała także dla niego pierwszy program obliczający liczby Bernoulliego i w ten sposób została pierwszym programistą (a właściwie programistką) w historii.

Wynalezienie architektury von Neumanna umoż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 asemblery, gdzie programista mógł wpisywać instrukcje w formacie tekstowym z wykorzystaniem zapisu symbolicznego zamiast numeru rozkazu, np. ADD X, TOTAL. W 1954 roku stworzony został pierwszy język programowania wysokiego poziomu, FORTRAN, 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 kompilatorem. 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 Internetu oraz sieci komputerowych pojawiły się narzędzia ułatwiające zespołową pracę nad programami, takie jak systemy kontroli wersji. 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 komputerów 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. Bill Gates (Microsoft), Larry Ellison (Oracle), Larry Page (Google) czy Hasso Plattner (SAP).

[edytuj] Nowoczesne programowanie

Pierwsze kroki w każdym projekcie programistycznym powinny być analiza wymagań, modelowanie, implementacja i eliminacja błędów (debugging). 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 OOAD oraz MDA. Unified Modelling Language (UML) 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 IDE 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ą Visual Studio firmy Microsoft oraz projekt Eclipse nadzorowany przez IBM.

Obecnie istotnym zagadnieniem jest kontrolowanie wersji kodu ź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: FreeBSD, NetBSD, GNU/Linux 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. CVS, Subversion, svk, Git, Bazaar 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.

[edytuj] Nowoczesne języki

Współcześnie używanymi językami programowania są: C, C++, Objective C, C#, Visual Basic, Java, Delphi, Cobol, PHP, Perl, PythoniRuby.

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 szybkie tworzenie aplikacji (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.

Systemy operacyjne są niemal całkowicie napisane w wydajnych językach, ponieważ szybkość jest konieczna. Naukowe programy są zwykle zaimplementowane w Fortranie, gdyż przy użyciu nowszych kompilatoró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 Mainframe. 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 WWW.

Istniejące języki programowania są stale rozwijane i modernizowane, powstają też zupełnie nowe, często innowacyjne języki i kompilatory.

[edytuj] 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 nim, niesie ze sobą również podatność na wystąpienie poważnych błędów takich jak przepełnienie bufora, 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 Valgrind, Purify czy Boundschecker są niemal niezbędne przy tworzeniu nowoczesnych aplikacji w C czy C++.

Języki takie jak Java, PHPiPython zapobiegają 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 bazy danych.

[edytuj] 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 Akademickie Mistrzostwa Polski w Programowaniu Zespołowym, czy skierowana do uczniów szkół średnich Olimpiada informatyczna organizowana przez Ministerstwo Edukacji. Istnieją też portale skupiające zawodników startujących w tego typu konkursach (zob. online judge), które zawierają zbiory zadań i pozwalają na automatyczne sprawdzanie rozwiązań.

Osobliwą formą zawodów programistycznych są kompoty (odang. competition – turniej) organizowane przez społeczność demosceniczną na zlotach takich jak np. Assembly i inne. Kategorie Demoiintro 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 multimedialny mieszczący się w zadanych ramach.

[edytuj] Zobacz też

Wikibooks-logo.svg

Zobacz publikację na Wikibooks:
Programowanie komputerów

WiktionaryPl nodesc.svg

Zobacz hasło programowanie w Wikisłowniku

[edytuj] Linki zewnętrzne

Materiały dydaktyczne MIMUW na studia informatyczne I stopnia:

Materiały dydaktyczne MIMUW na studia informatyczne II stopnia:

Przypisy

  1. Ancient Greek Computer’s Inner Workings Deciphered (ang.). National Geographic News, 2006-11-29. [dostęp 2010-10-19].

Źródło http://pl.wikipedia.org/w/index.php?title=Programowanie_komputerów&oldid=35500170 

Kategoria: 
Programowanie komputerów
 

Menu nawigacyjne

 

Osobiste



Załóż nowe konto
Zaloguj się
 



Przestrzenie nazw



Artykuł

Dyskusja
 


Warianty








Widok



Czytaj

Edytuj

Historia i autorzy
 


Działania












Nawigacja




Strona główna

Kategorie artykułów

Najlepsze artykuły

Zgłoś błąd

Zgłoś błąd w pliku

Częste pytania (FAQ)
 



Dla czytelników




Losuj artykuł

Kontakt

Wykluczenie odpowiedzialności

Wspomóż Wikipedię
 



Dla wikipedystów




Ostatnie zmiany

Zasady edytowania

Pomoc

Kawiarenka

Ogłoszenia
 



Narzędzia




Linkujące

Zmiany w linkowanych

Prześlij plik

Strony specjalne

Link do tej wersji

Informacje o tej stronie

Cytowanie tego artykułu
 



Drukuj lub eksportuj




Utwórz książkę

Pobierz jako PDF

Wersja do druku
 



W innych językach




Afrikaans

العربية

Aragonés

Asturianu



Беларуская (тарашкевіца)

Български

Bosanski

Català

Česky

Dansk

Deutsch

Eesti

Ελληνικά

English

Español

Euskara

فارسی

Français

Galego



ि

Hrvatski

Bahasa Indonesia

Italiano

עברית

Қазақша

Latviešu

Lietuvių

Lojban

Magyar

Македонски



مصرى

Bahasa Melayu

Монгол

Nederlands



Norsk bokmål

Norsk nynorsk

Олык марий



Português

Română

Русский

Shqip

Simple English

Slovenčina

Slovenščina

Српски / srpski

Srpskohrvatski / српскохрватски

Suomi

Svenska

ி



Türkçe

Türkmençe

 

Українська

اردو

Tiếng Vit

ייִדיש



Edytuj linki
 





Tę stronę ostatnio zmodyfikowano o 02:20, 16 mar 2013.

Tekst udostępniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach, z możliwością obowiązywania dodatkowych ograniczeń. Zobacz szczegółowe informacje o warunkach korzystania.
 


Zasady zachowania poufności

O Wikipedii

Korzystasz z Wikipedii tylko na własną odpowiedzialność

Wersja dla urządzeń mobilnych
 


Wikimedia Foundation
Powered by MediaWiki