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

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

Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.

Podobné prezentace


Prezentace na téma: "Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta."— Transkript prezentace:

1 Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta

2  Algoritmus  Programovací jazyky  CASE nástroje

3  Návod či postup jak vyřešit určitou úlohu  Např. kuchyňský recept

4  Konečnost (finitnost)  Obecnost  Determinovanost  Resultativnost (výstup)  Elementárnost

5  Algoritmická analýza  Teorie složitosti  Konečnost algoritmu

6  Rekurzivní  „hladové“  Dynamické programování  „rozděl a panuj“  Pravděpodobnostní  Genetické (evoluční)  Heuristický

7  Eratosthenovo síto  Euklidův algoritmus  Algoritmus de Casteljau  Bellman-Fordův algortimus

8  Prostředek pro zápis algoritmů, jenž mohou být prováděny na počítači  Zápis algoritmu v programovacím jazyku se nazývá program  Programovací jazyk – soubor pravidel pro zápis algoritmu  Programovací jazyk má svoji syntaxi a sémantiku (množina slov)

9  Nižší – závislé na HW - assembler  Vyšší – nezávislé na HW

10  Interpretované Interpretace Překlad do pseudokódu a jeho interpretace JIT interpretace  Kompilované Co je to kompilace? - převod programu zapsaného v programovacím jazyce do strojového kódu Co je to překladač (linker)? – sestavení spustitelného programu z modulu vytvořeného kompilátorem, připojením potřebných knihovních modulů JIT (Just In Time) – techniky překladu pro urychlení běhu interpretovaných programů

11 Druhy JIT kompilátorů: 1. Překlad v době instalace 2. Opravdový JIT (před spuštěním překlad a optimalizace) 3. Ekonomický JIT Používané techniky optimalizace – odstranění mrtvého kódu, vkládání těl metod, rozbalení smyček, odstraněné shodných podvýrazů

12  Jeden nebo více objektových souborů vygenerovaných překladačem spojí do jediného spustitelného souboru  Sdílené knihovny – dynamické sestavování až po spuštění programu

13 Program – posloupnost příkazů popisující nějakou činnost Zdrojový text programu – algoritmus zapsaný v programovacím jazyku Strojový kód – instrukce srozumitelné pro daný stroj Instrukce – nejzákladnější příkaz, kterému rozumí CPU Instrukční sada – soubor instrukcí, kterému rozumí dané CPU

14  Nízkoúrovňový  Vznik v 50. letech – druhá generace  „assembler“ (z anglického assembly language)  Assembler je technicky překladač jazyka symbolických adres  Symbolická reprezentace strojových instrukcí

15  Překladové direktivy  Instrukce  Definice obsahu paměti  Návěstí  Makro  Podmínkové bloky  Definice překladových symbolů

16  Procedurální - strukturované  Neprocedurální (deklarativní) - SQL  Funkcionální - LISP  Objektově orientované – SmallTalk, C++, Java  Logické - Prolog  Značkové – HTML, XML  Skriptovací – JavaScript, PHP, Perl

17  Fortran  Algol  Cobol – 1960  PL/1 (Fortran+Algol+Cobol)  Basic – 1964  Algol68  C  Dbase, Clipper, FoxPro Který jazyk je CASE sensitivní? Co to znamená?

18  John Bakus, IBM 1954 Fortran přinesl: Pojmenování proměnných Složené výrazy podprogramy

19  Založeno na popisu cíle – přesný algoritmus je záležitostí překladače  SQL  Je-li použita rekurze – nároky na programátora co se týče představy jak program bude fungovat

20  LISP, APL, Erlang, Haskell, Oz, Scheme  Zachází s výpočtem jako s vyhodnocením matematických funkcí  Aplikace je složena z funkcí, na rozdíl od procedurálního programování zaměřeného na změny stavu  Využití teorie rekurzivních funkcí  Umělá inteligence

21  SmallTalk – 1970 program je množina objektů, které prováděním svých metod reagují na došlé zprávy  C  Java 1990 není čistě objektový, nezávislý na HW  MS Visual Basic událostně řízený

