Formalne modele protokołów i usług

Wielkość: px
Rozpocząć pokaz od strony:

Download "Formalne modele protokołów i usług"

Transkrypt

1 Formalne modele protokołów i usług Model procesu komunikacyjnego: rozszerzony automat skończony Najczęściej przyjmowanym formalnym modelem procesu komunikacyjnego jest model rozszerzonego automatu skończonego. Proces komunikacyjny opisuje się jako złożenie przejść między stanami procesu, ktore można opisać dwoma funkcjami: gdzie: s( n+ ) = f ( s( n), x( n)) y( n) = g( s( n), x( n)) s(n) - stan procesu po n-tym zdarzeniu - funkcja - funkcja przejscia wyjscia x(n) - n-te zdarzenie (sygnał wejściowy, pobudzenie) y(n) - reakcja na n-te zdarzenie (sygnały wyjściowe). Rys 1 ilustruje funkcję przejścia procesu. Nowy stan procesu po zajściu zdarzenia zależy tylko i wyłącznie od rodzaju zdarzenia x i stanu procesu w chwili zajścia tego zdarzenia.. x (n) q s (n+1) j s (n) i x (n) p s (n+1) k t Zablokowanie zdarzeń n+1-sze zdarzenie Rys 3.1 Ilustracja funkcji przejścia procesu Procesy komunkacyjne mają strukturę, którą można modelować przy użyciu automatu skończonego. Stany automatu są związane z oczekiwaniem na zdarzenia (komunikaty) wytwarzane przez współpracujące procesy lub otoczenie systemu. Reakcje automatu są również komunikatami. Graf przejść dla procesu inicjującego połączenie w przykładzie podanym w poprzednim rozdziale przedstawia rysunek. Rysunek 3 przedstawia graf przejść między stanami dla procesu odbierającego z tego samego przykładu.

2 I O N P Rys. 3.2 Graf przejść procesu inicjującego połączenie z przykładu I O N Rys. 3.3 Graf przejść procesu odbierającego z przykładu Inżynieria oprogramowania komunikacyjnego 2

3 SDL SDL (Specification and Description Language) jest najstarszą metoda formalnej specyfikacji protokołów. Opracowano ja pod koniec lat sześćdziesiątych do opisu protokołów połączeń telefonicznych. Metoda ta jest objęta Zaleceniem CCITT od roku Jej obecna wersja [CCITT 92] jest wynikiem stałych prac grupy XI CCITT. Najczęściej stosowana jest wersja SDL z roku Ze względu na to, że SDL był opracowany do opisu protokołów połączeń telefonicznych, miał być zrozumiały przede wszystkim dla użytkowników systemow telefonicznych. Spowodowało to istnienie dwóch równorzędnych reprezentacji specyfikacji wykonanej w SDL [Rockst 82]: graficznej, tekstowej. U podstaw wszystkich tych reprezentacji leży oczywiście ten sam model formalny systemu. W dalszej części będziemy omawiali obie reprezentacje języka jednocześnie. Elementy języka Zasadniczym elementem języka jest proces. Procesy sa środkami reprezentacji dynamicznego zachowania się systemu. Zakłada się, że procesy wykonywane sa współbieżnie. Procesy oczekują w dyskretnych stanach na sygnały ze swego otoczenia. Proces działa tylko w odpowiedzi na zewnatrzne dyskretne pobudzenia i wynikiem jego działalności jest wysłanie dyskretnej odpowiedzi do otoczenia. Po odebraniu sygnału pobudzenia proces dokonuje zmiany stanu (tranzycji). Podczas zmiany stanu proces realizuje akcje w trakcie, w których przetwarza odebraną i lokalną informację oraz wysyła sygnały (odpowiedzi) do innych procesow i do otoczenia systemu. Odpowiedź ta jest odbierana przez określone procesy jako pobudzenie. proces (STATE) sygnał pobudzenia (INPUT) sygnał reakcji (OUTPUT) sygnał upływu czasu (TIMER) Podstawowymi elementami opisu zachownia się procesu na tym poziomie są: stany, sygnały wejściowe i sygnały wyjściowe. Bieżący stanu procesu: Reprezentacja graficzna: Reprezentacja tekstowa: Nazwa_stanu STATE Nazwa_stanu; Inżynieria oprogramowania komunikacyjnego 3

4 Następny stan procesu: NEXTSTATE Nazwa_stanu; Nazwa_stanu Sygnał wejściowy (pobudzenie): Reprezentacja graficzna: Reprezentacja tekstowa: Sygnał wejściowy INPUT Syganł_wejściowy; Sygnał wyjściowy (reakcja): Reprezentacja graficzna: Reprezentacja tekstowa Sygnał wyjściowy OUTPUT Sygnał_wyjściowy; Komentarz: Reprezentacja graficzna: Reprezentacja tekstowa Komentarz /* Komentarz */ Inżynieria oprogramowania komunikacyjnego 4

5 Przykład: Reprezentacja graficzna: Reprezentacja tekstowa Nazwa stanu Sygnał wejściowy Sygnał wyjściowy Komentarz Komentarz STATE Nazwa_stanu; INPUT Syganł_wejściowy; /* Komentarz */ OUTPUT Sygnał_wyjściowy; /* Komentarz */ NEXTSTATE Nazwa_stanu; Nazwa stanu Zamiast nazwy stanu może wystąpić symbo, o specjalnym znaczeniu. Definicja języka przewiduje wystąpenie dwóch takich symboli: gwiazdki (*) i myślnika (-). Pierwszy z nich oznacza dowolny stan procesu, a drugi stan poprzedni procesu. Symbol gwiazdki znajduje zastosowanie we wszystkich takich sytuacjach, w których reakcja procesu na pewne pobudzenie jest identyczna niezależnie od stanu, w którym ten proces się znajduje. Przykładem takiego działania może być rozłączenie połączenia, po którym następuje powrót procesu do stanu początkowego. Konwencja gwiazdkowa (akcja dla każdego stanu procesu): Reprezentacja graficzna: Reprezentacja tekstowa * STATE *; Inżynieria oprogramowania komunikacyjnego 5

