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

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

IB111 Programování a algoritmizace. Programovací jazyky

Program a životní cyklus programu

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

11. Přehled prog. jazyků

Úvod. Programovací paradigmata

Programovací jazyky Přehled a vývoj

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

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

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

Matematika v programovacích

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

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

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

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

Algoritmizace. Cíle předmětu

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

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

2. lekce Algoritmus, cyklus Miroslav Jílek

Překladač a jeho struktura

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Vizuální programování

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

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

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

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

Algoritmizace a programování

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

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

VISUAL BASIC. Přehled témat

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

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

Základní pojmy algoritmizace a programování ALGORITMUS INSTRUKCE STROJOVÝ KÓD VYŠŠÍ PROGRAMOVACÍ JAZYK ZDROJOVÝ KÓD KOMPILACE

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace. Obrázek 1: Přeložení programu překladačem

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE PŘEKLADY TYPICKÝCH JAZYKOVÝCH KONSTRUKCÍ PROGRAMOVACÍCH JAZYKŮ.

Instalace a konfigurace web serveru. WA1 Martin Klíma

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

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

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

Sada 1 - Základy programování

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

6 Příkazy řízení toku

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Netradiční programovací jazyky

Algoritmizace. 1. Úvod. Algoritmus

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

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

Řídicí struktury. alg3 1

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

Matematická logika. Miroslav Kolařík

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Skriptovací jazyky. Obsah

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

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

Lekce 01 Úvod do algoritmizace

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

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Logické programování

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

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

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

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

Úvod do programování - Java. Cvičení č.4

Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

1 Základy algoritmizace a programování. 1.1 Algoritmus Možnosti zápisu algoritmů. Základy algoritmizace a programování

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

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

JavaScript 101. "Trocha života do statických stránek"

PSK3-9. Základy skriptování. Hlavička

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

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

Výukový materiál zpracován v rámci projektu EU peníze školám

Algoritmizace a programování

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Úvod do jazyka C. Zdroje: Herout: Učebnice jazyka C, Kopp, České Budějovice, 2001 Schildt H: Nauč se sám C, Softpress, Praha, 2001

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

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Úvod do informatiky. Miroslav Kolařík

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

Střední odborná škola a Střední odborné učiliště, Hořovice

Programování a algoritmizace

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

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

Algoritmy a datové struktury

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Martin Hejtmánek hejtmmar

Algoritmizace a programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Transkript:

Programovací jazyky

Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Programovací jazyky vyšší kompilační interpretované

Nižší programovací jazyky strojově orientované příkazy jazyka = instrukce procesoru (zkratky instrukcí) - viz cvičení 1 výhody: rychlost programu nevýhody náročné, složité programování, ne příliš srozumitelný zápis nepřenositelnost na jiné typy procesorů (počítačů)

použití: dnes spíše výjimečně, např. při psaní rychlých programů pro řídicí jednočipové mikropočítače (i když i tam dnes převládá jazyk C) psaní jader operačních systémů Příklad: SUB AX,BX CMP AX,0 JZ pocitej

Vyšší programovací jazyky formální jazyky (tj. definované formálně, matematicky) algoritmus se zapisuje strukturovaně; srozumitelný zápis (anglický, matematický) jazyky nejsou závislé na strojových principech počítače (procesoru) dělení: imperativní (procedurální, příkazové) neimperativní (neprocedurální).

Imperativní jazyky např. Cobol, Pascal, Ada, C/C++, Basic, Java, Javascript, php, Python algoritmu se zapisuje posloupností příkazů, cyklů a větvení (podmínek), využívají se proměnné Příklad: a = a-b; if (a==0) pocitej();

Neimperativní jazyky Dělení funkcionální program = množina (ne posloupnost!) funkcí většinou neexistují proměnné, místo nich se pracuje se seznamy dat např. Lisp (AutoLisp v AutoCADu)

logické program = zpravidla množina odvozovacích pravidel, např. logických formulí. využívají se zejména v umělé inteligenci, v expertních systémech. typický představitel - Prolog logický jazyka vestavěný do databází a odvozený od Prologu je Datalog

