Informatyka I. Wyk lad XI. ezyki programowania

Podobne dokumenty
Informatyka 1. Języki programowania

Informatyka 1. Języki programowania

Podstawy Programowania. Języki programowania

Podstawy Programowania. Języki programowania

Podstawy Programowania

Podstawy Programowania. Języki programowania

Podstawy Programowania. Języki programowania

Podstawy Programowania. Języki programowania

Podstawy Programowania

Podstawy Programowania. Języki programowania

Podstawy Programowania

Podstawy Programowania

Informatyka I. Wyk lad II Algorytm, podstawowe notacje, typy danych i wyrażenia

Metody Realizacji Języków Programowania

Wykład 1: Wprowadzenie

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Język ludzki kod maszynowy


ć

ś Ń Ó Ż ś Ó Ó ż ś ś Ś ż ż Ć ż Ż ś ś Ó ż ż ż

Ś Ó ń ń ć ć ć ń ń ń ź ź ń Ó

Ś ć


Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

ĄĄ

Wstęp do programowania

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

ć ć ć ć Ń Ę Ś Ę Ę ć Ę ć Ń

ź Ś ć ć

*+,-./+012-3/ :;-

Wykład 1 Inżynieria Oprogramowania

Ą ń Ę Ę ź Ę Ę Ę ź Ż ź Ę ń ń ć Ę ź Ż

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Programowanie obiektowe


Programowanie Niskopoziomowe

Programowanie obiektowe

Ł Ł Ą Ą Ą Ą Ą Ą Ś Ą Ń

Ó ź ż ś Ć ŚĆ ć ś ż

Języki i metody programowania Java INF302W Wykład 2 (część 1)

ż Ż ń ć

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

ć ć Ć ć ć ć

Ż Ó

ć ć Ą

Ś

ś ść ő ś ś ń Í ś Ż ś Ó ś ś ś Ż Ż Ż ś ść ść Ć Ż ś Ó Ć ś Ć Ć Ć ś ś ś ś Ż Ż ń ś

Ł ź ź Ń ź Ś

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Ż Ń

ć ć Ż ź Ś Ó Ś ć Ś

ż ż Ł ż ć ż ż ć ć ż ż ć ż ć ż ć ć ż ć ż ć ż ż ć ż ć ć ż ć ż ż

Ó Ż Ń Ń ć ż ć Ż Ż ć ż Ż ć

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania

Ż Ż Ż ń Ż ć


ń Ś ń ń ż ń ń ń ń Ć Ó ż ń ź ż

Ż ż Ź ś ż ż ś Ą Ą Ź ż Ż ś ż ż Ż Ż ż ć ś ś ć ć Ń ź ś Ż ć ż ż ś ś ś

Ó ć ć ż ć ć ż

Ą Ą Ś Ń Ć Ó Ą Ą

ć Ó

Ś Ę Ę

ć ć Ś Ę ć Ż ć ć ć Ż Ż Ż Ć ć Ź Ś ć ć ć ć ć Ż

Ż Ż ź ć ć Ż Ż Ż Ą Ż Ż ź

ś ź ż ć ż ź Ą ć Ą ż ś

ć Ż ń ń Ó Ż ń ń ń ż ń Ż ż Ż ń ń ć ń ń ń Ż ń ż ń ń Ś

Ę Ę ź Ż Ę Ż ć Ę ć Ż ń ś Ź Ż

Ó Ó Ę

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Ś ź

Wprowadzenie do UML, przykład użycia kolizja

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

ć Ń ż ć ŚĆ

Poniżej 14 r.ż. 1 (0,5%) 1 (0,9%) r.ż. 11 (6,0%) 21 (18,9%) r.ż. 59 (32,2%) 44 (39,6%) r.ż. 38 (20,8%) 15 (13,5%) Powyżej 25 r.ż.

Ą Ł Ł Ł ĄĄ Ą Ł Ą Ń Ń Ń

Microsoft IT Academy kurs programowania

Języki i metody programowania Java. Wykład 2 (część 2)

Języki programowania do zastosowań biomedycznych

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Ż ś ś

