Programovac - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Programovac

Description:

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_at_vsb.cz – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 36
Provided by: Mirosl74
Category:

less

Transcript and Presenter's Notes

Title: Programovac


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_at_vsb.cz

2
Obsah
  • Co je to programovací jazyk
  • Preklad a zpracování programu
  • Nástroje pro tvorbu programu
  • Metody popisu programovacích jazyku
  • Typy programovacích jazyku
  • Vývoj programovacích jazyku
  • Studijní program Informacní technologie
  • (text prevzat od doc. Beneše)

3
Programovací jazyk
  • Popis výpoctu, obvykle ve tvaru, jenž umožnuje
    provedení elektronickým pocítacem (program)
  • Standardizovaný nástroj pro komunikaci s
    pocítacem
  • S jakými daty má pocítac pracovat?
  • Jak se tato data budou ukládat a prenášet?
  • Které akce a kdy se mají provést?

4
Proc používáme programovací jazyky?
  • Zjednodušují prenos urcitého typu informace
  • Noty v hudbe
  • Matematické formule
  • Elektrotechnická schémata
  • Vyznacují se velkou presností vyjádrení
  • Prirozené jazyky vynechávání, gramatické chyby,
    víceznacnost
  • Jsou obvykle proveditelné na pocítaci
  • Znackovací jazyky (HTML) data, ne program
  • Specifikacní jazyky (?-kalkul) teoretický výzkum

5
Preklad a zpracování programu
Ladení
Neúspešné testy
Zdrojový text programu
Preklad a sestavení
Testování
Provoz
Chyby pri prekladu
Chyby za provozu
6
Nástroje pro tvorbu programu
  • Editor
  • Prekladac / interpret x zpetný prekladac
  • Spojovací program (linker)
  • Správa verzí CVS, Subversion,
  • Ladicí program (debugger)
  • Nástroje pro ladení výkonu (profiler)
  • Testovací nástroje, generátory testu
  • Generátor instalacních balíku
  • Nástroje pro internacionalizaci (i18n)

7
Integrovaná vývojová prostredí (IDE)
  • Poskytují více uvedených funkcí soucasne
  • Prostredí orientovaná na urcitý jazyk
  • Borland Pascal, C, JBuilder, CBuilder
  • SharpDeveloper, JCreator, NetBeans
  • Univerzální prostredí
  • Eclipse (Java, C, C, )
  • MS Visual Studio (C, C, Jscript, VB, )

8
Eclipse
9
JBuilder
10
MS Visual Studio
11
Prekladac
  • Analýza zdrojového textu, vyhledání chyb
  • Základní stavební prvky identifikátory, císla,
    retezce, operátory, oddelovace,
  • Programové konstrukce deklarace, prí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)

12
Preklad C
13
Prekladac
  • Inkrementální preklad
  • Umožnuje po drobné oprave preložit jen zmenenou
    cást
  • Možnost provádení drobných zmen behem ladení
    programu
  • Just-in-time preklad
  • Generování instrukcí virtuálního procesoru (Java
    VM - .class, .NET CLR jazyk IL)
  • Preklad až v okamžiku volání podprogramu
  • Optimalizace podle konkrétního procesoru

14
Popis programovacího jazyka
  • Syntaxe - struktura jazykových konstrukcí
  • Textové jazyky (C, Pascal, Java)
  • Grafické jazyky (vývojové diagramy, UML)

a gt 10
ne
if a gt 10 then begin x x 5 end
ano
x x 5
15
Popis programovacího jazyka
  • Sémantika význam jazykových konstrukcí
  • Statická sémantika v dobe prekladu
  • Dynamická sémantika v dobe behu
  • Príklad Co znamená X 1 ?
  • X je celé císlo Pricti k hodnote promenné X
    jednicku.
  • X je retezec Preved konstantu 1 na retezec a
    pripoj na konec retezce uloženého v promenné X.
  • X je objekt Zavolej metodu "operator s
    parametrem 1.
  • X je reálné císlo Preved 1 na reálné císlo 1.0 a
    pricti k hodnote promenné X.

16
Metody popisu syntaxe
  • Syntaktický diagram
  • Gramatika
  • príkaz ? if podmínka then príkaz zbytek
  • zbytek ? else príkaz
  • e

if
podmínka
then
príkaz
else
príkaz
17
Metody popisu sémantiky
  • Slovní popis
  • Nepresný
  • Formální popis
  • Operacní sémantika
  • Význam konstrukce popíšeme pomocí jednodušších
    operací
  • Denotacní sémantika
  • Význam konstrukce popíšeme pomocí funkcí