Ukázka programu v Prologu program řeší vztahy mezi členy rodiny definujeme klauzule: rodic(jana,petr). rodic(petr,eva). muz(petr). zena(jana).

definujeme odvozovací pravidla: syn(y,x):-rodic(x,y),muz(y). dcera(y,x):-rodic(x,y),zena(y). prarodic(x,z):-rodic(x,y),rodic(y,z). potomek(y,x):-syn(y,x);dcera(y,x). můžeme klást dotazy:?-rodic(a,petr).?-prarodic(jana,eva). systém odpoví na první dotaz A=Jana a na druhý yes. v Prologu lze psát i výpočty

Kompilační jazyky text programu ve vyšším programovacím jazyce = zdrojový kód zdrojový kód je vstupem do překladače překladač (kompilátor, compiler) = program, který převádí zdrojový kód do strojového kódu tj. do formy samostatně spustitelného souboru (soubory.exe nebo.com v operačních systémech firmy Microsoft, ELF formát v systému Linux).

překladač provádí syntaktickou kontrolu celého zdrojového kódu kontroluje, zda je program zapsán podle pravidel jazyka pokud se vyskytne chyba v zápise programu, je překlad přerušen a seznam chyb je zobrazen uživateli. zástupci kompilačních jazyků: Pascal, C/C++ Ukázka: program pro výpočet obsahu kruhu v C

výhody: syntaktická kontrola celého textu najednou, výsledný program možné spustit samostatně bez nutnosti mít speciální programové prostředí běžící samostatný program je rychlý (rychlejší než v případě interpretovaného jazyka. nevýhody: při jakékoliv změně programu (zdrojového kódu) je nutné provést znovu překlad Ukázka: program pro výpočet obsahu kruhu v C

Interpretované jazyky u interpretovaných jazyků nedochází k samostatnému překladu, nevzniká samostatně spustitelný program interpret = program, který interpretuje (provádí) zdrojový kód řádek po řádku interpret přečte jeden řádek zdrojového kódu, provede syntaktickou kontrolu a ihned zajistí jeho provedení (vykonání)

na chyby v zápise programu se tedy přijde až při běhu programu (běh programu se v tomto případě přeruší) zástupci interpretovaných jazyků: Basic, Python, JavaScript (interpret je přímo zabudován v internetovém prohlížeči), Visual Basic Script, Tcl, neimperativní jazyky Ukázka: výpočet obsahu kruhu v JavaScriptu

výhody: při změně zdrojového kódu není potřebný překlad pokud existují interprety pro různé operační systémy, pak je snadná distribuce nových verzí programů uživatelům nevýhody: pomalý běh programů zjištění syntaktických chyb až při běhu Poznámka: dnes i Basic lze kompilovat moderní jazyky kombinují oba přístupy

Kompilační + interpretované jazyky zdrojový kód syntakticky kontroluje překladač => speciální soubor obsahující mezijazyk interpretován interpretem př. Java.java =>.class (bytecode) interpretováno pomocí tzv. Java Virtual Machine (JVM) operační systém HW bytecode JVM

Syntaxe a sémantika Syntaxe definuje pravidla zápisu programu např. syntaxe jazyka C pro zápis cyklu s podmínkou na začátku: while (podmínka) příkaz; Sémantika pak určuje význam zápisu sémantika výše uvedeného cyklu příkaz se provádí opakovaně tak dlouho, dokud podmínka platí (je splněna)

Syntaxe vs. Sémantika podmínky v jazyce C: if (podmínka) příkaz; resp. if (podmínka) příkaz1; else příkaz2; když budeme mít vnořenou podmínku: if (podmínka1) if (podmínka2) příkaz1; else příkaz2; ke kterému IF patří ELSE?

Syntaxe vs. Sémantika standardně ELSE patří k poslednímu IF: if (podmínka1) if (podmínka2) příkaz1; else příkaz2; pokud chceme jiný význam, je třeba použít { a } if (podmínka1) {if (podmínka2) příkaz1;} else příkaz2;