6 Przykład: Reprezentacja graficzna: Reprezentacja tekstowa * Rozłącz STATE *; INPUT Rozłącz; OUTPUT Potwierdzenie; NEXTSTATE Przerwany; Potwierdzenie Przerwany Cechą charakterystyczną grafu poprawnie działającego procesu jest istnienie cykli zawierających stan początkowy procesu. Cecha ta jest związana z wymaganiem by z każdego stanu procesu komunikacyjnego istniała droga powrotu do stanu, od którego proces rozpoczął swoje działanie. Brak takiej drogi oznaczałby możliwość wejścia w stan, z którego nie było by wyjścia. Przykład takiego grafu przedstawia rys. 3.. Konwencja gwiazdkowa czasami pozwala na zrealizowanie tego wymagania. S 0 S 1 S 2 S 3 S 5 S 4 Rys. 3.4 Graf procesu z cyklami zawierającymi stan początkowy Użycie myślnika jest równoważne pozostaniu procesu w stanie, w którym się znajduje. Konwencja kreskowa (powrót do stanu początkującego akcję): Reprezentacja graficzna: Reprezentacja tekstowa NEXTSTATE -; - Inżynieria oprogramowania komunikacyjnego 6

7 Przykład: Tekst Znak STATE Tekst; INPUT Znak; OUTPUT Echo_znaku; NEXTSTATE -; Echo_znaku - Zastosowanie konwencji ilustruje rysunek 3.. S 1 S 2 S 3 Rys 3. Pozostanie w stanie s1 Szczególną rolę w opisie zachowania procesów komunikacji zajmuje stan początkowy procesu i dlatego w definicji języka SDL zaproponowano oddzielny symbol do jego oznaczenia. Rozpoczęcie opisu procesu: Reprezentacja graficzna: Reprezentacja tekstowa START START Nazwa_stanu; Przy specyfikowaniu procesów fragmenty specyfikacji umieszczone na różnych stronach łączy się łącznikami. Łączniki pomiędzy stronami specyfikacji: Inżynieria oprogramowania komunikacyjnego 7

8 Zakończenie o etykiecie A na stronie 1 i kontynuacja od etykiety A na stronie 2 Reprezentacja graficzna: Reprezentacja tekstowa A1 A1 JOIN A1;... A1:... Zmienne: Predefiniowane typy zmiennych INTEGER NATURAL - typ liczb całkowitych - typ liczb naturalnych BOOLEAN CHARACTER REAL PID DURATION TIMER TIME CHARSTRING ARRAY POWERSET - typ wartości logicznych - typ znaku - typ liczb rzeczywistych - typ identyfikatora procesu - typ przedziału czasu - typ zegara - typ chwili czasu - typ łańcucha znakowego - typ macierzowy - zbiór podzbiorów Deklaracje zmiennych i typów danych oraz różne teksty, które nie są komentarzami Reprezentacja graficzna: Reprezentacja tekstowa DCL Wartosc INTEGER; Tekst CHARSTRING; DCL Wartosc INTEGER; Tekst CHARSTRING; Inżynieria oprogramowania komunikacyjnego 8

9 Zadanie: Reprezentacja graficzna: Reprezentacja tekstowa Wartosc := 1... Wartosc := Wartosc + 1 Wartosc:=1;... Wartosc:=Wartosc+1; Decyzja: Reprezentacja graficzna: Reprezentacja tekstowa Warunek Warianty odpowiedzi DECISION Warunek (Wariant_1): Zadanie_1; (Wariant_2): Zadanie_2; (Wariant_3): Zadanie_3; ENDDECISION; Warunek Warianty odpowiedzi DECISION Warunek (Wariant_1): Zadanie_1; (Wariant_2): Zadanie_2; (Wariant_3): Zadanie_3; (Wariant_4): Zadanie_4; (Wariant_5): Zadanie_5; ENDDECISION; Przykłady: <0 >0 Wartosc? Włączony? Nie =0 Tak Inżynieria oprogramowania komunikacyjnego 9

10 Reprezentacja graficzna: Reprezentacja tekstowa Liczba odebranych znaków DECISION "Liczba odebranych znaków" (1):..; (2:5):...; >7 (6):...; (7):...; ELSE:...; ENDDECISION; Pomiar czasu: Wszystkie procesy w systemie i jego otoczniu mają dostęp do zegarów (zmiennych typu TIMER) odmierzających czas bezwzględny. Wartości czasu można przetwarzać w zmiennych typu TIME. TIMER SET RESET NOW - typ zegara - procedura ustawienia zegara - procedura zatrzymania i wyzerowania zegara - zmienna typu TIME o wartości odpowiadającej chwili bieżącej Reprezentacja graficzna: DCL T TIMER; ODSTEP TIME; SET (NOW+ODSTEP,T) Reprezentacja tekstowa DCL T TIMER; Odstep TIME;... Potwierdzenie SET(NOW+Odstep,T); NEXTSTATE Potwierdzenie; Timeout STATE Potwierdzenie; INPUT Potwierdzenie; Potwierdzenie T INPUT T; /*Timeout */ RESET T Inżynieria oprogramowania komunikacyjnego 10

11 Przykład PROCESS Inicjator; DCL Licznik INTEGER; Dane TypISDU; Num, Numer INTEGER; T TIMER; SYNONIM P DURATION = 5; START Przerwany; STATE Przerwany; INPUT (ICONreq); Licznik:=1; SET (NOW+P,T); OUTPUT (CR); NEXTSTATE Oczekiwanie; INPUT DR; OUTPUT (IDISind); NEXTSTATE -; INPUT (CC); RESET (T); Numer:=1; OUTPUT (ICONconf); NEXTSTATE Połączony; INPUT (T); DECISION Licznik<4 (TRUE): Licznik:=Licznik+1; SET (NOW+P,T); OUTPUT (CR); NEXTSTATE -; (FALSE): OUTPUT (IDISind); NEXTSTATE Przerwany; ENDDECISION; INPUT (DR); RESET (T); OUTPUT (IDISind); NEXTSTATE Przerwany; STATE Oczekiwanie; Inżynieria oprogramowania komunikacyjnego 11

