Programovací jazyky 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.

Slides:



Advertisements
Podobné prezentace
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Advertisements

Programování funkcí v Excelu
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Algoritmizace od algoritmu k Pascalu.
Referát č.8 Jakub Pelikán
Fakulta elektrotechniky a informatiky
Softwarový systém DYNAST
Programovací jazyk Prolog
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Algoritmizace a programování
Principy překladačů Mezikód Jakub Yaghob.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Programování v Pascalu Přednáška 7
Základy informatiky programovací prostředky
Materiály k přednášce Úvod do programování Ondřej Čepek.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Tvorba webových aplikací
Informatika I 3. přednáška
Procedury a funkce Základní charakteristika a použití v programu.
25. ALGORITMIZACE A PROGRAMOVÁNÍ
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Základy algoritmizace a programování
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
PHP – Základy programování
Sémantická analýza Jakub Yaghob
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Simulační modely a programové vybavení. Vývoj simulačních programů  Původně pouze strojový kód –Příliš dlouhé, náročné na programátora, obtížné hledání.
Počítače a programování 1
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Programovací jazyk PASCAL
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Informatika I 1. přednáška
Od zadání úlohy k programu Výpočetní systémy I 8. přednáška.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Vytváření a realizace algoritmů Algoritmy a datové struktury
doc. RNDr. Zdeněk Botek, CSc.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
1 Programování a p. jazyky Postup při tvorbě programu (systému) –strategie –analýza ( konceptuální modely) Datová Procesní –návrh (i/o, výjimky, algoritmus)
Jazyky pro umělou inteligenci RNDr. Jiří Dvořák, CSc.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Microsoft SQL server Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
doc. RNDr. Zdeněk Botek, CSc.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Informatika I 2. přednáška
doc. RNDr. Zdeněk Botek, CSc.
PHP Programy pro tvorbu WWW stránek - 01
Visual Basic - programování
IB111 Programování a algoritmizace
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
Překladače Vnitřní struktura překladače © Milan Keršláger
Základy programování mikropočítačů První program v jazyce symbolických adres.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
Překladače 6. Sémantická analýza
Výukový materiál zpracován v rámci projektu
Překladače Syntaktická analýza
Operační systémy Vnitřní struktura překladače
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Databázové systémy a SQL
© Copyright Radim Štefan
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Překladače 6. Sémantická analýza
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Transkript prezentace:

Programovací jazyky 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

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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

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

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

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

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

ZPP - Programovací jazyky Eclipse ZPP - Programovací jazyky

ZPP - Programovací jazyky JBuilder ZPP - Programovací jazyky

ZPP - Programovací jazyky MS Visual Studio ZPP - Programovací jazyky

ZPP - Programovací jazyky 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

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

ZPP - Programovací jazyky 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

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

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

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

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

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

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

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

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky FORTRAN C C Vypocet funkce faktorial 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 INTEGER N, F, FACT READ(*,*) N F = FACT(N) WRITE(*,*) "Fact = ", F ZPP - Programovací jazyky

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky ALGOL 60 begin integer N; ReadInt(N); 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; sum:=sum + Data[i]; avg:=sum/N; PrintReal(avg) end ZPP - Programovací jazyky

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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 DISPLAY "Result is = ", Result END-PERFORM. STOP RUN. ZPP - Programovací jazyky

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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

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

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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

ZPP - Programovací jazyky 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

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