IB111 Programování a algoritmizace. Programovací jazyky



Podobné dokumenty
IB111 Úvod do programování skrze Python Přednáška 13

IB111 Úvod do programování skrze Python Přednáška 13

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod. Programovací paradigmata

Programovací jazyky Přehled a vývoj

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

Matematika v programovacích

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

11. Přehled prog. jazyků

Programovací jazyk univerzální notace pro zápis algoritmů, implementována.

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Program a životní cyklus programu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Jaký programovací jazyk učit jako první a jak ho učit?

Algoritmizace- úvod. Ing. Tomáš Otáhal

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

DTP Základy programování Úvod do předmětu

Sada 1 - Základy programování

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Programování a algoritmizace: úvod

Maturitní otázky z předmětu PROGRAMOVÁNÍ

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Instalace a konfigurace web serveru. WA1 Martin Klíma

ANOTACE vytvořených/inovovaných materiálů

TÉMATICKÝ OKRUH Softwarové inženýrství

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7

Vizuální programování

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Software, licence, programování

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Algoritmy a jejich znázorňování.

Maturitní témata Školní rok: 2015/2016

Programové vybavení počítačů

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Netradiční programovací jazyky

Skriptovací jazyky. Obsah

VISUAL BASIC. Přehled témat

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

Programovací jazyky. Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 /

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Programové vybavení počítače

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Sazba zdrojových kódů (balíček listings)

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

2 Postup při programování, úvod do programovacího jazyka Java

Programování a algoritmizace: úvod

Programování. Úvod a základní principy. Martin Urza

Identifikátor materiálu: ICT-1-21

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Algoritmy. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví Nakladatelství a vydavatelství.

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Základy C++ doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Programové prostředky IS/IT

Funkcionální programování. Kristýna Kaslová

TÉMATICKÝ OKRUH TZD, DIS a TIS

Funkcionální programování

Nové jazykové brány do Caché. Daniel Kutáč

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

1. Úvod. Podmínky absolvování

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

IB111 Úvod do programování skrze Python Úvod kurzu

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

language="javascript">... </script>.

Objektově orientovaný přístup

C2115 Praktický úvod do superpočítání

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Předmět: Programování

Algoritmizace. Cíle předmětu

Úvod do programování

Vstupní požadavky, doporučení a metodické pokyny

Úvod do jazyka C. Proč jazyk C

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

1 Webový server, instalace PHP a MySQL 13

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

Překladač a jeho struktura

1. Webový server, instalace PHP a MySQL 13

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

2. lekce Algoritmus, cyklus Miroslav Jílek

TÉMATICKÝ OKRUH Softwarové inženýrství

Seznámení s prostředím dot.net Framework

MATURITNÍ ZKOUŠKY Obor: OBCHODNÍ AKADEMIE

Transkript:

IB111 Programování a algoritmizace Programovací jazyky

Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím jazyce.

Dělení programovacích jazyků Podle míry abstrakce Vyšší programovací jazyky Sem patří většina jazyků Např. C/C++, Pascal, Basic, Java, PHP Nižší programovací jazyky Assembler ( jazyk symbolických adres ) Strojový jazyk (strojový kód)

Assembler příklad

Strojový kód - příklad

Dělení programovacích jazyků Podle způsobu překladu a spuštění Kompilované jazyky Kompilátor přeloží program kompletně do kódu cílového systému (strojového kódu). Např. C/C++, Pascal Vyžaduje překlad ale přeložený program běží rychle. Interpretované jazyky Při spuštění programu je spuštěn interpret a ten interpretuje program v programovacím jazyce. Není nutný překlad, ale pro běh programu je nutný interpreter, který musí načíst program a ten postupně interpretovat. Výsledný běh je pomalejší.

Interpretované jazyky Protože plně interpretované jazyky běží relativně pomalu, byly navrženy úpravy pro zvýšení rychlosti běhu Kompilace do mezikódu Interpretuje se pak mezikód ne originální program (např. Java, Python) Za běhu se program zkompiluje do strojového kódu počítače Po iniciálním překladu pak běží rychle (např. Java JIT)

Interpretované jazyky Výhodou interpretovaných jazyků je jejich platformní nezávislost Je možné distribuovat jeden program, který poběží na řadě platforem Nevýhodou interpretovaných jazyků je pomalost běhu Buď plně interpretované, nebo alespoň zpoždění díky iniciálnímu překladu Některé jazyky mohou být implementovány jako kompilované i interpretované Např. Java, BASIC Python: py2exe (?), PyPy

