1 / 35

Programovac í jazyk y

Programovac í jazyk y. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 219 http ://www.cs.vsb.cz/ saloun petr.saloun @vsb.cz. Obsah. Co je to programovac í jazyk Překlad a zpracování programu Nástroje pro tvorbu programů Metody popisu programovacích jazyků

Download Presentation

Programovac í jazyk y

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. Programovací jazyky doc. RNDr. Petr Šaloun, Ph.D.katedra informatiky FEI VŠB-TUO A-1007 / 597 324 219 http://www.cs.vsb.cz/salounpetr.saloun@vsb.cz

  2. Obsah • Co je to programovací jazyk • Překlad a zpracování programu • Nástroje pro tvorbu programů • Metody popisu programovacích jazyků • Typy programovacích jazyků • Vývoj programovacích jazyků • Studijní program „Informační technologie“ (text převzat od doc. Beneše) ZPP - Programovací jazyky

  3. Programovací jazyk • Popis výpočtů, obvykle ve tvaru, jenž umožňuje provedení elektronickým počítačem (program) • Standardizovaný nástroj pro komunikaci s počítačem • S jakými daty má počítač pracovat? • Jak se tato data budou ukládat a přenášet? • Které akce a kdy se mají provést? ZPP - Programovací jazyky

  4. Proč používáme programovací jazyky? • Zjednodušují přenos určitého typu informace • Noty v hudbě • Matematické formule • Elektrotechnická schémata • Vyznačují se velkou přesností vyjádření • Přirozené jazyky – vynechávání, gramatické chyby, víceznačnost • Jsou obvykle proveditelné na počítači • Značkovací jazyky (HTML) – data, ne program • Specifikační jazyky (λ-kalkul) – teoretický výzkum ZPP - Programovací jazyky

  5. Překlad a zpracování programu Ladění Neúspěšné testy Zdrojový text programu Překlad a sestavení Testování Provoz Chyby při překladu Chyby za provozu ZPP - Programovací jazyky

  6. Nástroje pro tvorbu programů • Editor • Překladač / interpret x zpětný překladač • Spojovací program (linker) • Správa verzí – CVS, Subversion, … • Ladicí program (debugger) • Nástroje pro ladění výkonu (profiler) • Testovací nástroje, generátory testů • Generátor instalačních balíků • Nástroje pro internacionalizaci (i18n) ZPP - Programovací jazyky

  7. Integrovaná vývojová prostředí (IDE) • Poskytují více uvedených funkcí současně • Prostředí orientovaná na určitý jazyk • Borland Pascal, C++, JBuilder, C#Builder • SharpDeveloper, JCreator, NetBeans • Univerzální prostředí • Eclipse (Java, C++, C#, …) • MS Visual Studio (C++, C#, Jscript, VB, …) ZPP - Programovací jazyky

  8. Eclipse ZPP - Programovací jazyky

  9. JBuilder ZPP - Programovací jazyky

  10. MS Visual Studio ZPP - Programovací jazyky

  11. Překladač • Analýza zdrojového textu, vyhledání chyb • Základní stavební prvky – identifikátory, čísla, řetězce, operátory, oddělovače, … • Programové konstrukce – deklarace, příkazy, výrazy • Kontextové vazby – definice/užití, datové typy • Syntéza cílového programu / Interpretace • Strojový jazyk (nebo JSI) • Jazyk virtuálního procesoru (JVM, CLR) ZPP - Programovací jazyky

  12. Překlad C++ ZPP - Programovací jazyky

  13. Překladač • Inkrementální překlad • Umožňuje po drobné opravě přeložit jen změněnou část • Možnost provádění drobných změn během ladění programu • Just-in-time překlad • Generování instrukcí virtuálního procesoru (Java VM - .class, .NET CLR – jazyk IL) • Překlad až v okamžiku volání podprogramu • Optimalizace podle konkrétního procesoru ZPP - Programovací jazyky

  14. Popis programovacího jazyka • Syntaxe - struktura jazykových konstrukcí • Textové jazyky (C, Pascal, Java) • Grafické jazyky (vývojové diagramy, UML) a > 10 ne if a > 10 then begin x := x + 5; end ano x := x + 5 ZPP - Programovací jazyky

  15. Popis programovacího jazyka • Sémantika – význam jazykových konstrukcí • Statická sémantika – v době překladu • Dynamická sémantika – v době běhu • Příklad: Co znamená X + 1 ? • X je celé číslo: Přičti k hodnotě proměnné X jedničku. • X je řetězec: Převeď konstantu 1 na řetězec a připoj na konec řetězce uloženého v proměnné X. • X je objekt: Zavolej metodu "operator +“s parametrem 1. • X je reálné číslo: Převeď 1 na reálné číslo 1.0 a přičti k hodnotě proměnné X. ZPP - Programovací jazyky

  16. Metody popisu syntaxe Syntaktický diagram Gramatika příkaz ifpodmínkathenpříkazzbytek zbytek  elsepříkaz |ε if podmínka then příkaz else příkaz ZPP - Programovací jazyky

  17. Metody popisu sémantiky • Slovní popis • Nepřesný • Formální popis • Operační sémantika • Význam konstrukce popíšeme pomocí jednodušších operací • Denotační sémantika • Význam konstrukce popíšeme pomocí funkcí ZPP - Programovací jazyky

  18. Typy programovacích jazyků • Imperativní jazyky • Posloupnost příkazů měnících stav výpočtu • Možnost opakovaného přiřazení do proměnné • Deklarativní jazyky • Posloupnost podmínek • Počítač musí najít postup, jak je dodržet • Funkcionální jazyky – ML, Haskell, LISP • Logické jazyky – PROLOG, CLP, Gödel, Mercury • Dotazovací jazyky - SQL ZPP - Programovací jazyky

  19. Vývoj programovacích jazyků • Strojové jazyky • Posloupnost instrukcí v číselném tvaru • Jazyky symbolických instrukcí / adres • Pojmenované instrukce • Pojmenované adresy – proměnné, návěští skoků • Makrodefinice • Autokódy • Složitější příkazy • Příklad: MAT (Minsk autokód – CTI, PIS, JDI NA, …) • Vyšší programovací jazyky ZPP - Programovací jazyky

  20. První programovací jazyky kolem 1946 Konrad Zuse – Plankalkul • použit také pro šachy • rukopis publikován až v roce 1972, nebyl nikdy implementován 1949 John Mauchly - Short Code • první počítačový jazyk skutečně použitý na elektronickém zařízení • určen pro zadávání rovnic • "ručně kompilovaný" jazyk 1951 Grace Murray Hopper • prosazovala vytvoření vyšších jazyků • pracovala na návrhu prvního překladače • zavedla pojem "počítačový virus" ZPP - Programovací jazyky

  21. FORTRAN (1954-57) FORmula TRANslator - John Backus, IBM • problémově orientovaný, strojově značně nezávislý, optimalizace (nutná v konkurenci s JSI) • realizace překladače si vyžádala 18 člověkoroků - jeden z největších projektů v té době • V současnosti stále nejpoužívanější jazyk v oblasti vědeckotechnických výpočtů! (ISO: 1997) ZPP - Programovací jazyky

  22. FORTRAN C C Vypocet funkce faktorial C INTEGER FUNCTION FACT(N) IMPLICIT NONE INTEGER N, I, F F = 1 DO 10 I = 1,N F = F * I 10 CONTINUE FACT = F END PROGRAM P1 IMPLICIT NONE INTEGER N, F, FACT READ(*,*) N F = FACT(N) WRITE(*,*) "Fact = ", F END ZPP - Programovací jazyky

  23. LISP (1958-59) LISt Processing - John McCarthy, M. I. T. • první funkcionální jazyk - implementace lambda-kalkulu • možnost imperativního stylu programování • dosud se používá i jako skriptovací jazyk v aplikacích (AutoCAD, emacs, …) ZPP - Programovací jazyky

  24. LISP (defun quicksort (vec l r) (let ((i l) (j r) (p (svref vec (round (+ l r) 2)))) (while (<= i j) (while (< (svref vec i) p) (incf i)) (while (> (svref vec j) p) (decf j)) (when (<= i j) (rotatef (svref vec i) (svref vec j)) (incf i) (decf j))) (if (> (- j l) 1) (quicksort vec l j)) (if (> (- r i) 1) (quicksort vec i r))) vec) ZPP - Programovací jazyky

  25. Algol 60 (1958-60) Algorithmic Language - J. Backus, P. Naur • bloková struktura, složené příkazy, rekurze • syntax poprvé popsána formálně gramatikou (BNF) • koncem 60. let se stal nejpopulárnějším jazykem v Evropě – např. i ve výuce • základ mnoha dalších programovacích jazyků ZPP - Programovací jazyky

  26. ALGOL 60 begin integer N; ReadInt(N); begin real array Data[1:N]; real sum, avg; integer i; sum:=0; for i:=1 step 1 until N do begin real val; ReadReal(val); Data[i]:=if val<0 then -val else val end; for i:=1 step 1 until N do sum:=sum + Data[i]; avg:=sum/N; PrintReal(avg) end end ZPP - Programovací jazyky

  27. COBOL (1960) COmmon Business Oriented Language • pro vytváření rozsáhlých programů k vládním a obchodním účelům • formalizovaný anglický text, čitelný pro manažery • zavedl propracované záznamové struktury • vytvořen konferencí CODASYL (Conference of Data Systems and Languages) • Dosud se používá zejména ve finančních institucích (ISO:2002, XML 2006) ZPP - Programovací jazyky

  28. COBOL IDENTIFICATION DIVISION. PROGRAM-ID. Iter. AUTHOR. Michael Coughlan. DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE. PROCEDURE DIVISION. Calculator. PERFORM 3 TIMES DISPLAY "Enter First Number : " ACCEPT Num1 DISPLAY "Enter Second Number : " ACCEPT Num2 DISPLAY "Enter operator (+ or *) : " ACCEPT Operator IF Operator = "+" THEN ADD Num1, Num2 GIVING Result END-IF IF Operator = "*" THEN MULTIPLY Num1 BY Num2 GIVING Result END-IF DISPLAY "Result is = ", Result END-PERFORM. STOP RUN. ZPP - Programovací jazyky

  29. BASIC (1964) Beginners All-Purpose Symbolic Instruction Code • John G. Kemeny, Thomas E. Kurz, Dartmouth University • první implementace je kompilátor (1. 5. 1964 04:00) • 1975 Tiny BASIC běží na mikropočítači s 2KB RAM • 1977 Bill Gates, Paul Allen – Altair BASIC • 1991 - VisualBasic, VBA, VBScript • 2003 - VB.NET ZPP - Programovací jazyky

  30. Pascal (1968-71) • Niklaus Wirth, ETH Zurich • jednoduchý jazyk, určen pro výuku programování • P-kód – instrukce virtuálního procesoru, specializované procesory pro P-kód • Borland Turbo Pascal (Anders Hejlsberg) • Borland Delphi -> Kylix ZPP - Programovací jazyky

  31. Další jazyky • 1980-83 Ada • 1972 C • 1972 Smalltalk • 1982-85 C++ • 1994-95 Java • 2000-02 C# ZPP - Programovací jazyky

  32. C# using System; using System.Windows.Forms; using System.Drawing; public class Sample : Form { [STAThread] public static int Main(string[] args) { Application.Run(new Sample()); return 0; } public Sample() { Button btn = new Button(); btn.Text = "OK"; Controls.Add(btn); } } ZPP - Programovací jazyky

  33. Skriptovací jazyky • Slouží obvykle k rozšíření nějaké aplikace • Operační systém – sh, command.com • WWW server – Perl, PHP • WWW prohlížeč – JavaScript, VBScript ZPP - Programovací jazyky

  34. PHP // připojení k serveru a výběr databáze mysql_connect("localhost","uzivatel","heslo"); mysql_select_db("databaze"); // dotaz $h = mysql_query("SELECT * FROM uzivatele WHERE jmeno='$jmeno'"); // vytvoření objektu z výsledného řádku $uz = mysql_fetch_object($h); if( !$uz ) die "Uživatel neexistuje"; if( $uz->heslo != $heslo ) die "Špatné heslo"; ZPP - Programovací jazyky

  35. Studijní program „Informační technologie“ • Úvod do programování (Java) • Programování v C/C++ • Programování v C# • Programovací techniky • Programovací jazyky a překladače • Seminář z programování • Funkcionální a logické programování ZPP - Programovací jazyky

More Related