Programovací jazyky a přehled softwaru
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ř. jazyk symbolických adres, čá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) o 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) o interpretované jazyky, které se překládají, ale pouze do mezikódu, nikoli do strojového kódu počítače (např. Java (programovací jazyk), Python) o 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í) o Strukturované (např. C, BASIC) o Objektově orientované (např. Smalltalk, Java) * Neprocedurální (deklarativní) o Funkcionální (např. Lisp, Haskell) o Logické (např. Prolog, Goedel)
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++, Jazyky Microsoft Visualstudia Net (Visual CC+, C#, VB Net. 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í.)
Programovacích jazyků existuje celá řada Programovacích jazyků existuje celá řada. Zde následuje jejich částečný výčet 3APL - Ada - Algol - JSA - 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
Další jazyky Následuje seznam programů a nástrojů, které nejsou obvykle přímo označovány jako programovací jazyky, ale přesto mají s programovacími jazyky mnoho společného. Většinou jde o komplexní systémy, jejichž účelem je něco jiného (sazba textu, kreslení obrázků, interakce uživatele s operačním systémem...) a programování slouží převážně k jeho lepšímu ovládnutí. shell (bash) - PostScript - POV-Ray - SQL - TeX - XSLT
Multiparadigmické: Ada * Common Lisp * D * F# * PHP * Python * Ruby * Tcl/Tk Strukturované (procedurální): AWK * C * COBOL * Forth * Fortran * Lua * Modula-2 / Modula-3 * Oberon * Pascal * Perl * PL/SQL Objektové: BETA * C++ * C# * Eiffel * Flex * Java * JavaScript * Jazyky Microsoft Visualstudia Net (Visual CC+, C#, VB Net. * Object Pascal * Objective-C * Smalltalk * Funkcionální: Clean * Erlang * Haskell * Lisp * Miranda * ML * OCaml * Scheme Jayzky Logické: Prolog * Goedel Výukové: Baltazar * Baltík * Logo * Karel Ezoterické: Brainfuck * Malbolge * Ook! * Whitespace Historické: ALGOL * APL / J * BASIC * MUMPS * PL/1 * Simula 67 Další: ABAP * AppleScript * ColdFusion * JSA * MATLAB * Mathematica * Pawn * SQL * Visual Basic / VBScript * Visual FoxPro
Software Software (česky programové vybavení) je v informatice sada všech počítačových programů v počítači (na rozdíl od hardware, který zahrnuje všechny fyzické součásti počítače). Software zahrnuje aplikační software (pracuje s ním uživatel), operační systém (zajišťuje běh programů) a další (knihovny, middleware, BIOS, firmware apod.).
Definici software není možné zcela přesně určit Definici software není možné zcela přesně určit. Může znít i tak, že software je v počítači vše, co není hardware (tj. vše kromě fyzických součástí počítače). Avšak v tomto případě zahrnujeme mezi software i data, která typicky není možné vykonat procesorem, protože neobsahují strojové instrukce pro procesor počítače, ale data popisují obrázek, textový dokument a podobně. Označení software se tak někdy vztahuje jen na programy, ale může se vztahovat i na data.
V některých případech lze však na data pohlížet i jako na program (například programy zkomprimované do ZIP souboru). Hranice mezi výkonným software (programem) a daty je nejasná i v případě HTML souborů obsahujících webové stránky, protože v nich může být úryvek programu v JavaScriptu nebo jazyce PHP. Lze nalézt i další příklady Net Framwork ASPX, Webové služby ASMX.
Rozdělení software Podle funkce můžeme software rozdělit na několik skupin: systémový software – umožňuje efektivní používání počítače firmware – software obsažené v hardware (resp. ve vstupně-výstupních zařízeních) operační systém – spravuje počítač, vytváří prostředí pro programy jádro operačního systému (včetně ovladačů zařízení) pomocné systémové nástroje – pro správu operačního systému (formátování disků, nastavení oprávnění, utility, …) aplikační software – umožňuje uživateli vykonávat nějakou užitečnou činnost crapware, bloatware - termín používaný pro zpravidla systémový software pro Microsoft Windows předinstalovaný výrobci osobních počítačů (zvláště pak notebooků) zdánlivě určený pro ulehčení práce, který ovšem často zpomaluje systém a jeho start[2]
Systémový software je programové vybavení (software) počítače, které umožňuje spouštění nebo zpracování aplikačního software. Systémový software představuje vrstvu, která se nachází na pomezí hardware a aplikačního software. Obecně lze jako systémový software definovat to programové vybavení počítače, s kterým běžný uživatel přímo neinteraguje (srovnej s aplikační software). Typický představitel systémového software je operační systém.
Firmware je programové vybavení, které je integrální součástí elektronického zařízení. Tyto programy jsou většinou naprogramovány (vypáleny) do nevolatilních pamětí (ROM, EPROM, …) firmou vyrábějící dané zařízení. Do firmware bychom měli počítat také obsah programovatelných hradlových polí pokud jsou v daném zařízení použita. V závislosti na způsobu uložení jej lze v některých případech modifikovat buď výměnou nebo přepsáním obsahu. Firmware bývá často úzce vázaný na hardware pro který je určen. Typickým příkladem zařízení obsahujících firmware jsou mobilní telefony a kapesní počítače. Avšak v dnešní době obsahuje drtivá většina elektronických zařízení nějaký programový kód - firmware.
Příklady BIOS u PC operační systémy a základní uživatelské aplikace v kapesních počítačích firmware mobilů firmware tiskáren, plotterů, atd. firmware kalkulaček, translátorů, organizérů ap. firmware u složitějších měřicích přístrojů firmware agregátů v automobilech (řídící jednotka, vstřikování, ABS, klimatizace, …) firmware embedded zařízení obecně firmware grafické karty, mechaniky, pevného disku,...
Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho startu a zůstává v činnosti až do jeho vypnutí. Skládá se z jádra (kernel) a pomocných systémových nástrojů. Hlavním úkolem operačního systému je zajistit uživateli možnost ovládat počítač, vytvořit pro procesy stabilní aplikační rozhraní (API) a přidělovat jim systémové zdroje. Operační systém je velmi komplexní software, jehož vývoj je mnohem složitější a náročnější, než vývoj obyčejných programů.
Typický pohled na počítačovou architekturu jako sérii vrstev abstrakce: hardware, firmware, kernel a aplikace.
Jako kernel se v počítačové terminologii nazývá jádro operačního systému, tedy program, který koordinuje činnost ostatních programů a zprostředkovává jim prostředky počítače. Název pochází z angličtiny, kde kernel znamená obecně „jádro“. Hlavní úkol jádra spočívá v přidělovaní paměti a času procesoru (či procesorů) programům, ovládání zařízení počítače (pomocí ovladačů) a abstrakci funkcí (aby bylo např. možné načítat soubory z pevného disku a z jednotky CD-ROM stejným příkazem).
Pro zajištění bezpečnosti operačního systému je nutné, aby procesor podporoval dva módy činnosti - omezený pro aplikace a privilegovaný (se speciálními instrukcemi) pro jádro. Privilegovanému módu se proto někdy říká kernel mód. Podle architektury operačního systému se typicky rozlišuje mikrokernel (mikrojádro, jádro je velice jednoduché a obsahuje pouze zcela základní funkce, zbytek operačního systému je mimo toto jádro v aplikacích) a makrokernel (monolitické jádro, jádro je rozsáhlé, obsahuje velké množství funkcí pro všechny aspekty činnosti operačního systému včetně například souborového systému). Jakýmsi kompromisem je modulární jádro, které je fakticky makrojádrem (celé běží v privilegovaném režimu) ovšem jeho značná část je tvořena takzvanými moduly, které je možné přidávat a odebírat za běhu systému.
Aplikační software Textový editor Writer z kancelářského balíku OpenOffice.org. Aplikační software (zkráceně aplikace) je v informatice veškeré programové vybavení počítače (tj. software), které je určeno pro přímou interakci s uživatelem. Účelem aplikačního software je zpracování a řešení konkrétního problému uživatele. Pro interakci s uživatelem má v počítači typicky grafické nebo textové rozhraní.
Charakteristika Aplikace se může skládat z několika programů, případně je několik aplikací spojeno do skupiny, kterou označujeme jako aplikační balíky (anglicky application suite), mezi které patří například kancelářské balíky OpenOffice.org a Microsoft Office. Do skupiny aplikačního software nepatří programy, které s uživatelem přímo nekomunikují (např. operační systém, program řídící telefonní ústřednu, služba Windows, démon).
Děkují za účast: Bryknerová Šárka Cemperová Olga Poláková Helena