Vyšší programovací jazyky Imperativní (procedurální) Strukturované (např. C, Pascal) Objektově orientované (např. C++, Java) Deklarativní (neprocedurální) Funkcionální (např. Lisp, Haskell) Logické (např. Prolog, Gödel) Některé jazyky mohou kombinovat přístupy Např. C/C++ kombinuje str. a OOP přístup

Historie 30. a 40. léta minulého století Lambda kalkul a Turingův stroj Vhodné jako matematické vyjádření algoritmu Strojové kódy jednotlivých počítačů a jejich assemblery V polovině 50. let vznikl první jazyk vyšší úrovně

Historie jazyků vyšší úrovně FORTRAN (1954) Pojmenování proměnných, složené výrazy, podprogramy, Vědeckotechnické výpočty ALGOL (1960) Matematické algoritmy COBOL (1960), BASIC (1964) Syntaxe podobná angličtině Pascal (1971), C (1972), Ada (1983) Dodnes používány pro nové projekty

Imperativní programování Příklad Fortran:

Imperativní programování Příklad Basic

Historie - OOP Smalltalk-80 (1980) Principy převzaty ze Simuly C++ (1985) Objektově orientovaná verze jazyka C (původně jen rozšíření) Perl (1987) Populární pro tvorbu CGI skriptů Python (1990) Skriptovací jazyk, vhodný i pro větší aplikace PHP (1994) Webové programování Java (1994) Platformní nezávislost

OOP příklad Příklad Java

OOP příklad Příklad Perl

OOP příklad Příklad PHP

Deklarativní programování Definuji co se má udělat (cíl) Ne jak se to má udělat Mohu se tak vyvarovat implementačních chyb Nepoužíváme for nebo while cyklus, proměnné se používají jen omezeně Vše je řešeno pomocí rekurse Výsledkem je však snížená optimalita běhu programu

Logické programování - Prolog Příklad v Prologu rodic(ladislav, adriana). rodic(ladislav, lubomir). rodic(sarka, lubomir). sourozenec(sourozenec, X) :- rodic(y, X), rodic(y, Sourozenec), \+(Sourozenec = X). Dotaz: sourozenec(adriana, X). Výstup: X = lubomir ; No Dotaz: rodic(x, lubomir). Výstup: X = ladislav ; X = sarka ; No

Funkcionální programování Program jako vyhodnocení mat. funkcí Příklad v Haskellu

Přehled programovacích jazyků

Přehled programovacích jazyků

Který jazyk vybrat Ideální programovací jazyk použitelný pro všechny systémové a aplikační programy neexistuje. Každý jazyk má své pro a proti Právě kvůli nevýhodám existujících jazyků vznikaly a vznikají jazyky nové Rychlost programování vs. rychlost běhu programu Musíme zvolit rozumný kompromis

Který jazyk vybrat Nemá smysl programovat rok program v assembleru abych ho spustil jedinkrát pro provedení určitého krátkého výpočtu Program v Basicu bude sice běžet výrazně pomaleji, ale budu schopen ho naprogramovat podstatně rychleji Rychlost hraje roli u kódu, který je spouštěn velice často Operační systém, zatížené webové servery, souborové servery apod.

Který jazyk vybrat Obvykle tedy vybíráme jazyk, ve kterém bude vyřešení našeho problému nejsnazší Až pokud se výsledné řešení ukáže jako pomalé, má smysl jej optimalizovat Např. přepsáním kritických částí do jiného jazyka

Dostupnost knihoven V většině případů nemusíme řešení problému programovat úplně sami Existuje řada existujících knihoven, které můžeme využít Mnoho knihoven je specifických pro určité jazyky Volbu jazyka proto může ovlivnit i dostupnost knihoven pro oblasti, které nás při řešení problému zajímají Např. pro Javu existuje obrovské množství existujících knihoven

Kombinace jazyků V praxi může být výhodné kombinovat několik jazyků/přístupů Př. Programování pro WWW Oddělujeme funkci (aplikační logiku - kód na serveru, např. PHP), data (databázový server, např. SQL), vzhled a uživatelské rozhraní (HTML, CSS, Javascript).

WWW programování Příklad PHP + MySQL

Jaký jazyk vybrat Jak to vypadá v praxi? Systémové programování (OS, utility) Dříve assembler a C, dnes C++. Aplikační programy Java, C++, Dephi,.NET WWW - aplikační logika Perl, Python, Java, PHP, ASP Vědeckotechnické výpočty Matlab, Fortran Kancelářské balíky Visual Basic for Applications (VBA)

Programování pro MS Office Př. Visual Basic (Excel)

Jazyky pro výuku programování Př. Karel

Jazyky pro výuku programování Př. Logo