12 Procesy: Procesy moga być dynamicznie kreowane i niszczone zarówno w czasie inicjacji systemu jak i w czasie jego życia. Proces nie może być zniszczony przez inny proces, lecz może sam się unicestwić. Utworzenie procesu:... Nazwa (Lista parametrów aktualnych) CREATE Nazwa (Lista parametrów aktualnych);... Cztery zmienne predefiniowane: OFF SPRING - PID ostatniego potomka SELF - własny PID PARENT - PID rodzica SENDER - PID nadawcy ostatnio odbranego komunikatu Gdy w środowisku realizującym protokół lub usługę komunikacyjną będą występowały procesy dynamiczne (powoływane do życia) wówczas Zakończenie procesu: Reprezentacja graficzna: Reprezentacja tekstowa STOP; Instancja procesu: PROCESS Nazwa (n1,n2) FPAR... Nazwa (n1, n2) ENDPROCESS Nazwa n 1 - liczba instancji procesu aktywna w miejscu użycia symbolu; n 2 - maksymalna liczba instancji tego procesu w całej specyfikacji. Wartości domyślne obu parametrów: n 1 = 1, n 2 = oo Iok_3wg 3-12

13 Komunikacja między procesami: Droga sygnałowa DS Nazwa (n1, n2) Nazwa (n1, n2) Droga sygnałowa i sygnały: SIGNAL Sygnal1, Sygnal2; komunikacja między procesami DS[Sygnal1, Sygnal2] Nazwa (n1, n2) Nazwa (n1, n2) Adresowanie sygnałów Bezpośrednie: A To Cel Przykład: A TO SENDER; A TO OFFSPRING; A TO P1; Pośrednie (pośrednik w postaci drogi sygnałowej): A VIA DS Iok_3wg 3-13

14 Przekazywanie wartości przez sygnał Sygnały przekazuja dane o strukturze określonej ich typem. Dane te moga być tworzone w oparciu o zmienne lokalne procesu oraz do tych zmiennych zapisywane. DCL V1 NrRamki; V2 Boolean; SIGNAL A(NrRamki, Boolean); A(V1,V2); A(S1,S3); DCL S1 NrRamki; S3 Boolean; SIGNAL A(NrRamki, Boolean); A(5,V2); A(S1); A(,TRUE); A(,S3); A(5,FALSE); A(S1,S3); Semantyka komunikacji procesów Na odbior w procesie może oczekiwać kilka sygnałów. Oczekują one na obsługę w kolejce portu wejściowego. Kolejka ta jest zasadniczo kolejka typu "Pierwszy Zgłoszony Pierwszy Obsłużony", lecz proces ma możliwość "przechowywania" sygnałów i w ten sposob wpływania na kolejność ich obsługi. P1 Sygnal2 Sygnal1 P3 P2 Iok_3wg 3-14

15 A... D B A D B D B D Sygnał D pozosytanie w kolejce i będzie oczekiwał na skonsumowanie w dalszych stanach. Na odbior w procesie może oczekiwać kilka sygnałów. Oczekują one na obsługę w kolejce portu wejściowego. Kolejka ta jest zasadniczo kolejka typu "Pierwszy Zgłoszony Pierwszy Obsłużony", lecz proces ma możliwość "przechowywania" sygnałów i w ten sposob wpływania na kolejność ich obsługi. Sygnały przekazuja dane o strukturze określonej ich typem. Dane te moga być tworzone w oparciu o zmienne lokalne procesu oraz do tych zmiennych zapisywane. Iok_3wg 3-15

16 Procedura: Definicja PROCEDURE Nazwa FPAR Lista parametrów formalnych Nazwa procedury... Przywołanie procedury: Nazwa (lista param. aktualnych) Makrodefinicja: Definicja MACRODEFINITION Nazwa FPAR Lista parametrów aktualnych a b A>0 R:=0 Yes c d Iok_3wg 3-16

17 Przywołanie: a b Nazwa (lista param. aktualnych) c d Iok_3wg 3-17

18 Zasady strukturalizacji Definicje modelu określaja typy elementow metody specyfikacji. Definiując dalej pojęcia metody będzie mowa o typie elementu. Elementy dowolnego typu mają swoje instancje. Instancja ma wszystkie cechy przypisane typowi elementu i jest konkretną realizacją elementu. Może istnieć dowolnie wiele instancji pewnego elementu będacych instancjami tego samego typu. Statyczna struktura systemu jest modelowana jako zbiór bloków komunikujących się za pomocą kanałów. Kanały łączą bloki wzajemnie i łączą bloki z granicami systemu (z otoczeniem systemu). Granice systemu oddzielają system od jego otoczenia. Zakłada się przy tym, że otoczenie systemu zachowuje się w sposób podobny jak modelowany system. Kanały działają jako jednokierunkowe środki transportu sygnałów przesyłanych między blokami. Struktura specyfikowanego systemu wynika z podziału systemu na bloki, kanały i procesy. Strukturalizacja może być głębsza i dopuszczalne jest wydzielanie podblokow, podkanałów i podprocesów. Strukturalizacja kanału polega na wydzieleniu nowych blokow i nowych kanałów pomiędzy tymi blokami. Strukturalizacja polega na podziale protokołu/usługi na bloki, w ktorych działają procesy. Kolejnym narzadziem strukturalizacji procesu sa procedury. Procedura jest rozumiana tak jak w językach programowania z tym, że może ona zawierać akcje i zmiany stanu. Procedury mogą tworzyć bibliotekę i być wykorzystywane przez różnych reprezentantów procesu, bądź przez reprezentantow innych procesow. Przy sporządzaniu specyfikacji przydatnym środkiem jej uproszczenia jest makro. Makro reprezentuje pewien fragment specyfikacji, ktory jest dołączany do specyfikacji za pomocą jego nazwy. Makro tym różni się od procedury, że procedura jest przywoływana, a makro jest dołączane do specyfikacji. Makro jest środkiem upraszczajacym edycję specyfikacji. Ostatnim środkiem ułatwiającym strukturalizację specyfikacji jest opcja. Środek ten umożliwia specyfikowanie rozwiązań alternatywnych. W przypadku, gdy przedmiot specyfikacji ma być zrealizowany, wybierana jest jedna z kilku dopuszczalnych opcji. Iok_3wg 3-18

