Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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:

Podobné prezentace


Prezentace na téma: "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:"— Transkript prezentace:

1 Programovací jazyky a přehled softwaru

2 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ů) * vyšší programovací jazyky (většina jazyků) * nižší programovací jazyky (např. jazyk symbolických adres, částečně VHDL) * nižší programovací jazyky (např. jazyk symbolických adres, částečně VHDL)

3 Dle způsobu překladu a spuštění: * kompilované programovací jazyky (např. Pascal, C) * kompilované programovací jazyky (např. Pascal, C) * interpretované programovací jazyky (např. BASIC, Perl, Python, shell) * interpretované programovací jazyky (např. BASIC, Perl, Python, shell) o interpretované jazyky, které se pouze interpretují (z toho 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 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 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)

4 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.

5 Vyšší programovací jazyky se dále dělí takto: * Procedurální (imperativní) * Procedurální (imperativní) o Strukturované (např. C, BASIC) o Strukturované (např. C, BASIC) o Objektově orientované (např. Smalltalk, Java) o Objektově orientované (např. Smalltalk, Java) * Neprocedurální (deklarativní) * Neprocedurální (deklarativní) o Funkcionální (např. Lisp, Haskell) o Funkcionální (např. Lisp, Haskell) o Logické (např. Prolog, Goedel) o Logické (např. Prolog, Goedel)

6 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.

7 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í.)

8 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

9 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

10 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

11 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.). česky informaticepočítačových programů počítačihardwareaplikační softwareoperační systémknihovnymiddlewareBIOS firmwarečesky informaticepočítačových programů počítačihardwareaplikační softwareoperační systémknihovnymiddlewareBIOS firmware

12 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. hardware datastrojové instrukceprocesortextovýprogramy hardware datastrojové instrukceprocesortextovýprogramy

13 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. zkomprimovanéZIPHTML webové stránkyJavaScriptuPHPNet FramworkASPXASMX zkomprimovanéZIPHTML webové stránkyJavaScriptuPHPNet FramworkASPXASMX

14 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 systémový software systémový software  firmware – software obsažené v hardware (resp. ve vstupně-výstupních zařízeních) firmwarevstupně-výstupních firmwarevstupně-výstupních  operační systém – spravuje počítač, vytváří prostředí pro programy operační systém operační systém  jádro operačního systému (včetně ovladačů zařízení) jádroovladačů zařízení jádroovladačů zařízení  pomocné systémové nástroje – pro správu operačního systému (formátování disků, nastavení oprávnění, utility, …) utility  aplikační software – umožňuje uživateli vykonávat nějakou užitečnou činnost aplikační software aplikační software  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] Microsoft Windows notebooků[2] Microsoft Windows notebooků[2]

15  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). programové vybavení (software)aplikačního software hardware počítačeaplikační softwareprogramové vybavení (software)aplikačního software hardware počítačeaplikační software  Typický představitel systémového software je operační systém. operační systémoperační systém

16  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. ROM EPROMhardwareROM EPROMhardware  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.

17  Příklady  BIOS u PC BIOS  operační systémy a základní uživatelské aplikace v kapesních počítačích operační systémy operační systémy  firmware mobilů mobilů  firmware tiskáren, plotterů, atd. tiskárenplotterůtiskárenplotterů  firmware kalkulaček, translátorů, organizérů ap. kalkulaček  firmware u složitějších měřicích přístrojů měřicích přístrojůměřicích přístrojů  firmware agregátů v automobilech (řídící jednotka, vstřikování, ABS, klimatizace, …) automobilech ABSautomobilech ABS  firmware embedded zařízení obecně embedded zařízeníembedded zařízení  firmware grafické karty, mechaniky, pevného disku,... grafické kartygrafické karty

18  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ů. informatice programovépočítačesoftwarepamětijádrasystémových nástrojůprocesyaplikační rozhraníinformatice programovépočítačesoftwarepamětijádrasystémových nástrojůprocesyaplikační rozhraní

19  Typický pohled na počítačovou architekturu jako sérii vrstev abstrakce: hardware, firmware, kernel a aplikace. hardware firmwarehardware firmware

20  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“. počítačové operačního systémuangličtinypočítačové operačního systémuangličtiny  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). paměti procesoruovladačůpevného diskuCD-ROMpaměti procesoruovladačůpevného diskuCD-ROM

21  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. operačního systémuoperačního systému  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. mikrokernelsouborového systému mikrokernelsouborového systému

22 Aplikační software  Textový editor Writer z kancelářského balíku OpenOffice.org. Textový editor OpenOffice.org Textový editor 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í. informaticepočítače softwareinterakci uživatelemgrafickétextové rozhraní informaticepočítače softwareinterakci uživatelemgrafickétextové rozhraní

23 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. programůanglickykancelářské balíky OpenOffice.orgMicrosoft Officeprogramůanglickykancelářské balíky OpenOffice.orgMicrosoft 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). operační systémtelefonní ústřednuslužba Windowsdémonoperační systémtelefonní ústřednuslužba Windowsdémon

24 Děkují za účast: Bryknerová Šárka Cemperová Olga Cemperová Olga Poláková Helena Poláková Helena


Stáhnout ppt "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:"

Podobné prezentace


Reklamy Google