41
Základy informatiky programovací prostředky Ing. Roman Danel, Ph.D. roman.danel @ vsb.cz Institut ekonomiky a systémů řízení Hornicko – geologická fakulta

Základy informatiky programovací prostředky

Embed Size (px)

DESCRIPTION

Základy informatiky programovací prostředky. Ing. Roman Danel , Ph.D . roman.danel @ vsb.cz Institut ekonomiky a systémů řízení Hornicko – geologická fakulta. Obsah. Algoritmus Programovací jazyky CASE nástroje. Algoritmus. Návod či postup jak vyřešit určitou úlohu - PowerPoint PPT Presentation

Citation preview

Zklady informatiky: vod a historie

Zklady informatikyprogramovac prostedkyIng. Roman Danel, [email protected] ekonomiky a systm zenHornicko geologick fakulta

ObsahAlgoritmusProgramovac jazykyCASE nstrojeAlgoritmusNvod i postup jak vyeit uritou lohuNap. kuchysk receptVlastnosti algoritmKonenost (finitnost)ObecnostDeterminovanostResultativnost (vstup)ElementrnostSloitost algoritmuAlgoritmick analzaTeorie sloitostiKonenost algoritmuDruhy algoritmRekurzivnhladovDynamick programovnrozdl a panujPravdpodobnostnGenetick (evolun)HeuristickPklady znmch algoritmEratosthenovo stoEuklidv algoritmusAlgoritmus de CasteljauBellman-Fordv algortimusProgramovac jazykyProstedek pro zpis algoritm, jen mohou bt provdny na potaiZpis algoritmu v programovacm jazyku se nazv programProgramovac jazyk soubor pravidel pro zpis algoritmuProgramovac jazyk m svoji syntaxi a smantiku (mnoina slov)lenn jazyk dle mry abstrakceNi zvisl na HW - assemblerVy nezvisl na HWDle zpsobu pekladu a sputnInterpretovanInterpretacePeklad do pseudokdu a jeho interpretaceJIT interpretaceKompilovan

Co je to kompilace? - pevod programu zapsanho v programovacm jazyce do strojovho kduCo je to peklada (linker)? sestaven spustitelnho programu z modulu vytvoenho kompiltorem, pipojenm potebnch knihovnch modul

JIT (Just In Time) techniky pekladu pro urychlen bhu interpretovanch programJIT kompilaceDruhy JIT kompiltor:Peklad v dob instalaceOpravdov JIT (ped sputnm peklad a optimalizace)Ekonomick JIT

Pouvan techniky optimalizace odstrann mrtvho kdu, vkldn tl metod, rozbalen smyek, odstrann shodnch podvraz

LinkerJeden nebo vce objektovch soubor vygenerovanch pekladaem spoj do jedinho spustitelnho souboruSdlen knihovny dynamick sestavovn a po sputn programuProgram a instrukceProgram posloupnost pkaz popisujc njakou innostZdrojov text programu algoritmus zapsan v programovacm jazykuStrojov kd instrukce srozumiteln pro dan strojInstrukce nejzkladnj pkaz, ktermu rozum CPUInstrukn sada soubor instrukc, ktermu rozum dan CPUJazyk symbolickch adresNzkorovovVznik v 50. letech druh generaceassembler (z anglickho assembly language)Assembler je technicky peklada jazyka symbolickch adresSymbolick reprezentace strojovch instrukcPrvky jazyka symbolickch adresPekladov direktivyInstrukceDefinice obsahu pamtiNvstMakroPodmnkov blokyDefinice pekladovch symbolVy programovac jazykyProcedurln - strukturovanNeprocedurln (deklarativn) - SQLFunkcionln - LISPObjektov orientovan SmallTalk, C++, JavaLogick - PrologZnakov HTML, XMLSkriptovac JavaScript, PHP, PerlProcedurln jazykyFortran - 1954Algol - 1958Cobol 1960PL/1 (Fortran+Algol+Cobol)Basic 1964Algol68CDbase, Clipper , FoxPro

Kter jazyk je CASE sensitivn? Co to znamen?FortranJohn Bakus, IBM 1954

