Historie programování
Tento pojem je proložen neustálým rozporem mezi rychle narůstající výkonností počítačů a pomalým nárůstem produktivity programátorské práce. Tato produktivita však nevzrůstala lineárně, nýbrž ve skocích, způsobených novými prostředky a novými metodami.
První programy na prvních počítačích byly psány ve strojovém kódu. Avšak v polovině padesátých let byly schopnosti počítačů a požadavky zákazníků tak vysoké, že jim programátoři přestávali být schopni vyhovět. To mělo dopad na vznik prvních jazyků a jejich příchod znamenal veliký skok v produktivitě programů.
V polovině šedesátých let nastal úplně stejný problém. Zdálo se, že každý druhý člověk na Zemi bude muset být programátor, aby bylo vyhověno všem potřebám zákazníků. Nejen že se objevily další nové lepší jazyky, ale také nový pojem "strukturované programování". Díky této metodice se zvýšila produktivita práce, přičemž žádala po programátorech jediné: psát programy maximálně přehledné a srozumitelné.
Jedním z velkých přínosů strukt. programování bylo prosazení návrhu programů od shora dolů a s ním spojené abstrahování od detailů. Podle této tématiky by se mělo každou chvíli soustředit pouze na základní požadované fce. programu a nezatěžovat se podružnými detaily.
A jak už to bývá, složitost programů nadále přidávala na otáčkách a programátorské týmy řešící stále složitější úlohy se opět dostávaly častěji do problémů vyvolaných samotnou složitostí programů. Klíčovou otázku zde začínaly hrát datové struktury. Složité datové struktury byly zpracovány v mnoha podprogramech a jakákoliv jejich definice vedla k nutnosti přepracování rozsáhlých částí programu.
Častým případem byly části programů, které řešily nové úlohy (většinou velice blízkým úlohám již řešeným), pro něž bylo možno najít odpovídající podprogramy v knihovně. Vzhledem k jistým odlišnostem bylo nutné většinu programů přepsat a znovu otestovat. Tento způsob však ztrácel na efektivitě a hlavně byl většinou velice nákladný než znovu naprogramování.
Tyto rozpory se snaží řešit OOP. Jeho hlavní ideou je zpřehlednění práce s datovými strukturami, jako strukturované programování zpřehlednilo algoritmy. Ale i pro OOP platí, že jeho hlavní zbraní je abstrakce. Hlavním zlomem v myšlení, který OOP přináší, je změna aktivity. Na rozdíl od dosavadního přístupu, kdy nositele, veškeré činnosti byly algoritmy, v OOP se těžiště aktivity přenáší na data.
Tato myšlenka způsobu psaní programů se objevila na přelomu 60. a 70. let. Za předchůdce dnešních Objektových jazyků je považován Simula 67, který zavedl koncepci třídy, dědičnosti datových typů atd...
V průběhu 80. let vznikala řada programovacích jazyků. Avšak svět byl nejvíce ovlivněn jazykem C++, který je nejpopulárnější jazykem programátorů. Jeho autorem je Bjarne Stroustrup, pracující u firmy AT&T Bell Laboratories, která vyvinula např. OS UNIX a s ním i jazyk C (vznik kvůli simulacím rozdělení jádra UNIXu - !objektovým zorientováním" tehdejšího C zavedením preprocesoru). Nově upravený jazyk C nazval "C s třídami".
C s třídami je v podstatě pouhým rozšířením jazyka C o práci s objekty. Tento směr programování se zdál převratný. V dalších létech vzniká nová verze, která dostala jméno "C++" (1985). Stal se velice populárním.
Jeho dalším vývojem již není nutno se zabývat, jelikož nedosáhl výrazných změn až na převedení na Visuální podobu.
Uff... Tak konečně to máme za sebou. Tuto kapitolu by si pro svojí informaci měl budoucí programátor přečíst, i když věřím že to nic moc zajímavé není.
Příště se již budeme zabývat prvními krůčky v OOP. Nejprve si ukážeme "Zapouzdření".
Zdroj: server pcsvet.cz
Typy programovacích jazyků
Existuje několik možností kritérií, podle kterých jazyky dělit.
Dle míry abstrakce:
- vyšší programovací jazyky (většina jazyků)
- nižší programovací jazyky (např. Assembler, částečně VHDL)
Dle způsobu překladu a spuštění:
- kompilované programovací jazyky (např. Pascal, C)
- interpretované programovací jazyky (např. BASIC, Perl, Python, shell)
- interpretované jazyky, které se pouze interpretují (z toho důvodu jsou pomalejší - proto většina jazyků má alespoň nějakou jinou možnost, pokud nejsou stejně zpomalované něčím jiným, jako třeba shell)
- interpretované jazyky, které se překládají, ale pouze do mezikódu, nikoli do strojového kódu počítače (např. Java, Python)
- interpretované jazyky, které se po spuštění za běhu programu překládají do strojového kódu počítače (např. Java, pokud se použije systém JIT)
Toto členění není absolutní, řada programovacích jazyků existuje v implementaci jak interpretované, tak kompilované (například zmíněná Java). Navíc jsou oba postupy někdy kombinovány, zdrojový kód je nejprve kompilován do mezikódu, který je poté interpretován.
Vyšší programovací jazyky se dále dělí takto:
- Procedurální (imperativní)
- Strukturované (např. C, BASIC)
- Objektově orientované (např. Smalltalk, Java)
- Neprocedurální (deskriptivní)
Některé programovací jazyky (např. C++, Python, Object Pascal, Flex) umožňují programátorovi kombinovat různé přístupy. Část řešení může být například vyjádřena zápisem funkcí a procedur (strukturované programování), část řešení může využívat čistě objektový přístup. Klasickým příkladem jazyka, ve kterém se mezi těmito přístupy nedělá ostrá hranice, je jazyk C++. Podobný pragmatický přístup využívá jazyk Python, který navíc do určité míry podporuje i funkcionální programování. Jako protiklad k nim uveďme velmi rozšířený jazyk Java, kde se i jednoduchá funkce musí vyjádřit formou metody třídy.
Některé programovací jazyky byly vytvořeny především pro výuku programování a algoritmického myšlení. Mezi takové jazyky patří například Logo, Karel, Baltík, Petr. (Ostatně prvotním důvodem vzniku jazyka Pascal byla také výuka programovaní.)
[editovat] Některé programovací jazyky
Programovacích jazyků existuje celá řada. Zde následuje jejich částečný výčet:
3APL – Ada – Algol – Assembler – Baltík – Baltazar – BASIC – C – C++ – C# – COBOL – ColdFusion – Clean – Delphi – Eiffel – Erlang – Flex – Forth – Fortran – FoxPro – Goedel – Haskell – Java – JavaScript – J# – Lisp – Miranda – Magic – Modula-2 – Oberon – Object Pascal – Objective-C – Karel – Pascal – Perl – PHP – PL/1 – PL/SQL – Prolog – Python – Ruby – Scheme – Simula 67 – Smalltalk – Tcl/Tk – VBScript – Whitespace
Komentáře
Přehled komentářů
prosím... pro neznalce bych to napsal stručněji :D
já sám se v tom pořádně nevyznám
stručněji
(David, 2. 11. 2010 19:58)