katedra informatiky FEI VŠB-TUO Standardizovaný nástroj pro komunikaci

Podobné dokumenty
Programovací jazyky. Obsah. Proč používáme programovací jazyky? Programovací jazyk

Programovací jazyky. Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 /

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Úvod. Co je to programovací jazyk? Proč studovat programovací jazyky? Klasifikace jazyků

doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Úvod. Proč studovat programovací jazyky? Klasifikace jazyků. Co je to programovací jazyk?

Základy programování Programovací jazyky. doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

IB111 Programování a algoritmizace. Programovací jazyky

Programovací jazyky. Ing. Marek Běhálek Katedra informatiky FEI VŠB-TUO A-1018 /

Úvod do jazyka C. Proč jazyk C

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

IB111 Úvod do programování skrze Python Přednáška 13

Program a životní cyklus programu

Algoritmizace a programování

Algoritmizace. Cíle předmětu

Dotazování nad stromem abstraktní syntaxe

Programování - úvod. Programování. Proces programování. Vlastnosti dobrého programu: Kapitola seznamuje se základními pojmy programování.

Jaký programovací jazyk učit jako první a jak ho učit?

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Algoritmizace a programování

11. Přehled prog. jazyků

4.3 Operace nad ordin ln mi datov mi typy Operace nad logick m datov m typem Operace nad celo seln mi datov mi typy

Generování vnitřní reprezentace programu

Skriptovací jazyky. Obsah

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Programovací jazyk univerzální notace pro zápis algoritmů, implementována.

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

DTP Základy programování Úvod do předmětu

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

2C Tisk-ePROJEKTY

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

1. Úvod. Podmínky absolvování

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

Matematika v programovacích

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Softwarové komponenty a Internet

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Maturitní otázky z předmětu PROGRAMOVÁNÍ

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Úvod. Programovací paradigmata

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

Elektronické publikování. Základní pojmy. B žné systémy. Publika ní nástroje. doc. RNDr. Petr Šaloun, Ph.D. FEI VŠB TU Ostrava

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Algoritmus (nebo dřívějším pravopisem algorithmus)

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Algoritmizace a programování

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Úvod do programovacích jazyků (Java)

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

IB111 Úvod do programování skrze Python Přednáška 13

Programovací jazyk Pascal

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Úvod do programování

První kapitola úvod do problematiky

Základní stavební prvky algoritmu

1. Úvod. Obsah předmětu =komparativní studie program. jazyků

Programovací jazyky Přehled a vývoj

Novinky ve Visual Studio Tomáš Kroupa

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Úvod do programování - Java. Cvičení č.4

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

3 KTE / ZPE Informační technologie

Informatika Algoritmy

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

KTE / ZPE Informační technologie

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Algoritmy a jejich znázorňování.

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Programovací jazyk C# Úvod do programování v C#

Denotační sémantika. Marek Běhálek

Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.

VISUAL BASIC. Přehled témat

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

Abstraktní datové typy: zásobník

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Paradigmata programování II Korutiny a nedeterminismus

Struktura programu v době běhu

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Programovací jazyk Úvod do programování v C#

Vstupní požadavky, doporučení a metodické pokyny

Informační systém pro rezervaci pokojů hotelu SPORT

Programovací jazyk C# Úvod do programování v C#

PARADIGMATA PROGRAMOVÁNÍ 2 KORUTINY, NEDETERMINISMUS

1 Webový server, instalace PHP a MySQL 13

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Transkript:

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 3 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 4 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 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 2

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 7 Eclipse ZPP - Programovací jazyky 8 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 5 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 6

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 11 P eklad C++ ZPP - Programovací jazyky 12 JBuilder ZPP - Programovací jazyky 9 MS Visual Studio ZPP - Programovací jazyky 10

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 15 Metody popisu syntaxe Syntaktický diagram if podmínka then p íkaz else p íkaz Gramatika p íkaz if podmínka then p íkaz zbytek zbytek else p íkaz ZPP - Programovací jazyky 16 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 13 Popis programovacího jazyka Syntaxe - struktura jazykových konstrukcí Textové jazyky (C, Pascal, Java) Grafické jazyky (vývojové diagramy, UML) ano a > 10 x := x + 5 ne if a > 10 then begin x := x + 5; end ZPP - Programovací jazyky 14

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 19 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 20 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 17 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 18

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 23 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 24 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 Vsou asnosti stále nejpoužívan jší jazyk v oblasti v deckotechnických výpo t! (ISO: 1997) ZPP - Programovací jazyky 21 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 22

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 27 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 28 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 25 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 26

Další jazyky 1980-83 Ada 1972 C 1972 Smalltalk 1982-85 C++ 1994-95 Java 2000-02 C# ZPP - Programovací jazyky 31 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 32 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 29 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 30

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 35 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 33 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 34