18
Typy programovacích jazyku
  • Imperativní jazyky
  • Posloupnost príkazu menících stav výpoctu
  • Možnost opakovaného prirazení do promenné
  • Deklarativní jazyky
  • Posloupnost podmínek
  • Pocítac musí najít postup, jak je dodržet
  • Funkcionální jazyky ML, Haskell, LISP
  • Logické jazyky PROLOG, CLP, Gödel, Mercury
  • Dotazovací jazyky - SQL

19
Vývoj programovacích jazyku
  • Strojové jazyky
  • Posloupnost instrukcí v císelném tvaru
  • Jazyky symbolických instrukcí / adres
  • Pojmenované instrukce
  • Pojmenované adresy promenné, náveští skoku
  • Makrodefinice
  • Autokódy
  • Složitejší príkazy
  • Príklad MAT (Minsk autokód CTI, PIS, JDI NA,
    )
  • Vyšší 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í pocítacový jazyk skutecne použitý na
    elektronickém zarízení
  • urcen pro zadávání rovnic
  • "rucne kompilovaný" jazyk
  • 1951 Grace Murray Hopper
  • prosazovala vytvorení vyšších jazyku
  • pracovala na návrhu prvního prekladace
  • zavedla pojem "pocítacový virus"

21
FORTRAN (1954-57)
  • FORmula TRANslator - John Backus, IBM
  • problémove orientovaný, strojove znacne
    nezávislý, optimalizace (nutná v konkurenci s
    JSI)
  • realizace prekladace si vyžádala 18 clovekoroku -
    jeden z nejvetších projektu v té dobe
  • V soucasnosti stále nejpoužívanejší jazyk v
    oblasti vedeckotechnických výpoctu! (ISO 1997)

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

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, )

24
LISP
  • (defun quicksort (vec l r)
  • (let ((i l)
  • (j r)
  • (p (svref vec (round ( l r) 2))))
  • (while (lt i j)
  • (while (lt (svref vec i) p) (incf i))
  • (while (gt (svref vec j) p) (decf j))
  • (when (lt i j)
  • (rotatef (svref vec i) (svref vec j))
  • (incf i)
  • (decf j)))
  • (if (gt (- j l) 1) (quicksort vec l j))
  • (if (gt (- r i) 1) (quicksort vec i r)))
  • vec)

25
Algol 60 (1958-60)
  • Algorithmic Language - J. Backus, P. Naur
  • bloková struktura, složené príkazy, rekurze
  • syntax poprvé popsána formálne gramatikou (BNF)
  • koncem 60. let se stal nejpopulárnejším jazykem v
    Evrope napr. i ve výuce
  • základ mnoha dalších programovacích jazyku

26
ALGOL 60
  • begin
  • integer N
  • ReadInt(N)
  • begin
  • real array Data1N
  • real sum, avg
  • integer i
  • sum0
  • for i1 step 1 until N do
  • begin real val
  • ReadReal(val)
  • Dataiif vallt0 then -val else val
  • end
  • for i1 step 1 until N do
  • sumsum Datai
  • avgsum/N
  • PrintReal(avg)
  • end

27
COBOL (1960)
  • COmmon Business Oriented Language
  • pro vytvárení rozsáhlých programu k vládním a
    obchodním úcelum
  • formalizovaný anglický text, citelný pro manažery
  • zavedl propracované záznamové struktury
  • vytvoren konferencí CODASYL (Conference of Data
    Systems and Languages)
  • Dosud se používá zejména ve financních
    institucích (ISO2002, XML 2006)

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

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
    0400)
  • 1975 Tiny BASIC beží na mikropocítaci s 2KB RAM
  • 1977 Bill Gates, Paul Allen Altair BASIC
  • 1991 - VisualBasic, VBA, VBScript
  • 2003 - VB.NET

30
Pascal (1968-71)
  • Niklaus Wirth, ETH Zurich
  • jednoduchý jazyk, urcen 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 -gt Kylix

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

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)

33
Skriptovací jazyky
  • Slouží obvykle k rozšírení nejaké aplikace
  • Operacní systém sh, command.com
  • WWW server Perl, PHP
  • WWW prohlížec JavaScript, VBScript

34
PHP
  • // pripojení k serveru a výber databáze
  • mysql_connect("localhost","uzivatel","heslo")
  • mysql_select_db("databaze")
  • // dotaz
  • h mysql_query("SELECT FROM uzivatele
    WHERE jmeno'jmeno'")
  • // vytvorení objektu z výsledného rádku
  • uz mysql_fetch_object(h)
  • if( !uz ) die "Uživatel neexistuje"
  • if( uz-gtheslo ! heslo ) die "Špatné heslo"

35
Studijní program Informacní technologie
  • Úvod do programování (Java)
  • Programování v C/C
  • Programování v C
  • Programovací techniky
  • Programovací jazyky a prekladace
  • Seminár z programování
  • Funkcionální a logické programování
Write a Comment
User Comments (0)
About PowerShow.com