19 SDL, a języki implementacji Istnieja ścisłe powiazania pomiędzy SDL, a językiem programowania systemów telekomunikacyjnych CHILL. Przykładowo wspólne są koncepcje procesu i sygnału. int Receive(int Adres, int OdbDane1, int OdbDane2); void Send(int Adres, int Dane1, int Dane2); void Reset(); void Set(); int State; #define NextState State #define Przerwany 1 #define Oczekiwanie 2 #define Polaczone 3 #define Nadane 4 #define User 10 #define ICONreq 11 #define IDISreq 12 #define IDISind 13 #define ICONconf 14 #define IDATreq 15 #define Medium 100 #define CR 101 #define DR 102 #define CC 103 #define DT 104 #define AK 105 #define Timer1 300 #define Timeout1 5 int Licznik; int Numer; int Dane; main () { switch (State) { case Przerwany: switch (Receive(Num, Dane)) { case ICONreq: Licznik=1; Send(Medium,CR); Set(Timer1,Timeout1); NextState=Oczekiwanie; Iok_3wg 3-19

20 break; case DR: Send(User,IDISind); NextState=Przerwany; break; }; case Oczekiwanie: switch (Receive(Num, Dane)) { case CC: Send(User,ICONconf); Reset(Timer1); Numer=1; NextState=Polaczone; break; case Timer1: if (Licznik<4) { Send(Medium,CR); Licznik++; Set(Timer1,Timeout1); } else { Send(User,IDISind); NextState=Przerwany; }; break; case DR: Reset(Timer1); Send(User,IDISind); NextState=Przerwany; break; }; break; case Polaczone: switch (Receive(Num,Dane)) { case IDATreq: Send(Medium,DT,Numer,Dane); Licznik=1; Set(Timer1,Timeout1); NextState=Nadane; break; case DR: Reset(Timer1); Send(User,IDISind); NextState=Przerwany; break; }; Iok_3wg 3-20

21 } } break; case Nadane: switch (Receive(Num, Dane)) { case AK: Reset(Timer1); if (Num==Numer) { succ(numer); NextState=Polaczone; } else { if (Licznik<4) { Send(Medium,DT,Numer,Dane); Licznik++; Set(Timer1,Timeout1); NextState=Nadane; } else { Send(User,IDISind); NextState=Przerwany; } } break; case DR: Reset(Timer1); Send(User,IDISind); NextState=Przerwany; break; }; break; Iok_3wg 3-21

22 Notacja ASN.1 Typ i wartość obiektu - ASN.1 (ISO 8824, CCITT X.208). Komunikacja między dowolnymi komunikującymi się elementami systemu rozproszonego wymaga nie tylko precyzyjnego zdefiniowania agorytmu ich przetwarzania, ale również formatu wymienianych danych. Złożoność danych transmitowanych przez rozproszone aplikacje wymaga do ich określenia tzw. Języka Reprezentacji Zewnętrznych Danych (External Data Representation Language XDR). Rozproszone aplikacje mogą działać w różnych środowiskach. Można rozważać cztery rodzaje różnic między nimi: różne typy komputerów, np.: przesłanie danych między komputerem pracującym ze słowem 16 bitowym i komputerem pracującym ze słowem 64 bitowym. różne języki programowania aplikacji, np. konieczność przesłania wartości zmiennych z programu napisanego w C do programu napisanego w FoxPro. różne formaty danych łączonych aplikacji, np.: programy poczty elektronicznej mające różny format przesyłanych danych. różne typy sieci i obsługujących je urządzeń. np. NUMERIC DATE System A ASN.1 System B np. int? Baza danych Baza danych np. FoxPro np. C *.dbf *.baz BER Warstwa prezentacji Konieczność opracowania XDR dla systemów komunikacyjnych została zauważona już przed powstaniem standardu. Jednak wcześniejsze aplikacje ograniczały się do tylko jednego języka programowania np.: XDR firmy SUN, lub miały tylko jedną postać transmitowanych danych Xerox Courier[6]. Iok_3wg 3-22

23 ASN.1 (Abstract Syntax Notation 1) stworzona przez ISO oraz CCITT i przedstawiona w Zaleceniu X.208 to język specyfikacji typów danych przesyłanych między aplikacjami. ASN.1 nie jest zależne od żadnego innego języka programowania. Zaletą takiego podejścia jest możliwość ominięcia ograniczeń opisanych powyżej. Jednak z drugiej strony, ze względu na ogólność typów danych ASN.1, utrudnione lub często niemożliwe jest bezpośrednie odwzorowanie typów danych opisanych przy pomocy ASN.1 na typy innego języka programowania. Wyizolowane i niezależne od przesyłanych obiektów informacyjnych zasady kodowania i dekodowania typów definiowanych przy pomocy tej notacji zezwalają na tworzenie nowych definicji postaci transmitowanych danych. Standardowe rozwiązanie BER (Basic Encoding Rules) zawarty w Zaleceniu X.209, może być zastąpione innym z punktu widzenia aplikacji korzystniejszym sposobem kodowania danych. Zasady te mogą być dowolne, jednak standard zawiera już propozycję w postaci BER. W siedmiowarstwowym modelu ISO ASN.1 występuje w górnych warstwach. Jest umieszczona w warstwie aplikacji, podczas gdy reguły kodowania BER są związane są z warstwą prezentacji. Potencjalnie ASN.1 może służyć do opisu protokołów dowolnej z warstw modelu, jednak jej podstawowym zadaniem jest określenie formatów danych protokołów występujących w warstwie aplikacji. Dane przesyłane między aplikacjami są bardzo zróżnicowane i nie można jednoznacznie określić ich wszystkich rodzajów używanych w aplikacjach działających w różnych środowiskach. Nie ma możliwości zdefiniowania zbioru wszystkich możliwych informacji przesyłanych między aplikacjami już w przypadku bardzo prostych danych. Bez odpowiedniego podziału danych jakakolwiek interpretacja jest niemożliwa. W celu wymiany i interpretacji danych przesyłanych na wysokim poziomie pomiędzy rozproszonymi aplikacjami potrzebny jest jednakowy format ich przedstawienia dla wszystkich aplikacji, lub wymaganie od każdej aplikacji znajomości wewnętrznego formatu danych wszystkich innych aplikacji. To drugie podejście w sposób oczywisty jest niemożliwe do implementacji, a dodatkowo niezgodne z ideami OSI. Istnieje możliwość narzucenia jednolitego języka do porozumiewania się w warstwie aplikacji. Wówczas wszystkie dane przesyłane między aplikacjami miałyby identyczne znaczenie dla wszystkich użytkowników. Takie podejście jest również niezgodne z ideami OSI zakładającymi przezroczystość warstw. Dlatego wybrane rozwiązanie zakłada wybór jednolitego formatu danych transmitowanych w warstwie prezentacji. Odpowiednie tłumaczenie przesłanych danych na podstawie wspólnego dla obu aplikacji opisu w ASN.1 przebiega w warstwie aplikacji. Notacja używana do definiowania typów zmiennych w ASN.1 jest bardzo zbliżona do sposobu zapisu używanego w większości języków programowania. Ze względu na Iok_3wg 3-23

