1 / 14

Historie programování

Historie programování. Jedinému jazyku, kterému počítač rozumí se nazývá strojový kód (binární jazyk) Jeho podoba je úzce svázána s konkrétním hardware, na němž je provozován Programovací jazyky: Nižší úrovně (blíže ke strojovému kódu)

calvin
Download Presentation

Historie programování

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. Historie programování • Jedinému jazyku, kterému počítač rozumí se nazývá strojový kód (binární jazyk) • Jeho podoba je úzce svázána s konkrétním hardware, na němž je provozován • Programovací jazyky: • Nižší úrovně (blíže ke strojovému kódu) • Vyšší úrovně (blíže jednoduchému jazyku,který má dannou syntax i sémantiku)

  2. Historie programovacích jazyků je úzce svázána: • s možnostmi počítačů • s rozvojem metod strojového překladu jazyků (lexikální,syntaktická,sémantická analýza, generování a optimalizace kódu) • První generace počítačů , počítače na míru, programování ve strojovém kódu, programy na vnějších médiích • Počínaje 1948 ovlivnil vynález tranzistoru další výpočetní techniky • Prvním jazykem byl jazyk symbolických instrukcí – tzv. assembler (1952-1988) , který významně zjednodušil generování strojového kódu a stavbu programů vůbec

  3. Assembler • Programovací jazyk nejnižší úrovně • Strojově závislý • Syntaxe i sémantika jazyka odráží možnosti (instrukční soubor , možnosti adresování) konkrétního počítače • Nejvyšší možná rychlost překladu • Možnost rozdělení 1 velkého programu na více elementárních částí, které jsou mezi sebou úzce svázány a komunikují přes vytvořená rozhraní • Efektivita přeloženého kódu (programy zabírají málo místa v paměti) – důležité v dobách, kdy byl nedostatek poperační paměti.

  4. Programátor jazykem definoval nejen řídící části programu, ale i datové oblasti nad nimiž program vykonává svou činnost • důležité postavení i u počítačů 3. a 3,5. generace (rychlost , efektivita překladu , programování vstupně/výstupních operací) • Další směr vývoje programovacích jazyků: • odstranit strojovou závislost jazyků, vyžadující od programátora detailní znalosti strojového jazyka a znemožňující použití programů vypracovaných pro jeden typ počítače na počítači jiného typu • poskytnout programátorům takové prostředky pro popis algoritmů, které odrážejí povahu řešených problémů

  5. 3. generace programovacích jazyků Zřejmě nejvýznamnější změnou bylo v 60. letech 20. století rozšíření strojově nezávislých programovacích jazyků, podporujících metody strukturovaného programování. Dochází k rozčlenění programu do autonomních funkčních celků – modulů. Každý modul obsahuje rozhraní a tělo. Fortran (1954, tým IBM vedený J. Backusem). Ve své první podobě byl Fortran opravdu snadno naučitelným jazykem vedoucím k maximálně efektivnímu programu. Fortran byl však původně jazykem určeným pro vědeckotechnické výpočty, proto nemohl vyřešit úplně všechno.

  6. Algol(první verze publikována 1958, dnes známý pod názvem Algol 60) přinesl kromě jiného i bloky (skupiny příkazů) považované za jeden celek) a úplný příkaz if (tj. konstrukci if/then/else) a umožňoval vytváření rekursivních programů. Samozřejmě, že měl i své nedostatky - nedefinoval vstupní a výstupní operace, obsahoval některé nejasné konstrukce, ignoroval potřebu překládat rozsáhlejší programy po částech a navíc se vysloveně vzpíral jinému použití něž byly vědeckotechnické výpočty. Cobol (1960) zaměřený na oblast zpracování hromadných dat, odkud byl vytlačen teprve moderními databázemi. V tomto jazyce bylo napsáno naprosto neuvěřitelné množství programů ( jedná se o milióny řádků), z nichž se celá řada dodnes používá. Novum, které Cobol přinesl, jsou strukturované datové typy, tedy proměnné skládající se z řady dílčích údajů různých typů. Pokusil se také řešit problém přenosu dat mezi různými počítači.

  7. Nové jazyky u 3 generace počítačů 3 generace byla charakterizována začínajícími integrovanými obvody , hlavní externí pamětí se stávají magnetické disky Basic(1964, Kemeney a Kurtz) V původní podobě neobsahoval podprogramy v dnešním slova smyslu a nerozlišoval typy číselných proměnných. Byl totiž taktéž určen pro vědeckotechnické výpočty. Na druhou stranu k jeho popularitě přispěla i jeho jednoduchost, možnost interaktivní práce a snadná implementace na mikropočítačích (kde se však používá v dialektech, které se od původní verze značně liší). Simula 67(O.J. Dahl a K. Nygaard) Programovací jazyk určený především pro diskrétní simulace.Tento jazyk znal pouze dynamické objekty, se kterými se pracovalo pomocí referencí. Nepoužívané objekty rušila automatická správa paměti (garbage collector).

  8. (4. generace počítačů) Je charakterizována zavedením mikroprocesorů ( v roce 1971- americká firma Texas Instruments zavedla poprvé výrobu mikroprocesorů). Pascal (1971 Wirth). Je velmi obecný, přesto poměrně jednoduchý a vhodný pro výuku programování. Podporuje strukturované programování. Ovlivnil vývoj dalších jazyků. Na osobních počítačích rozšířen zejména díky systému Turbo Pascal. Ada(1979) Obecný jazyk pro většinu aplikací včetně řízení procesů v reálném čase. Navržen na základě požadavků Ministerstva obrany USA

  9. C(1974) byl původně navržen jako jazyk pro vývoj operačního systému UNIX. Byl používán na minipočítačích a pozdějí zejména na osobních počítačích jako jazyk obecného využití. C-jazyk je unikátní, neboť je jakési střední úrovně. Není to jazyk vysoké úrovně jako BASIC nebo PASCAL, není to však ani jazyk nízké úrovně jako assembler. Jazyky střední úrovně jsou jazyky, které nahrazují assembler a přitom umí úkony jazyků vysoké úrovně. C-jazyk vyhovuje od A až do Z, neboť může fungovat stejně dobře jako systémový nebo aplikační jazyk. Jazyk C může pracovat na úrovni systému a umožňuje programátorovi napsat téměř všechno, co ho napadne. Navíc je C-jazyk dostatečně univerzální i pro aplikační programování.Největší předností jazyka C jej jeho schopnost rozšiřovat sama sebe. Knihovny C-jazyka se snadno rozšiřují co do velikosti a je snadné napsat novou funkci, jakmile je potřeba.

  10. 3,5. generace prog. jazyků : C++ (1986) Jazyk plně podporující objektově orientované programování a zachovávající efektivitu programů v C. • 90. léta až po současnost Jsou charakteristická prudkým rozvojem skriptovacích jazyků pro použití na Internetu (PHP, ASP, Python, JSP, Perl). Existuje potřeba vyvíjet složité aplikace obsluhující databáze a komunikující po síti. Zároveň jsou znatelné požadavky na robustnost a rychlost vývoje těchto aplikací. Veškeré moderní programovací jazyky staví na OOP konceptu. V posledních letech je také zjevný důraz na přenositelnost aplikací mezi jednotlivými platformami a s tím související přechod od jazyků kompilovaných k jazykům interpretovaným, navíc s vyšší úrovní abstrakce.

  11. PHP-Skriptovací jazyk, který je typický tím, že se úseky PHP kódu přímo prolínají s html kódem. Tato kombinace činí z PHP výborný nástroj pro tvorbu dynamických webových stránek. PHP je v dnešní době již široce rozpracováno, poskytuje dostatek funkcí a je široce podporováno. Díky bezproblémové komunikaci s SQL servery se z PHP stal opravdu mocný nástroj. Mezi nevýhody, které PHP vylučují v nasazení do náročných aplikací je nutnost překládat stránku při každém požadavku (lze částečně odstranit použitím akcelerátorů) a špatná podpora OOP. Python- Python je objektový, přenositelný a interpretovaný jazyk. Python kombinuje značnou sílu s čistou syntaxí. Má spoustu modulů, podporuje OOP, výjimky, vysokoúrovňové datové typy a dynamické typy. Existujou rozhraní pro různá systémová rozhraní a knihovny.

  12. Java (1996)- Programovací jazyk Java je čistě objektově orientovaný, podporuje výjimky, má automatickou správu paměti, je přenosná, interpretovaná a široce rozšířená. V Javě se dnes běžně programují www aplikace, mobilní telefony, ale i bankovní systémy. Zajímavostí je, že Java byla původně vyvíjena firmou Sun jako jazyk pro programování nápojových automatů. C# (2000)- C# je odpovědí firmy Microsoft na Javu. C# je ná strojem pro programování pro MS .NET platformu. Má s Javou mnoho společného (výjimky, OO design, interpretovanost…). .NET platforma, jak už z názvu plyne, je zaměřená na síťové technologie, zejména webové služby.

  13. 4. generace programovacích jazyků V 80. letech se začaly objevovat prostředky (spíše než jazyky),  které místo vypisování jednotlivých příkazů dovolují komunikovat s počítačem pomocí obrázkových prostředků – nabídek,  dialogů, obrázků, ikon označující data nebo programy, které je možné pomocí myši přesouvat, kopírovat, označovat a podobně. Velmi často toto prostředí 4. generace pak generuje nějaký kód jazyka 3. generace, který pomocí příkazů popisuje názorně specifikované akce. Uživatel tohoto prostředí tedy vůbec nemusí umět programovat, pouze interaktivně vytváří požadovaný výsledek co možná vizualizovaným způsobem. Typickým je princip WYSIWYG (What You See Is What You Get). Z nejdostupnějších prostředků můžeme jmenovat např. databáze Paradox nebo Visual Foxpronebo různá prostředí pro vytváření grafických informačních WWW stránek na Internetu. Dále se můžeme zmínit o prostředcích firmy Borland (JBuilder, C++ Builder, Delphi) a nástrojích firmy Microsoft (Visual Studio).

  14. Trendy v progamovacích jazycích : Z načrtnutého vývoje programovacích jazyků je zřetelný posun od strojového kódu k jazykům s vyšší a vyšší mírou abstrakce. Programování přestává být doménou inženýrů a stává se doménou širokého publika. V dnešní době je již například běžné, že základy programování ovládají děti mladší deseti let. Lze proto předpokládat, že v budoucnosti přestane být programování doménou úzkého okruhu programátorů a stane se masovější záležitostí (a to zejména v oblasti webových aplikací). Zdá se také, že dojde k diferenciaci na jazyky určené pro tvorbu klientských aplikací a na tvorbu serverových aplikací. Všeobecně je znatelný trend k vývojí aplikací typu klient/server a distribuovaných aplikací. Zejména v oblasti klientských aplikací dojde zřejmě k přechodu na klikací nástroje typu Delphi (několikanásobně rychlejší vývoj než je ten klasický).

More Related