Formalne modele protokołów i usług
|
|
- Janina Filipiak
- 10 lat temu
- Przeglądów:
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) Celem laboratorium jest poznanie przez studenta podstawowego sposobu kodowania (BER), który jest wykorzystywany przez protokół SNMP.
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
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
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ę
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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ę
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
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
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
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,
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
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
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
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
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
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
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
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ęć
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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,
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
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:
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
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
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
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)...
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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ę
Ć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
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ń
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
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
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ąć
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
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)...
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)
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
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
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
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
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
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
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
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
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,
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
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,
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
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
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
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ę
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
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
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
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
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