Fortran pinesl:Pojmenovn promnnchSloen vrazypodprogramyDeklarativnZaloeno na popisu cle pesn algoritmus je zleitost pekladaeSQLJe-li pouita rekurze nroky na programtora co se te pedstavy jak program bude fungovatFunkcionlnLISP, APL, Erlang, Haskell, Oz, SchemeZachz s vpotem jako s vyhodnocenm matematickch funkcAplikace je sloena z funkc, na rozdl od procedurlnho programovn zamenho na zmny stavuVyuit teorie rekurzivnch funkcUml inteligenceObjektov orientovanSmallTalk 1970 program je mnoina objekt, kter provdnm svch metod reaguj na dol zprvyC++ - 1983Java 1990nen ist objektov, nezvisl na HWMS Visual Basicudlostn zenLogick programovnProlog, Absys, PlannerDefinuj se pravidlaInterpret nkter skutenosti doke odvodit ze znmch skutenost a pravidelZkladn prvky programuPiazenCyklusPodmnky pro vtven

Nekonen cyklus:Cyklus programu, kter se neustle opakujeZdnliv nekonen cyklusCo je to promnn?loit informace m vyhrazen msto v pamtiPromnn m typ a hodnotuCo je to rekurze?Recurso = opt se vracetOpakovan vnoen voln stejn funkce

Typy:Pm podprogram vol sm sebeNepm vzjemn voln podprogram vytvo kruh

Linern, stromovPklad vyuit rekurzeVpoet faktorilu N! = N * (N 1)!

Sub Faktorial(N)(if N = 0 then Vysledek = 1elseVysledek = N * Faktorial(N 1)endif)Deadlockspn dokonen prvn akce je podmnno dokonenm druh akce, piem spn dokonen druh akce je podmnno dokonenm prvn akceV potai zablokovn proces vzjemnm kovm eknmPodmnky deadlocku - CoffmanC jazyk pklad Ahoj svte#include

void main() { char* msg=Hello world!"; puts(msg); } Tot v objektovm C++#include #include

class Message // definuj tdu pro zprvu { private: char msg[50]; public: Message(char* s) { strcpy(msg,s);}; void print() { puts(msg); }; };

void main() { m = new Message("Hello World!"); // instance tdym->print(); // volm metodu printdelete m; // uvoluji pam } COBOLIDENTIFICATION 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. BasicLET MSG$ = "Hello World" PRINT MSG$; LISP funkcionln jazyk( (setq msg "Hello World") (print 'msg))

LISP = List Processing neboLots of Irrelevant Silly Parentheses Prolog logick jazykMessage is "Hello World" Message?

Popisuje co se m sttSystm rozhodne, jak se to staneSmallTalkmessage := string new: "Hello World". message display. Skriptovac jazykyShell UNIXmessage="Hello World" echo $message Shell MS-DOSSET MSG="Hello World" ECHO %MSG% CASE nstrojeComputer Aided Software EngineeringNstroj k vvoji, modernizaci a drb SWKombinace SW nstroj a strukturovanch metodologi

PojmyMetodologie souhrn definovanch princip a specilnch pojm, pouvanch v orientaci v dan oblasti

Metodika uspodan, relativn podrobn nvod pro uplatnn metodologie

Metoda uplatnn metodiky konkrtnm zpsobemHistorie CASE60. lta Data Flow DiagramsPotek 80. letpotaov podpora tvorby dokumentaceNstroje pro podporu analzy a tvorby SWSted 80. let tvorba model databzeKonec 80.let automatick generovn a sestavovn nstrojZatek 90. let inteligentn metodologie zen tvorby SWPnosy pouit CASEEliminace neproduktivnho asu projektantZven kvality SWUrychlen procesu vvojeJednodu provdn zmnTypy CASEUpper CASE globln analza, plnovnMiddle CASE detailn analza, nvrh ISLower CASE fyzick (programov) realizace

I-CASE (integrovan CASE) podporuje vechny ivotn cykly projektu vetn generovn SW, tvorbu a drbu dokumentace atd.Falen pedstavy o CASENen to vy generace programovacch jazykNepedstavuj ani nenahrazuj metodologiiNezlep prci vedoucch pracovnk pouze je nut k vy systematinosti a pelivostiNeodstran zaostvn ve vvoji aplikacZv produktivitu analytik tm e je zbav prce s vedenm dokumentace, a umon jim soustedit se na tvr prci