22  Prolog, Absys, Planner  Definují se pravidla  Interpret některé skutečnosti dokáže odvodit ze známých skutečností a pravidel

23  Přiřazení  Cyklus  Podmínky pro větvení Nekonečný cyklus: Cyklus programu, který se neustále opakuje Zdánlivě nekonečný cyklus

24  Úložiště informace – má vyhrazené místo v paměti  Proměnná má typ a hodnotu

25  Recurso = „opět se vracet“  Opakované vnořené volání stejné funkce Typy: a) Přímá – podprogram volá sám sebe b) Nepřímá – vzájemné volání podprogramů vytvoří kruh Lineární, stromová

26 Výpočet faktoriálu N! = N * (N – 1)! Sub Faktorial(N) ( if N = 0 then Vysledek = 1 else Vysledek = N * Faktorial(N – 1) endif )

27  Úspěšné dokončení první akce je podmíněno dokončením druhé akce, přičemž úspěšné dokončení druhé akce je podmíněno dokončením první akce  V počítači zablokování procesů vzájemným křížovým čekáním  Podmínky deadlocku - Coffman

28 #include void main() { char* msg=„Hello world!"; puts(msg); }

29 #include class Message // definuj třídu pro zprávu { private: char msg[50]; public: Message(char* s) { strcpy(msg,s); }; void print() { puts(msg); }; void main() { m = new Message("Hello World!"); // instance třídy m->print(); // volám metodu print delete m; // uvolňuji paměť }

30 IDENTIFICATION DIVISION. PROGRAM-ID. HELLO- PROG. ******************************* ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-PC. OBJECT-COMPUTER. IBM-PC. ******************************** DATA DIVISION. ******************************** PROCEDURE DIVISION. DISPLAY-PARA. DISPLAY "HELLO WORLD FROM COBOL!". END-PARA. STOP RUN.

31 LET MSG$ = "Hello World" PRINT MSG$;

32 ( (setq msg "Hello World") (print 'msg)) LISP = List Processing nebo Lots of Irrelevant Silly Parentheses

33 Message is "Hello World" Message? - Popisuje co se má stát - Systém rozhodne, jak se to stane

34 message := string new: "Hello World". message display.

35  Shell UNIX message="Hello World" echo $message  Shell MS-DOS SET MSG="Hello World" ECHO %MSG%

36  Computer Aided Software Engineering  Nástroj k vývoji, modernizaci a údržbě SW  Kombinace SW nástrojů a strukturovaných metodologií

37 Metodologie – souhrn definovaných principů a speciálních pojmů, používaných v orientaci v dané oblasti Metodika – uspořádaný, relativně podrobný návod pro uplatnění metodologie Metoda – uplatnění metodiky konkrétním způsobem

38  60. léta – Data Flow Diagrams  Počátek 80. let počítačová podpora tvorby dokumentace Nástroje pro podporu analýzy a tvorby SW  Střed 80. let – tvorba modelů databáze  Konec 80.let – automatické generování a sestavování nástrojů  Začátek 90. let – inteligentní metodologie řízení tvorby SW

39  Eliminace neproduktivního času projektantů  Zvýšení kvality SW  Urychlení procesu vývoje  Jednodušší provádění změn

40  Upper CASE – globální analýza, plánování  Middle CASE – detailní analýza, návrh IS  Lower CASE – fyzická (programová) realizace I-CASE (integrovaný CASE) – podporuje všechny životní cykly projektu – včetně generování SW, tvorbu a údržbu dokumentace atd.

41  Není to vyšší generace programovacích jazyků  Nepředstavují ani nenahrazují metodologii  Nezlepší práci vedoucích pracovníků – pouze je nutí k vyšší systematičnosti a pečlivosti  Neodstraní zaostávání ve vývoji aplikací  Zvýší produktivitu analytiků tím že je zbaví práce s vedením dokumentace, a umožní jim soustředit se na tvůrčí práci


Stáhnout ppt "Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta."

Podobné prezentace


Reklamy Google