24 to, że jest to sposób zapisu typów danych, brak jest słów kluczowych związanych z wykonywaniem instrukcji takich jak pętle czy instrukcje warunkowe. Język zawiera kilka wbudowanych typów danych i zespół zasad, które pozwalają tworzyć samodzielnie nowe, bardziej skomplikowane typy danych oraz przyznawać stałe wartości niektórym elementom wchodzącym w skład tak zdefiniowanych typów danych. Ogólna formuła tworzenia nowych typów danych polega na przypisaniu pewnego wcześniej zdefiniowanego typu do jego nowego identyfikatora. Przykład: NowyIdentyfikator ::= InnyTyp lub, WeatherReport ::= SEQUENCE { stationno INTEGER, timeofreport INTEGER, dateofreport INTEGER, temperature INTEGER, winddir INTEGER, humidity INTEGER, } W ten sposób użycie nowej nazwy w definicji wartości (lub typu) powoduje przypisanie tej wartości typu odpowiadającego wcześniejszej definicji. Wartości InnyTyp z przykładu może odpowiadać dowolny prosty typ ASN.1 lub jeden z typów złożonych utworzonych z typów prostych lub wcześniej zdefiniowanych. ASN.1 umożliwia również przedstawienie pewnych obiektów informacyjnych o określonym z góry typie i nadanej im odgórnie wartości. W tym celu wykorzystuje się tzw. value notation. Wartości zdefiniowane przy jej użyciu mają głównie zastosowanie w celach przykładowych, aby lepiej zaprezentować nowo tworzone typy danych. Przykład: wartość IdentyfikatorTypuWartości ::= wartośćzgodnazidtypuwart lub, weatherreportmonday WeatherReport ::= { stationno 200, timeofreport 1504, dateofreport , temperature 30, winddir 150, Iok_3wg 3-24

25 humidity 80 } Wbudowane typy danych języka ASN.1 obejmują następujące typy: INTEGER, BOOLEAN, REAL, BIT STRING, OCTET STRING, ENUMERATED, NULL, OBJECT IDENTIFIER. Typ INTEGER odpowiada wszystkim wartościom dodatnich i ujemnych liczb całkowitych. Brak ograniczenia zakresu dla liczb typu INTEGER spowodowany jest tym, że ASN.1 nie interesuje się sposobem reprezentacji tych danych na komputerze oddając tę pracę zasadom kodowania. Przykład definicji typu pochodnego od typu INTEGER: ImageLoadMode ::= INTEGER { other(1), -- Unknown LocalBoot(2), -- Load image from local NetBoot(3) -- Load image from remote } USmallInt ::= INTEGER (0..255) Przykład definicji wartości dla tego typu: agentimageloadmode ImageLoadMode ::= other Wbrew pozorom symbole "other" i "NetBoot" nie ograniczają zakresu typu ImageLoadMode do przedziału od 1 do 3, ale wyłącznie nadają tym dwu liczbom nowe symboliczne nazwy. Typ BOOLEAN zawiera dwie wartości, odpowiadające logicznym wartościom TRUE i FALSE. Przykład definicji typu pochodnego od typu BOOLEAN SwitchStatus ::= BOOLEAN Przykład definicji wartości dla tego typu: switch SwitchStatus ::= TRUE Iok_3wg 3-25

26 Typ REAL to podobnie jak INTEGER zbiór wszystkich wartości liczb rzeczywistych. Jak w przypadku INTEGER ASN.1 nie ogranicza zakresu tych liczb gdyż tym zajmuje się reguła dekodowania wartości. Przykład definicji typu pochodnego od typu REAL: Float ::= REAL Przykład definicji wartości dla tego typu: e REAL ::= {27182, 10, -4} Z oczywistych względów nie można przypisać wartościom tego typu odrębnych nazw jak w przypadku typu INTEGER. Typ BIT STRING zawiera ciąg bitów o dowolnej długości. Nie musi być to wielokrotność 8. Przykład definicji typu pochodnego od typu BIT STRING: FacsimileInformation ::= BIT STRING SunnyDaysOfMonth ::= BIT STRING { first(1), third(3), } Przykład definicji wartości dla tego typu: sunday SunnyDaysOfMonth ::= '810204'H Typ ANY nie jest właściwie osobnym typem, ale rezerwacją miejsca na daną dowolnego typu i dowolnego rozmiaru. Dana i jej typ, który podstawiony zostanie w miejsce ANY wybierany jest w czasie działania aplikacji. Przykład definicji typu pochodnego od typu ANY: Contentindication ::= INTEGER MessageContent ::= ANY DEFINED BY ContentIndication Typ NULL stosowany jest jedynie wyjątkowo zazwyczaj w konstrukcjach typu CHOICE. Jego stosowanie jest obecnie odradzane ze względu na bardziej efektywne formy zapisu. Przykład definicji typu pochodnego od typu NULL: MiddleName ::= CHOICE { is OCTET STRING, isnot NULL} Przykład definicji wartości dla tego typu: Iok_3wg 3-26

