1 / 56

Programovacie jazyky

Programovacie jazyky . Doc. Ing. Juraj Vaculík, PhD., Mail : juvac@fpedas.utc.sk Web http://nf446.host.sk. Generácie jazykov. 1. g. Strojový kód 2. g. Assembler 3. g. Procedurálne a štruktúrované jazyky 4. g. Objektovo orientované 5. g. SQL – databázové spracovanie

Download Presentation

Programovacie jazyky

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programovacie jazyky Doc. Ing. Juraj Vaculík, PhD., Mail : juvac@fpedas.utc.sk Web http://nf446.host.sk

  2. Generácie jazykov • 1. g. Strojový kód • 2. g. Assembler • 3. g. Procedurálne a štruktúrované jazyky • 4. g. Objektovo orientované • 5. g. SQL – databázové spracovanie • 5,5. g. Značkové jazyky • 6. g. Natural language Progranmovanie 2006 Strojový kód

  3. Strojový kód • to sú elementárne inštrukcie vyjadrené číselnými kódmi, vlastná reč počítača, na PC to môže byť napr. „presuň obsah registru AX na zadané miesto v pamäti“, „pripočítaj 1 k obsahu registru BX“ atd. • k programovaniu v strojovom kóde je treba poznať architektúru počítača, pre ktorý svoj program píšeme. • programovať pomocou elementárnych inštrukcií, navyše vyjadrených číslami, je problematické; ešte väčší problém ale predstavujú absolútneadresy. I nepatrná úprava programu totiž spôsobí, že sa zmení všetky nasledujúce adresy a my potom musíme v programe zmeniť odkazy na ne. Je jasné, že opravy a údržba takéhoto programu sú veľmi náročné. Progranmovanie 2006 Assembler ...

  4. Assembler ... • jazyk symbolických adries, ktoré dnes súhrnne nazývame asembler • v asembleri sú číselné kódy inštrukcií nahradené mnemotechnickými skratkami, napríklad mov ax,adr alebo add bx,1. • Rôzne miesta v programe je možné označiť návestím - symbolickýmiadresami, a na toto návestie sa v inštrukciach odvolávame. • Jednotlivá zmena potom nemusí mať za následok zmeny celého programu. Progranmovanie 2006 assembler

  5. Assembler • niečozaniečo - program napísaný v asemblere je nutné najskôr preložiť do strojovéhokódu. • Assembler je závislý na type procesora a každý má svoju špecifickú sadu inštrukcií, • Zápis programu v asembleri sa vôbec nepodobá spôsobu, akým sa vyjadrujeme v bežnom živote; i to bol jeden z dôvodov, prečo bolo programovanie spočiatku záležitosťou úzko vyhranených špecialistov. Skutočnú zmenu spôsobili až vyššie programovacie jazyky. Progranmovanie 2006 abstrakcia

  6. Prvá vrstva abstrakcie • Niekde tu sa prvý krát objavil trik, ktorý programátori používajú k riešeniu najrôznejších problémov dodnes: medziseba a hardware sme vložili vrstvu, ktorá prácu s hardwarom uľahčuje, zjednodušuje a skrýva pred nami niektoré jej problematické miesta. • Niekedy o tom hovoríme ako o vrstveabstrakcie. Samozrejme, táto vrstva bola na začiatku len tenká, pretože aj programátor, ktorý používal asembler, musel stále veľmi podrobne poznať architektúru počítače. Progranmovanie 2006 Prvé jazyky

  7. Prvé jazyky • Jedným z prvých úspešných pokusov o vyšší programovací jazyk bol OperationalCompiler (Laning a Zierler, M.I.T, 1954). • Pretože prvé počítače slúžili skutočne predovšetkým k počítaniu, umožňoval tento jazyk zapisovať matematické výrazy podobne ako v matematike a poskytoval nástroje pre numerické riešeniediferenciálnychrovníc. Progranmovanie 2006 Fortran ...

  8. Fortran ... • Za prvý použiteľný vyšší programovací jazyk sa spravidla pokladá Fortran (skratka z FORmula TRANslation). • Avšak idea vyššieho programovacieho jazyka je staršia – jeho vznik predpovedal už v r. 1954 K. Zuse a vymyslel preň aj názov Plankalkül. Progranmovanie 2006 Fortran ...

  9. Fortran ... • Fortran vyvinul tým vedený Johnom Backusem firmy IBM pre počítač IBM 704. • Cieľom bolo vyvinúť jednoducho zvládnuteľný programovací jazyk • Obsahoval rad optimalizačnýchalgoritmov, z ktorých niektoré si dokonca spúšťali úseky preloženého programu, aby mohli čo najlepšie určiť alokáciu registrov. Verzia Fortran II priniesla možnosť rozdeliťprogram na niekoľkých samostatneprekladanýchčastí. Progranmovanie 2006 Fortran

  10. Fortran ... • Najväčšia sila spočívala v možnosti zapisovať pomerne zložité matematickévzorce spôsobom blízkym matematickej praxi. • Na rozdiel od mnohých neskorších programovacích jazykov umožňoval Fortran rozdeliť program na samostatne prekladané podprogramy. • Neobsahoval však konštrukcie ako zloženýpríkaz alebo úplnýpríkazIF, okrem polí nepodporoval užívateľom definované typy, neposkytoval nástroje pre prácu s pamäťou, nedovoľoval rekurziu pri volaní podprogramov atd Progranmovanie 2006 Ďalšie ...

  11. Nasledovníci FORTRANU • Úspech Fortranu podnietil záujem o vytváranie ďalších jazykov, napríklad už v r. 1963 sa len vo Veľkej Británii používalo viac ako 30 rôznych jazykov. Väčšina z nich skoro zase zanikla, niektoré však priniesli novinky, ktoré si našli trvalé miesto v programovaní. • Jazyky z tej doby boli problémovoorientované – to znamená, že sa hodili len k riešeniu určitej pomerne úzkej triedy problémov. Progranmovanie 2006 ALGOL 60

  12. Algol 60 • vytvorila ho spoločná komisia organizácií GMM a ACM predovšetkým ako jazyk pre publikovaniealgoritmov. • Tento jazyk naučil programátorov pracovať s blokovouštruktúrou programu a využívať rekurziu. • Poskytol taktiež úplný príkazif, ktorého špecifikácia však ponechala rad dôležitých miest otvorených, takže ich rôzne implementácie riešili po svojom. Progranmovanie 2006 COBOL

  13. Cobol60 • jazyk pre spracovanie hromadnýchdát (predchodca dnešných databázií). Cobol (Common Object Bussines Oriented Language) zoznámil programátorov s konštrukciou, ktorá sa obvykle označuje ako štruktúra alebo záznam a ktorá predstavuje vlastne jeden riadok v databázovej tabuľke – i keď v tom čase ešte žiadne databáze v podstate neexistovali. Progranmovanie 2006 LIPS

  14. LISP • je jazyk pre symbolickémanipulácie, predovšetkým pre spracovanie zoznamov. • Používa sa pre tzv. funkcionálneprogramovanie – všetko, čo v ňom robíme je skladanie funkcií, ktoré sa aplikujú na symbolické výrazy. • LISP ukázal, že imperatívne programovacie jazyky, v ktorých je program zapísaný ako postupnosť príkazov, nepredstavujú jedinú možnosť. Podnietil taktiež záujem o dynamickédátovéštruktúry. Progranmovanie 2006 Univerzálne

  15. Univerzálne jazyky Problémovo orientované jazyky znamenali výrazný krok vpred, ale čoskoro bolo zrejmé, že ide len o provizórne riešenie. Preto sa už od začiatku 60. rokov snažili ako teoretici, tak i praktici vyvinúť univerzálny programovací jazyk, teda jazyk, ktorý by poskytoval nástroje pre vedecko-technické výpočty, spracovanie hromadných dát, spracovanie dynamických dátových štruktúr a ďalšie – v tej dobe ešte neznáme oblasti aplikácií Progranmovanie 2006 PL/I

  16. PL/I • Šlo o spojenie vlastností Fortranu, Algolu a Cobolu s niektorými novými rysmi. • Ako jeden z prvých umožnil ošetrovať výnimočné situácie za behu programu, používať ukazovatele a paralelne vykonávať vstupné a výstupné operácie. • Celkovo však bol hodnotený skôr nepriaznivo, pretože mal príliš málo skutočnej sily pri veľmi rozsiahle definície. Progranmovanie 2006 Simula

  17. Simula 67 • vznikla ako nadstavba Algolu 60; priniesla plnohodnotné objektovoorientovanéprogramovanie – nájdeme v nej triedy aj dedičnosť; polymorfizmus je riešený virtuálnymifunkciami. • Vedľa toho obsahovala automatickú správu pamäti a prostriedky pre prácu so zoznamami. Progranmovanie 2006 Algol 68 ...

  18. Algol 68 ... • Priniesol veľké množstvo nových možností, ako je paralelneprogramovanie a základne prostriedky pre synchronizáciuprocesov (semafor), riedenie alokácie pamäti, možnosť predefinovať nové operátory, zachádzať s funkciami ako s dátovými objektmi atd. Progranmovanie 2006 Algol 68

  19. Algol 68 ... • Prišiel tiež s myšlienkou, že programovací jazyk sa má skladať z malého množstva základných prostriedkov a pravidiel pre ich systematické kombinovanie a nesmie obsahovať náhodné obmedzenia (tomu sa hovorí ortogonalitajazyka). • Tento jazyk predbehol svoju dobu – prvé rozumné implementácie Algolu 68 sa datujú až do druhej poloviny 70. rokov, a to už sa používali modernejšie jazyky. Progranmovanie 2006 Pascal

  20. Pascal (N. Wirth, 1971) • Naozaj výrazný obrat vo vývoji programovacích jazykov znamenal Pascal, navrhnutý N. Wirthom pre výučbu programovania (1971). • Položil dôraz na jednoduchosť, prehľadnosť a dobré štruktúrovanie programu a vo výučbe prakticky cez noc nahradil predtým používané jazyky PL/I, Fortran a Algol 68. • Veľmi skoro sa však začal používať aj pre skutočné aplikácie. Tento jazyk zaviedol vymenované typy. Progranmovanie 2006 Jazyk C

  21. Jazyk C (D. Ritchie, 1972) • poskytoval podobné možnosti ako Pascal, navyše mal možnosť oddeleného prekladu. • Vzdor zložito vyzerajúcej syntaxe získal rýchlo popularitu, a pretože obsahoval prostriedky pre nízko-úrovňovéprogramovanie, slúžil aj ako „prenositeľnýasembler“. Progranmovanie 2006 SmallTalk

  22. Smalltalk (1973) • bol prvým čisto objektovým programovacím jazykom. • Všetko v ňom predstavuje objekt, aj triedy alebo časti kódu. Taktiež Smalltalk predbehol svoju dobu, pretože mohol efektívne bežať len na dostatočne výkonných počítačoch. • Poslúžil však ako nástroj pre rozvoj teórie objektového programovania. Progranmovanie 2006 ADA

  23. Jazyk Ada • vyvinutý z iniciatívy Ministerstva obrany USA (1980), kládol maximálny dôraz na bezpečnosť. • Jeho novinkou bolo genericképrogramovanie Progranmovanie 2006 Jazyk C+

  24. Jazyk C++ (B. Stroustrup, 1985) • bol najpopulárnejším jazykom 90. rokov, a to i napriek tomu, že sa v tej dobe prudko vyvíjal a prešiel radom zmien. • Do programovania vniesol okrem iného viacnásobnú dedičnosť a priestory mien Progranmovanie 2006 JAVA

  25. Java (Gosling, 1995) • je síce syntakticky podobná C++, je však určená pre tzv. virtuálny stroj. To ale nie je v programovaní nič nového – s tým sme sa mohli stetnúť už pri jazyku Basic (Kemeney, 1963). • Je prvý široko používaným jazykom, ktorý ponúka nástroje pre pokročilú prácu s typmi. • Java je čisto objektová; jej neprehliadnuteľný úspech je dôsledkom jej prenositeľnosti a prepracovaných knihovní Progranmovanie 2006 C#, .NET

  26. C# a .NET • Na podobnej myšlienke ako Java sú založené i jazyky pre platformu .NET, z ktorých na prvom mieste menujme C#. Ide opäť o jazyky prekladané do bajtovéhokódu, ktoré navyše poskytujú niečo, čo vyzerá samozrejme, ale bohužiaľ to samozrejmé nie je – triedu, napísanú v jednom jazyku, je možné používať i v iných jazykoch (v inom jazyku od nej je možné napríklad odvodiť potomka.) Progranmovanie 2006 vývojové

  27. Programovacie jazyky Vývojové prostredie

  28. Vývojové prostredie • Na programovací jazyk sme sa mohli dívať ako na vrstvu vloženú medzi programátora a hardware, vrstvu, ktorá uľahčuje programátorovi prácu tým, že skrýva strojový kód. • Integrované vývojové prostredie, často označované skratkou IDE (Integrated Development Environment), predstavujú ďalšiu takúto vrstvu, tento krát vloženú medzi programátora a programovací jazyk. Progranmovanie 2006 IDE prvé

  29. IDE Basic... • Historicky prvé IDE so sebou priniesol v roku 1963 jazykBasic. Tento jazyk bol od počiatku interpretovaný, takže poskytoval programátorom možnosť spúšťať si úseky programu a hneď vidieť ich výsledky. • To umožnilo interaktívnu prácu pri vývoji programov, ktorá je podstatne efektívnejšia než v tej dobe štandardné dávkové spracovanie. • Avšak skutočný význam Basic získal, až keď sa terminály, umožňujúce interaktívnu prácu, stali štandardnou súčasťou výpočtových stredísk Progranmovanie 2006 IDE

  30. IDE SmallTalk... • Ďalší významný krok vo vývoji IDE priniesol jazyk Smalltalk na začiatku 80. rokov. • Graficky orientované IDE je neoddeliteľnou súčasťou tohto jazyka, pretože sa skladá z objektov, ktoré sú súčasťou knižníc a ktoré je možné využívať aj v programe. • Toto prostredie taktiež prinieslo možnosť interaktívneholadenia Progranmovanie 2006 Klasické

  31. IDE Pascal,C • Z hľadiska rozšírenia nie je možné obísť IDE prekladača programovacích jazykovC a Pascalu na PC od poloviny 80. rokov; masový predaj týchto nástrojov umožnil ich rýchly vývoj. • Prvé verzie v polovine 80. rokov neobsahovali o mnoho viac než editor, prekladač a nápovedu; na začiatku 90. rokov pribudol integrovanýladiaciprogram - debbuger. Progranmovanie 2006 Visual

  32. VisualBasic, Delphi • Zatiaľ čo na konci 80. rokov sa IDE zaoberalo jednotlivýmiprogramami a v prvej polovine 90. rokov projektmi, dnes sa hovorí o riešených skupináchprojektov. • V dnešných IDE k základnej štvorici, tvorenej prekladačom, editorom, ladiacimprogramom a nápovedou, pribúdajú ďalšie nástroje, ako sú sprievodcovia – wizard, inspector, atď., ktorí automatizujú rutinné operácie, generujú opakujúce sa časti kódu Progranmovanie 2006 Prístup

  33. Programovacie jazyky Prístup k programovaniu

  34. Prístupy k programovaniu • V ranných dobách programovania sa nehovorilo o programovacom štýle, o prístupe k programovaniu, o metodike programovania alebo o programovacom paradigmate. • Ľudia programovanie chápali skôr ako umenie než ako technológiu s pevne danými postupmi. To sa však skoro začalo meniť. Progranmovanie 2006 Modulárne

  35. Modulárne programovanie • Na konci 50. rokov vzrástol výkon počítačov a s ním aj zložitosť programov. • Programátori si začali uvedomovať potrebu rozdeliť program na viac samostatných časti a tieto časti potom opakovane využívať, čo viedlo k vzniku modulárnehoprogramovania, ktoré zaviedlo modul ako základní jednotku programu. • Modul je uzavretá, spravidla samostatne prekladaná súčasť, ktorá prostredníctvom svojho rozhraní poskytuje služby ostatným častiam programu. Progranmovanie 2006 Štruktúrované ...

  36. Štruktúrované programovanie • Na konci 60. rokov sa tiež začalo hovoriť o softwarovej krízii. • Tento pojem vyjadroval priepastný rozdiel medzi prudko rastúcou úrovňou hardwaru a úrovňou tvorby softwaru. • Výsledkom týchto diskusií bol nový prístup k programovaniu, označovaný ako štruktúrovanéprogramovanie. Progranmovanie 2006 štruktúrované

  37. Štruktúrované programovanie • základnou myšlienkou bolo písať programy tak, aby boli jednoducho zrozumiteľné nie len pre počítač, ale aj pre človeka, aby ich mohol jednoducho opravovať, udržovať a rozvíjať. • Po formálnej stránke tento prístup požadoval, aby sa program skladal len z postupnosti príkazov, z cyklov a z rozhodovaní. • Každá z týchto konštrukcií pritom smie mať práve jeden vstupný a právejedenvýstupnýbod Progranmovanie 2006 jackson

  38. Jacksonovediagramy • Spolu so štruktúrovaným programovaním sa v 70. rokoch objavili i metodiky, ktoré poskytovali návod, ako zo zadania odvodiť logicky správnu a pritom prehľadnú štruktúru programu. • Niektoré s nich sa opierali o predstavu, že štruktúra programu musí vychádzať zo štruktúry dát - napr. že opakujúce sa dáta rovnakého typu na vstupe budeme spracovávať cyklom a pod. • Asi najznámejšie metodika štruktúrovaného programovania pochádza od M. Jacksona a opiera sa o tzv. Jacksonovediagramy Progranmovanie 2006 diagramy

  39. Jacksonovediagramy Asi najznámejšia metodika štruktúrovaného programovania pochádza od M. Jacksona a opiera sa o tzv. Jacksonovediagramy Progranmovanie 2006 OOP

  40. OO Programovanie • Ak si odmyslíme všetky marketingové poviedky o revolučnosti, zásadnom prínose apod., ktoré sme v súvislosti s objektovoorientovanýmprogramovaním (OOP), zistíme, že OOP nie je nič iného než logické pokračovanie predchádzajúcich dvoch prístupov. • Samozrejme, OOP prinieslo nové pojmy, nové postupy a nové nástroje a prechod programátorov k nemu bol veľmi pozvoľný, aspoň v merítku vývoja informačných technológií. Progranmovanie 2006 Pojmy ...

  41. Pojmy OOP • OOP sa točí okolo pojmu trieda, čo je vlastne programový model triedyobjektov z reálneho sveta, z oblasti riešeného problému. • Ako objekty potom označujeme premenné alebo konštanty týchto typov - vlastnosti. • Trieda je vlastne modul, v ktorom sú zapúzdrenédáta - ako dáta jednotlivých inštancií, tak i dáta tried ako celkov. • Operácie, ktoré je možné s týmito dátami vykonávať, sa označujú ako metódy. Objektovo orientovaný program sa skladá z objektov, ktoré si navzájom posielajú správy, t.j. volajú svoje metódy. Progranmovanie 2006 Pojmy

  42. Pojmy OOP • Mechanizmus označovaný nie príliš vhodne ako dedenie umožňuje odvodiť od jednej triedy ďalšie, ktoré predstavujú podtriedy, špecializácie pôvodnej triedy. OOP taktiež prišlo s ideou polymorfizmu: so všetkými inštanciami by malo byť možné zachádzať rovnakým spôsobom, teda posielať im rovnaké správy. • Implementácia polymorfizmu sa v rôznych programovacích jazykoch a prostrediach líši, sú rôznym spôsobom obmedzené Progranmovanie 2006 UML

  43. JazykUML • Taktiež pre OOP sa objavil rad metodík; dnes majú celkom dominantné postavenie metodiky založené na modelovacom jazykuUML (Univrsal Modeling Language). • Niektoré z nich vychádzajú zo starších metodik pre návrh databázií, napr. z entitne-relačnýchdiagramov. Progranmovanie 2006 komponentové

  44. Ďalší prístup k programovaniu • komponentovéprogramovanie založené na znovu použiteľných komponentoch - samostatne vyvíjaných a dodávaných triedach alebo skupinách tried, ktoré poskytujú presne vymedzené služby VCL – Visual Component Library Progranmovanie 2006 šablónové

  45. Ďalší prístup ... • šablonovémetaprogramovanie - ide o prístup založený na využití šablón, ktorý je možné stručne charakterizovať ako snahu nechať miesto vlastného programu počítať prekladač. Zatiaľ je obmezené na jazyk C++ Progranmovanie 2006 aspektovo

  46. Ďalší prístup ... • Dnes sa tiež začína hovoriť o aspektovoorientovanomprogramovaní. V ňom ide o implementáciu aspektov - vlastností spoločných inak nesúvisiacim triedam. • Objavili sa už aj prvé nástroje, ktoré túto možnosť poskytujú - napr. AspectJ od Eclipse. Progranmovanie 2006 Agentovo

  47. Ďalší prístup ... • Medzi často skloňované pojmy patrí dnes i agentovoorientovanéprogramovanie, založené na agentoch, programoch schopných priebežne a samostatne plniť určité úlohy v distribuovanom prostredí. Progranmovanie 2006 Java

  48. Ďalší prístup ... • Pravdepodobne najpopulárnejším programovacím jazykom je dnes Java. • Narazíme na ňu všade, kde nie je kritická rýchlosť odozvy. Jej zásadnou prednosťou sú bohaté a neustále sa vyvíjajúce knižnice pre najrôznejšie aplikácie. Progranmovanie 2006 PHP

  49. Ďalší prístup ... • Vedľa Javy patria k najpoužívanejším jazyky preskriptovanie v prostredí internetu na strane klienta aj serveru; typicky ide o PHP alebo Perl, v poslednej dobe sa stále častejšie objavuje aj Python. • Podobne ako Java poskytujú prepracované knižnice, aj keď zďaleka nie v takej šírke - aspoň doteraz. Pre výmenu dokumentov sa používa značkovací jazyk XML Progranmovanie 2006 SQL

  50. Structured Query Language • Data Definition Language (DDL) • Data Manipulation Language (DML) • Data Control Language (DCL) • Transaction Control Comands (TCC) Progranmovanie 2006 DDL

More Related