Ł Ł ź ź ź Ł ź ź ź Ą

Programowanie. Technologie Informacyjne

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Tworzenie aplikacji w języku Java

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Języki programowania Język programowania Język maszynowy Kod maszynowy

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Programowanie 2. Język C++. Wykład 3.

Ż Ó ń ć

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Ń Ś Ó Ó Ć Ś ŃŃ Ó Ą

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Paradygmaty programowania. Paradygmaty programowania

Programowanie współbieżne i rozproszone

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Transkrypt:

Informatyka I Wyk lad XI Zagadnienia: generacje jezyków progamowania, kod maszynowy, asembler, drzewo genealogiczne jezyków wysokiego poziomu, jezyki: imperatywne, aplikatywne, deklaratywne, symboliczne, obiektowe; środowiska programistyczne, jezyki idealnie nieproceduralne, generatory aplikacji, inteligentne systemy wiedzy.

Generacje j ezyków progamowania Pierwsza generacja kod maszynowy Druga generacja asemblery Trzecia generacja j ezyki wysokiego poziomu ezyki imperatywne (proceduralne) ezyki aplikatywne (funkcjonalne) ezyki deklaratywne (regu lowe) ezyki symboliczne ezyki obiektowe ;-) Generacja trzy i pó l środowiska programistyczne Czwarta generacja j ezyki idealnie nieproceduralne, generatory aplikacji Piata generacja inteligentne systemy wiedzy Przyk lady j ezyków wysokiego poziomu ezyki imperatywne (proceduralne) Fortran, COBOL, C ezyki aplikatywne (funkcjonalne) Lisp, Scheme ezyki deklaratywne (regu lowe) Prolog, CLIPS ezyki symboliczne Lisp, Prolog, Mathematica, Maple ezyki obiektowe Smalltalk, Ada95, Lisp, C++, Java Środowisko programistyczne j ezyk programowania wysokiego poziomu + wbudowane funkcje dla systemów informacyjnych (obs luga ekranu, bazy danych itp.) + interfejs graficzny buildery i wizardy 1

Drzewo genealogiczne j ezyków wysokiego poziomu (domniemane) "!# $&%')(*,+-.&/10 2135476 _`ba1c Œ 89 :<; =">?@ A BDC EF G H&IJ)KLNM O ŽX t P&QR)ST)U VXW Y[Z \ ] ^ wdx y,z { } dxegf h i j"k l m npo q Nƒ ˆŠ ~ rtsutv 2

Kod maszynowy i asemblery Dodanie dwóch liczb na MC68HC705J1A (Motorola, 8-bitowy) Kod maszynowy Asembler Komorka Pamieci Zawartosc 0300 A6 0301 02 0302 AB 0303 02 0304 CC 0305 03 0306 04 07FE 03 07FF 00 To samo w S-rekordach S10C0300A602AB02CC0304C8 S10507FE0300F2 S9030000FC org $0300 DODAJ lda #2 ;zaladuj do akumulatora 2 add #2 ;dodaj do akumulatora 2 PETLA jmp PETLA ;skocz do PETLA org $07FE dw DODAJ ;adres startu po resecie Po przetworzeniu 0300 1 org $0300 0300 A602 2 DODAJ lda #2 0302 AB02 3 add #2 0304 CC0304 4 PETLA jmp PETLA 07FE 5 org $07FE 07FE 0300 6 dw DODAJ Symbol Table PETLA 0304 DODAJ 0300 3

ezyk imperatywny C int dodaj() { int a = 2; int b = 2; return(a + b);} int l = dodaj(); ezyki wysokiego poziomu ezyk aplikatywny Lisp (defun dodaj() ;aplikatywnie ((lambda (x y) (+ x y)) 2 2)) (defun dodaj() ;imperatywnie (let (x y)(setq x 2)(setq y 2)(+ x y))) (dodaj) ezyk deklaratywny Prolog dodaj(x) :- X is 2 + 2. dodaj(x). ezyk symboliczny Mathematica dodaj := Module[{a = 2, b = 2}, a + b]; l = dodaj; ezyk obiektowy C++ class CDodaj { public: int a; int b; CDodaj() { a = 2; b = 2;}; int Dodaj() { return(a + b);} }; /*statycznie*/ Cdodaj d; int l = d.dodaj(); /*dynamicznie*/ Cdodaj *d = new CDodaj; int l = d->dodaj(); 4