27 midname MiddleName ::= isnot Typ OCTET STRING to dowolnej długości ciąg znaków. Znaki mogą przybierać dowolną wartość od 0 do 255. Każdy znak zajmuje osiem bitów. Ciąg ten nie musi być zakończony znakiem 0 jak w przypadku C, a za określenie jego długości odpowiedzialne są wyłącznie zasady kodowania. Typ OCTET STRING jest w samej definicji notacji okrojony przez co powstaje kilka nowych typów zawierających charakterystyczne zestawy znaków, np. typy NumericString, PrintableString i inne. Przykład definicji typu pochodnego od typu OCTET STRING: AtLeastOneByte ::= OCTET STRING (SIZE (1..MAX)) Przykład definicji wartości dla tego typu: anyone AtLeastOneByte ::= '4fde'h Typ ENUMERATED to skończony zbiór wartości, którego każdy element ma odpowiadającą mu wartość liczbową, służącą jako dodatkowy identyfikator. W przeciwieństwie do typu INTEGER przyznanie wartości określonego symbolu powoduje umieszczenie tej wartości w typie ENUMERATED. Wartości nie umieszczone w definicji typu nie wchodzą w jego skład. Brak jest relacji porządkującej wartości tego typu. Wartość numeryczna liczb odpowiadających identyfikatorom nie jest istotna, wykorzystywana jest tylko przy kodowaniu. Przykład definicji typu pochodnego od typu ENUMERATED: Priority ::= ENUMERATED { low(-1), Przykład definicji wartości dla tego typu: medium(0), high(1) } status Priority ::= low Typ OBJECT IDENTIFIER jest wbudowanym w język typem ściśle związanym z prezentacją i identyfikacją obiektów znajdujących się w Drzewie Identyfikatorów Obiektów (OIT) tworzonym i nadzorowanym przez ISO. Głównym zadaniem drzewa OIT jest zapewnienie bezbłędnego dostępu do obiektów informacyjnych definiowanych w ogólnie dostępnych aplikacjach np.: protokołach sieciowych. Węzły tego drzewa oznaczone są numerycznie przez ciąg nieujemnych liczb całkowitych, a identyfikator danego węzła to ścieżka jaką trzeba pokonać od korzenia tego drzewa do interesującego nas węzła. Tworzenie nowych węzłów drzewa jest ściśle Iok_3wg 3-27

28 nadzorowane przez ISO. Ten typ danych używany jest przy tworzeniu nowych aplikacji. Przykład definicji typu pochodnego od typu OBJECT IDENTIFIER: CCProduct ::= OBJECT IDENTIFIER Przykład definicji wartości dla tego typu: joint-iso-ccitt OBJECT IDENTIFIER ::= {2} directory OBJECT IDENTIFIER ::= {joint-iso-ccitt ds(5)} Jak widać tworzenie nowych typów danych w ASN.1 nie nastręcza większych trudności. W tym celu możemy okroić istniejący dotychczas typ danych poprzez ograniczenie zakresu (p. INTEGER) lub ograniczenie rozmiaru( p. OCTET STRING). Definicja typów złożonych Oprócz redefinicji typów prostych możemy tworzyć bardziej skomplikowane typy jako kombinację typów podstawowych lub wcześniej zdefiniowanych. Język zapewnia nam w tym celu następujące konstrukcje do tworzenia typów złożonych: SEQUENCE SET SEQUENCE OF SET OF CHOICE Typy utworzone przy użyciu SEQUENCE i SET są do siebie zbliżone i przypominają konstrukcję struct w C lub record w PASCALu. Różnica między tymi dwoma typami uwidacznia się w procesie kodowania i przesyłania danych. Typ utworzony przy pomocy SEQUENCE wymaga aby dane były przesyłane w takiej kolejności w jakiej zostały zapisane w definicji typu. W przypadku SET kolejność przesyłanych danych jest dowolna a odbiornik orientuje się w typie danej na podstawie znacznika (tag) jaki z nią przyszedł. Różnice te są w praktyce nie widoczne na poziomie ASN.1. Przykład definicji typu złożonego: RejectTPDU ::= SET { credit Credit, Message ::= SEQUENCE { destref Reference } envelope MessageTransferEnvelope, content Content } Iok_3wg 3-28

29 Przykład definicji wartości dla typu złożonego: val RejectTPDU ::= { destref 90, credit 9000} msg Message ::= { envelope '0d4f'h, content "content of envelope"} Jeżeli dana przesyłana może przyjąć jeden z kilku typów to reprezentacja typu tej danej tworzona jest przy pomocy typu CHOICE. Konstrukcja ta przypomina konstrukcję union z języka C. Spośród kilku typów danych, które wchodzą w skład CHOICE przesłany zostaje tylko jeden i odpowiadający mu znacznik. Przykład definicji typu CHOICE: TypN ::= CHOICE { x y REAL, INTEGER, z BIT STRING(SIZE(32)) } Przykład definicji wartości dla typu CHOICE: val1 TypN ::= x {45,10,2} val3 TypN ::= z '0000ffff'h Typ SET OF i SEQUENCE OF to ciąg pewnej liczby obiektów tego samego typu. Jest to typ danych podobny do tablic występujących w innych językach programowania np.: typu array zdefiniowanego w PASCALu. Znacząca różnica to brak ograniczenia rozmiaru typów ASN.1, podczas gdy w PASCALu rozmiar musi być dokładnie określony. W przypadku ASN.1 możliwe jest również określenie rozmiaru poprzez użycie ograniczenia rozmiaru słowem kluczowym SIZE. Typy SET OF i SEQUENCE OF podobnie jak typy SET I SEQUENCE odróżnia od siebie istotność kolejności występowania elementów wewnątrz danej jednego z tych typów. Kolejność jest istotna w przypadku SEQUENCE OF. Przykład definicji typu: Students ::= SEQUENCE SIZE(100) OF StudentID Parameters ::= SET OF Parameter Przykład definicji wartości dla tego typu: TempInGdańskFeb Readings ::= { 0,3,5,0,-1,3,6,9} Iok_3wg 3-29

30 Najobszerniejszą i zarazem najtrudniejszą w implementacji formę tworzenia nowych typów danych tworzy mechanizm makroinstrukcji zdefiniowany w standardzie ASN.1. Nowe konstrukcje rozszerzające składnie ASN.1 opisywane są definicjami zapisanymi w postaci BNF. Ta forma zapisu pozwala na przedstawienie syntaktyki konstrukcji opisanych w definicji, nie ma jednak możliwości analizy semantyki tych konstrukcji, która zapisana jest w postaci komentarzy towarzyszących makroinstrukcjom. Z tego powodu nie jest możliwe automatyczne rozszerzanie składni ASN.1 poprzez dołączanie do niej dynamicznie wczytywanych makroinstrukcji. Wiele makroinstrukcji mimo, że nie wchodzą w skład standardu ASN.1 upowszechniło się i są powszechnie wykorzystywane np w przypadku konstrukcji MIB-ów. Obsługiwane przez analizator są OBJECT-TYPE i TRAP-TYPE. Ich znaczenie semantyczne opisane jest w punkcie o SNMP(3.0). Tu krótko bądzie omówiona ich składnia. Makro OBJECT-TYPE wymaga wypełnienia następujących pól: SYNTAX - typ zmiennej w danym węźle. Dowolny typ zdefiniowany module. ACCESS - dostęp do tej zmiennej (read-only, read-write...). STATUS - status zmiennej obowiązkowa, dowolna, nieużywana. Dodatkowo mogą występować pola: DESCRIPTION - opis zmiennej. Ciąg znaków w cudzysłowach. REFERENCE - odwołanie do innych opisów zmiennej. Ciąg znaków w cudzysłowach. DEFVAL - wartość zgodna z typem określonym w polu SYNTAX INDEX - pola klucze. Występuje tylko w przypadku gdy typ zmiennej jest typem złożonym. W makro TRAP-TYPE obowiązkowo muszą być wypełnione pola: ENTERPRISE - Węzeł w drzewie MIB. Określa organizację, która jest twórcą urządzeń nadających te ramki. VARIABLES - Opcjonalna lista zmiennych(węzłów w drzewie), które zawarte są w nadchodzącej ramce TRAP. Opcjonalne jest wypełnienie pól: DESCRIPTION - Ciąg znaków zawierający opis danej ramki TRAP REFERENCE - Ciąg znaków zawierający odwołania do danego TRAP w innych obiektach i modułach. Modułowy charakter definicji tworzonych w notacji ASN.1 ASN.1 ma naturę języka modułowego i zezwala na wykorzystywanie w module danych zawartych w innych modułach. Pogrupowanie poszczególnych definicji i nazwanie ich odrębną nazwą daje możliwość lepszej orientacji w definicjach danych. Iok_3wg 3-30

Laboratorium 1. Wprowadzenie do protokołu SNMP i kodowanie BER (ASN.1)

Laboratorium 1. Wprowadzenie do protokołu SNMP i kodowanie BER (ASN.1) Laboratorium 1. Wprowadzenie do protokołu SNMP i kodowanie BER (ASN.1) Celem laboratorium jest poznanie przez studenta podstawowego sposobu kodowania (BER), który jest wykorzystywany przez protokół SNMP.

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Zarządzanie sieciami komputerowymi - wprowadzenie