ezyki czwartej generacji Elementy sk ladowe jezyka czwartej generacji: fizyczny s lownik danych formater ekranu generator raportów jezyk zapytań specyfikator dialogu generator kodu jezyk wysokiego poziomu ezyki czwartej generacji: CASE Computer Aided Software Engineering Oracle Komercyjny pakiet zawierajacy: maszyne relacyjnej bazy danych; interfejs bazy danych narzedzia do integracji baz danych z jezykami wysokiego poziomu; kreator formularzy; kreator raportów; kreator reprezentacji graficznych; narzedzia do wyszukiwania UML Unified Modeling Language 5

UML Dodanie dwóch liczb! #"%$&')(!*,+,-)./ Symulacja systemu robotycznego "!#%$& ')(*+,.-/ 021436587)9;:< =>? @BACD2EF)G;HÏ J;K L MN OQP8R;SUTV;W;XY;Z [ \] aub-cxdefkg \ ] ^ _ ` hjikl3mknporq s/t uwv-x yz{ } ~ ƒ! - ˆŠŒ - Ž* * 3 E Œ š œž Ÿ-3 Ÿž; ; ÌÎÍ Ï Ð Ñ Ò K K 3 «ª * * ±²/³ µ! - ¹º»¼Œ½-¾ *À*Á3 ÃÄ ÅÆ*Ç*È-É/Ê3Ë SUT-VXWYZK[! "$#&%('*)+-,/.0/132 465/7/8$9:;-</=>-? @A3B CED*F-GIHKJ-L-MN-O PQ3R üîý þ(ÿ ÓÕÔ ÖØÚÙKÛÜ Ý«Þ ßà*á â*ãäå/æ ç èé êë*ì*í-î/ï3ð ñòó-ô õöi ùø3ú3û f œ ^ _a`b4c dfeg h ibj8kmln o)pq r s.tu v6wxmyz { }~8 ƒ Q ; 6ˆŠ Œ ;Ž 8 ; ; š Diagram klas Do tego należy utworzyć: diagram obiektów diagram implementacji diagram rozmieszczenia diagram zachowań diagram sekwencji diagram interakcji 6

C++ class CRobot { private: int id public: char Nazwa[42]; CStan Stan; CPrzegub *Przeguby; CRezolwer *Rezolwery; CKolejka *Kolejka = NULL; Symulacja systemu robotycznego cd. CRobot() { Przeguby=new CPrzegub[5]; /*...*/ Inicjuj(); /*...*/}; int KolejkaZadan(){/* definicja */}; int DodajZadanie(/*...*/){/* def. */}; int UsunZadanie(/*...*/){/* def. */};}; CRobot *Robot1 = new CRobot; try{robot1.dodajzadanie(/*...*/);} catch(cexception blad){/* obsluga */} C struct SRobot { int id char Nazwa[42]; SStan Stan; SPrzegub *Przeguby; SRezolwer *Rezolwery; SKolejka *Kolejka = NULL;}; int DodajRobota(SRobot *Robot) { Robot = malloc(sizeof(srobot)); Robot->Przeguby=malloc(5*sizeof(SPrzegub)); Inicjuj(); /*...*/}; int UsunRobota(SRobot *Robot){/*...*/}; int KolejkaZadan(/*...*/){/* def. */}; int DodajZadanie(/*...*/){/* def. */}; int UsunZadanie(/*...*/){/* def. */};}; SRobot *Robot1; DodajRobota(Robot1); if blad = DodajZadanie(/*...*/) then /* obsluga */ 7

Symulacja systemu robotycznego cd. Asembler i kod maszynowy 98: float CRobot::UstalKrok(float Krok, int Kp) 99: { 00402828 push ebp 00402829 mov ebp,esp 0040282B sub esp,0ch 0040282E mov dword ptr [ebp-8],ecx 100: float delta = 0.001; 00402831 mov dword ptr [delta],3a83126fh 101: switch(kp){ 00402838 mov eax,dword ptr [Kp] 0040283B mov dword ptr [ebp-0ch],eax 0040283E cmp dword ptr [ebp-0ch],0 00402842 je CRobot::UstalKrok(0x0040284c)+24h 00402844 cmp dword ptr [ebp-0ch],1 00402848 je CRobot::UstalKrok(0x00402857)+2Fh 0040284A jmp CRobot::UstalKrok(0x00402862)+3Ah 102: case 0: Krok += delta; 0040284C fld dword ptr [Krok] 0040284F fadd dword ptr [delta] 00402852 fstp dword ptr [Krok] 103: break; 00402855 jmp CRobot::UstalKrok(0x00402869)+41h 104: case 1: Krok -= delta; 00402857 fld dword ptr [Krok] 0040285A fsub dword ptr [delta] 0040285D fstp dword ptr [Krok] 105: break; 00402860 jmp CRobot::UstalKrok(0x00402869)+41h 106: default: Krok = 0.012; 00402862 mov dword ptr [Krok],3C449BA6h 107: } 108: return Krok; 00402869 fld dword ptr [Krok] 109: } 0040286C mov esp,ebp 0040286E pop ebp 0040286F ret 0Ch 8

ezyki symboliczne Mathematica Sqrt[4] 2 Sqrt[ 4] 2i Sqrt[a] a Sqrt[a]ˆ2 + a + 3b + 5b 2a + 8b Solve[xˆ2 + 5x + 4 == 0, x] {{x 4}, {x 1}} Solve[axˆ2 + bx + c == 0, x] {{ x b } {, x b+ b 2 4ac 2a b 2 4ac 2a }} Solve[Sqrt[x] + a == 2x, x] {{ x 1 8 ( 1 + 4a 1 + 8a )}, { x 1 8 ( 1 + 4a + 1 + 8a )}} Integrate[Sqrt[x] Sqrt[a + x], x] (a ) x a + x 4 + x3/2 2 1 4 a2 log [ ] x + a + x x a + xdx (a ) x a + x 4 + x3/2 2 1 4 a2 log [ ] x + a + x NDSolve[{x [t]+x[t]ˆ3 == sin[t], x[0] == x [0] == 0}, x, {t, 0, 50}] {{x InterpolatingFunction[{{0., 50.}}, <>}} ParametricPlot[Evaluate[{x[t], x [t]}/.%], {t, 0, 50}]; -2-1 1 2 1-1 -2 9

ezyki symboliczne Mathematica ParametricPlot3D[{u cos[u](4 + cos[v + u]), u sin[u](4 + cos[v + u]), u sin[v + u]}, {u, 0, 4π}, {v, 0, 2π}, PlotPoints {60, 12}]; 10 0-10 -25 0 25 50-40 0-20 20 40 Show[Graphics3D[Flatten[Table[If[Mod[Multinomial[x, y, z], 2] == 1, Cuboid[1.2{x, y, z}], {}], {x, 0, 15}, {y, 0, 15}, {z, 0, 15}]]]] 10

Inne j ezyki ezyki opisu strony html, TEX/L A TEX ezyki manipulowania tekstem sed, awk meta-j ezyki Lex/Flex, Yacc/Bison APL A Programming Language FIB N [1] A 1 1 [2] 2 N>ϱA A, +/ 2 A Zagadnienia pokrewne Klasyfikacja styli programowania programowanie transformacyjne programowanie reaktywne styl imperatywny bez i z procedurami styl imperatywny z modu lami/pakietami styl obiektowy styl aplikatywny styl programowania sterowanego danymi Techniki i metody tworzenia systemów informacyjnych Planowanie i zarzadzanie systemami informacyjnymi Ocena systemów informacyjnych Wi ecej w Paul Beynon-Davies, Inżynieria systemów informacyjnych, WNT 1999. 11