Zarządzanie sieciami komputerowymi - wprowadzenie Zarządzanie sieciami komputerowymi - wprowadzenie Model zarządzania SNMP SNMP standardowy protokół zarządzania w sieci Internet stosowany w dużych sieciach IP (alternatywa logowanie i praca zdalna w każdej

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Umieszczanie kodu. kod skryptu

Umieszczanie kodu. kod skryptu PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

Bardziej szczegółowo

Przykładowy dokument XML

Przykładowy dokument XML Przykładowy dokument XML DTD - wady Ograniczona kontrola nad strukturą dokumentów. Zbyt wysokopoziomowe typy danych: liczby, daty są zawsze reprezentowane jako tekst! Bardzo ogólne metody definiowania

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

external Data Representation

external Data Representation Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja

Bardziej szczegółowo

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP Załącznik Nr 3 KDPW_CCP Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP Wersja 1.0 Warszawa, czerwiec 2012 Spis treści Wstęp... 3 Budowa komunikatów XML... 3 Przestrzenie

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP Warszawa, lipiec 2012 Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP Wersja 1.1 1 Spis treści Tabela zmian... 3 Wstęp... 4 Budowa komunikatów XML... 4 Przestrzenie nazw

Bardziej szczegółowo

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4

Bardziej szczegółowo

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

asix4 Podręcznik użytkownika CtSNPX - drajwer protokołu SNPX sterowników GE Fanuc Podręcznik użytkownika

asix4 Podręcznik użytkownika CtSNPX - drajwer protokołu SNPX sterowników GE Fanuc Podręcznik użytkownika Podręcznik użytkownika CtSNPX - drajwer protokołu SNPX sterowników GE Fanuc Podręcznik użytkownika Dok. Nr PLP4060 Wersja: 05-10-2005 Podręcznik użytkownika asix4 ASKOM i asix to zastrzeżone znaki firmy

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Przetwarzanie rozproszone

Przetwarzanie rozproszone Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Proces sekwencyjny Komunikaty, kanały komunikacyjne Stan kanału Operacje komunikacyjne Model formalny procesu sekwencyjnego Zdarzenia Warunek

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Typy, klasy typów, składnie w funkcji

Typy, klasy typów, składnie w funkcji Typy, klasy typów, składnie w funkcji Typy w Haskell Każde wyrażenie w Haskell posiada zdefiniowany typ. Dzięki temu już na etapie kompilacji kodu następuje sprawdzenie poprawności kodu i zabezpiecza nas

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Programowanie obiektów

Programowanie obiektów Programowanie obiektów lokalne tabele tymczasowe, globalne tabele tymczasowe, zmienne lokalne, zmienne globalne przypisane wartości zmiennym 1 T-SQL Transact SQL (T-SQL), tak jak inne języki programoawania

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Spis treści. 1 Moduł Modbus TCP 4

Spis treści. 1 Moduł Modbus TCP 4 Spis treści 1 Moduł Modbus TCP 4 1.1 Konfigurowanie Modułu Modbus TCP................. 4 1.1.1 Lista elementów Modułu Modbus TCP............ 4 1.1.2 Konfiguracja Modułu Modbus TCP.............. 5 1.1.3

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych Mechanizm wywołania Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) int zabij_proces (int pid){ int stat; stat = kill(pid,

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja

Bardziej szczegółowo

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST Specyfikacja API 1.0 API REST Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST CashBill Spółka Akcyjna ul. Rejtana 20, 41-300 Dąbrowa Górnicza Tel.: +48 032 764-18-42

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer

Bardziej szczegółowo

ForPascal Interpreter języka Pascal

ForPascal Interpreter języka Pascal Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

FAQ: 00000041/PL Data: 09/06/2012. Zastosowanie zmiennych Raw Data Type WinCC v7.0

FAQ: 00000041/PL Data: 09/06/2012. Zastosowanie zmiennych Raw Data Type WinCC v7.0 Zmienne typu Raw Data są typem danych surowych nieprzetworzonych. Ten typ danych daje użytkownikowi możliwość przesyłania do oraz z WinCC dużych ilości danych odpowiednio 208 bajtów dla sterowników serii

Bardziej szczegółowo

Wstęp do programowania. Różne różności

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

asix4 Podręcznik użytkownika Drajwer protokołu ADAM Podręcznik użytkownika

asix4 Podręcznik użytkownika Drajwer protokołu ADAM Podręcznik użytkownika Podręcznik użytkownika Drajwer protokołu ADAM Podręcznik użytkownika Dok. Nr PLP4002 Wersja: 04-10-2005 Podręcznik użytkownika asix4 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice.

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG Projektowanie Scalonych Systemów Wbudowanych VERILOG OPIS BEHAWIORALNY proces Proces wątek sterowania lub przetwarzania danych, niezależny w sensie czasu wykonania, ale komunikujący się z innymi procesami.

Bardziej szczegółowo

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura komputerów. Układy wejścia-wyjścia komputera Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe Modelowanie i Analiza Systemów Informatycznych Logika Temporalna i Automaty Czasowe (7) Automaty czasowe NuSMV Paweł Głuchowski, Politechnika Wrocławska wersja 2.3 Treść wykładu NuSMV NuSMV symboliczny

Bardziej szczegółowo

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Warstwy i funkcje modelu ISO/OSI

Warstwy i funkcje modelu ISO/OSI Warstwy i funkcje modelu ISO/OSI Organizacja ISO opracowała Model Referencyjny Połączonych Systemów Otwartych (model OSI RM - Open System Interconection Reference Model) w celu ułatwienia realizacji otwartych

Bardziej szczegółowo

Inżynieria oprogramowania

Inżynieria oprogramowania Inżynieria oprogramowania Wykład 8 Inżynieria wymagań: analiza przypadków użycia a diagram czynności Patrz: Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski, Język UML 2.0 w modelowaniu systemów

Bardziej szczegółowo

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw

Bardziej szczegółowo

29. Poprawność składniowa i strukturalna dokumentu XML

29. Poprawność składniowa i strukturalna dokumentu XML 29. i strukturalna dokumentu XML 13 października 2015 1 2 Poprawny składniowo dokument XML powinien być tworzony zgodnie z poniżej przedstawionymi zasadami. Deklaracja XML Powinien zawierać deklarację

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji. 1 Moduł Modbus TCP Moduł Modbus TCP daje użytkownikowi Systemu Vision możliwość zapisu oraz odczytu rejestrów urządzeń, które obsługują protokół Modbus TCP. Zapewnia on odwzorowanie rejestrów urządzeń

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA Studia Niestacjonarne Elektrotechnika INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

Numeracja dla rejestrów zewnętrznych

Numeracja dla rejestrów zewnętrznych Numeracja dla rejestrów zewnętrznych System ZPKSoft Doradca udostępnia możliwość ręcznego nadawania numerów dla procedur i dokumentów zgodnie z numeracją obowiązującą w rejestrach zewnętrznych, niezwiązanych

Bardziej szczegółowo

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc Warszawa, 07 lutego 2013 Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc Wersja 1.4.2 1 Spis treści Tabela zmian... 3 Wstęp... 4 Budowa komunikatów XML... 4 Przestrzenie nazw (namespaces)...

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

Właściwości i metody obiektu Comment Właściwości

Właściwości i metody obiektu Comment Właściwości Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400 ZAAWANSOWANY TIA DLA S7-300/400 Spis treści Dzień 1 I Rozpoczęcie pracy ze sterownikiem (wersja 1707) I-3 Zadanie Konfiguracja i uruchomienie sterownika I-4 Etapy realizacji układu sterowania I-5 Tworzenie

Bardziej szczegółowo

1. Wprowadzenie do języka PHP

1. Wprowadzenie do języka PHP 1. Wprowadzenie do języka PHP Język PHP jest generalnie w swojej składni podobny do języka C, chociaż występuje tu szereg różnic. 1.1. Zmienne W PHP nazwy zmiennych poprzedzamy znakiem dolara ($). Nie

Bardziej szczegółowo

Struktura pliku wejściowego ippk Plik Korekt Składek

Struktura pliku wejściowego ippk Plik Korekt Składek Struktura pliku wejściowego ippk Plik Korekt Składek INFORMACJE OGÓLNE... 3 STRUKTURA PLIKU... 3 STRUKTURA FORMATU... 3 DOPUSZCZALNE WARTOŚĆI W POLACH SŁOWNIKOWYCH... 4 ŁADOWANIE PLIKU... 4 INFORMACJE

Bardziej szczegółowo

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A.

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A. asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A. w Cieszynie Podręcznik użytkownika Dok. Nr PLP4083 Wersja: 23-01-2007 Podręcznik

Bardziej szczegółowo

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych Wywoływanie procedur zdalnych Mechanizm wywołania main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces (int pid){ int stat; stat

Bardziej szczegółowo

Autor: dr inż. Katarzyna Rudnik

Autor: dr inż. Katarzyna Rudnik Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Dokumentacja 2SMS

Dokumentacja  2SMS Dokumentacja Email2SMS 1 Wprowadzenie... 2 Tworzenie uprawnionego adresu email oraz klucza... 3 Bezpieczeństwo... 4 Wysyłanie wiadomości SMS... 5 Historia zmian... 8 2 Wprowadzenie SerwerSMS.pl umożliwia

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 1

Algorytmy i struktury danych. wykład 1 Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,

Bardziej szczegółowo

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem

Bardziej szczegółowo

asix4 Podręcznik użytkownika AS512 - drajwer protokołu AS512 dla SIMATIC S5 Podręcznik użytkownika

asix4 Podręcznik użytkownika AS512 - drajwer protokołu AS512 dla SIMATIC S5 Podręcznik użytkownika AS512 - drajwer protokołu AS512 dla SIMATIC S5 Dok. Nr PLP4007 Wersja: 04-10-2005 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście znaki firmowe bądź towarowe

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja Sieciowa wątki po stronie klienta Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy 1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że

Bardziej szczegółowo

Rozszerzenia sieci Petriego

Rozszerzenia sieci Petriego Rozszerzenia sieci Petriego Ograniczenia klasycznej sieci Petriego Trudność w modelowaniu specyficznych przepływów: testowania braku żetonów w danym miejscu, blokowania odpalania, itp. Brak determinizmu

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Model OSI. mgr inż. Krzysztof Szałajko

Model OSI. mgr inż. Krzysztof Szałajko Model OSI mgr inż. Krzysztof Szałajko Protokół 2 / 26 Protokół Def.: Zestaw reguł umożliwiający porozumienie 3 / 26 Komunikacja w sieci 101010010101101010101 4 / 26 Model OSI Open Systems Interconnection

Bardziej szczegółowo