Agnieszka NOWAK * Roman SIMIŃSKI ** 1. WSTĘP
|
|
- Władysław Borowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 systemy ekspertowe, regułowe bazy wiedzy, struktura bazy wiedzy, wnioskowanie. Agnieszka NOWAK * Roman SIMIŃSKI ** WYBRANE ZAGADNIENIA IMPLEMENTACJI WIELOPLATFORMOWEGO MODUŁU WNIOSKOWANIA WSTECZ INFER V 2.0 DLA SYSTEMU Z REGUŁOWĄ REPREZENTACJĄ WIEDZY SCHEMAT BAZY WIEDZY I BUDOWA STRUKTUR DANYCH Treść niniejszego opracowania obejmuje zagadnienie projektu regułowej bazy wiedzy dla systemu Infer v2.0 wieloplatformowego modułu wnioskowania wstecz.[5] Obok przedstawienia struktury i formatu bazy wiedzy omawianego systemu praca prezentuje równieŝ schemat najwaŝniejszych struktur danych niezbędnych do stworzenia tego systemu. 1. WSTĘP Celem niniejszej pracy jest prezentacja wybranych aspektów praktycznej realizacji wieloplatformowego modułu wnioskowania wstecz [4][5]. Moduł ten zwany Infer v 2.0 wykorzystuje regułową reprezentację wiedzy. Reguły przyjmują postać klauzul Horna, natomiast do zapisu literałów wykorzystuje się dwójki atrybut-wartość. Podstawowym celem realizowanych prac było opracowanie takiej wersji modułu, która moŝe działać niezaleŝnie od platformy sprzętowo-systemowej, z uwzględnieniem moŝliwości osadzenia aplikacji w środowisku WWW. Moduł ten stanowi kontynuację modułu Infer v 1.0 zaimplementowanego w języku C++[3]. Do realizacji wersji drugiej wybrano język Java umoŝliwiający osiągnięcie zakładanych celów projektowych. W trakcie tworzenia modułu rozwiązywano szereg praktycznych * Uniwersytet Śląski, Instytut Informatyki, Sosnowiec, ul. Będzińska 39, nowak@us.edu.pl ** Uniwersytet Śląski, Instytut Informatyki, Sosnowiec, ul. Będzińska 39, siminski@us.edu.pl
2 problemów implementacyjnych, w tej pracy zaprezentowano pewien wybrany aspekt dotyczący zagadnień wyboru dogodnych struktur danych opisywanego modułu. 2. STRUKTURA I FORMAT BAZY WIEDZY W systemie Infer v2.0 baza wiedzy jest plikiem tekstowym (*.txt). Dla potrzeb programu przyjęto pewne załoŝenia co do sposobu zapisu danych w bazie wiedzy, a mianowicie: baza wiedzy podzielona jest na 2 bloki: blok atrybutów i wartości oraz blok reguł, blok atrybutów i wartości jest zawarty między dwoma etykietami: AttrDefBegin a AttrDefEnd, blok reguł jest zawarty między dwoma etykietami: RuleDefBegin a RuleDefEnd, kaŝda pojedyncza reguła ma postać: konkluzja if przesłanka_1;przesłanka_2;przesłanka_3..., kaŝdy pojedynczy element takiej reguły (tj. konkluzja lub przesłanka) ma postać dwójki: <atrybut = wartość>, na podstawie bazy wiedzy uzupełniane są dla potrzeb programu następujące struktury: lista atrybutów, lista wartości atrybutów, lista reguł oraz lista faktów. Elementami kaŝdej reguły są: konkluzja, licznik warunków danej reguły oraz lista tych warunków. Lista faktów powstaje w trakcie wnioskowania i zawiera dwójki <atrybut = wartość> udowodnione, na podstawie reguł, odpowiedzi uŝytkownika. Rysunek nr 1 przedstawia schemat bazy wiedzy i schemat jej przetwarzania.[3][4] Rys. 1. Schemat bazy wiedzy Fig. 1. The structure of knowledge base
3 3. BAZA WIEDZY W MODULE INFER v 2.0 UŜytkownik po uruchomieniu modułu i wyborze jednej z proponowanych baz wiedzy ma moŝliwość przeglądu jej struktury w wielu postaciach: (i)podgląd całego pliku z bazą wiedzy, (ii)podgląd samych reguł, (iii)podgląd samych atrybutów i ich wartości, (iv)podgląd bazy wiedzy przedstawionej w postaci drzewa, gdzie wybierając dany atrybut w dodatkowym okienku dialogowym wyświetlane są informacje o liczbie jego wartości i o tym, czy atrybut ten jest konkluzją jakieś reguły i jeśli tak to ilu reguł. Z kolei wybierając wartość któregoś z atrybutów uzyskujemy informacje o tym, jakiego atrybutu ta wartość dotyczy i czy jest konkluzją jakiejś reguły i jeŝeli tak to ilu. Drzewo stworzone zostało takŝe dla reguł, gdzie dokładnie widać poziom zagnieŝdŝenia reguł w bazie wiedzy.[4] 4. STRUKTURY DANYCH WaŜnym etapem w czasie implementacji modułu Infer v2.0 było odpowiednie zaprojektowanie struktur danych, które wypełnione byłyby danymi z wiedzą zapisaną w pliku bazy wiedzy. Okazuje się bowiem, Ŝe do stworzenia efektywnego modułu wnioskowania niezbędne jest stworzenie wielu struktur danych: tablic, list, zmiennych globalnych. NaleŜy tak przetworzyć plik tekstowy, aby wypełnione zostały: lista atrybutów, wartości atrybutów oraz lista reguł, a w trakcie pracy modułu wypełniane będą pozostałe struktury: lista faktów, lista historii wnioskowania oraz pozostałe niezbędne dane. Wybrany język implementacji Java udostępnia potrzebne elementy i środki realizacyjne. Zawiera bibliotekę klas kontenerowych wspomagających bardziej wyszukane sposoby przechowywania obiektów. Jednym z podstawowych typów wspomnianej biblioteki klas kontenerowych jest klasa List. W omawianym module została wykorzystana klasa pochodna LinkedList -- zapewniająca optymalny dostęp sekwencyjny wraz z efektywnym usuwaniem i wstawianiem w środek listy. Dzięki metodom addfirst(), addlast(), getfirst(), getlast(), removefirst() oraz removelast(), moŝna jej uŝyć jako stosu, kolejki lub kolejki dwukierunkowej. Rysunek nr 2 prezentuje zastosowane w module Infer struktury danych bazujące właśnie na klasie kontenerowej LinkedList. [1][2] 5. REALIZACJA PODSTAWOWYCH FUNKCJI W MODULE INFER v 2.0 Moduł Infer v 2.0 realizuje wiele funkcji operacji na bazie wiedzy, zarówno przed procesem wnioskowania, w trakcie dowodzenia poprawności celu wnioskowania jak i po przeprowadzonym wnioskowaniu. Przed rozpoczęciem
4 wnioskowania, operacje te dotyczą odczytu wiedzy z pliku tekstowego i wypełnienia odpowiednich struktur danych. SłuŜy do tego funkcja ReadFromFile(nazwa_pliku). Rys. 2. Reprezentacja struktur danych w systemie Fig. 2. Representation of the system data structures PoniŜszy fragment tekstu zawiera poglądowy pseudokod funkcja ReadFromFile(nazwa_pliku). while ((b1=in.readline())!= null) if (b1.indexof(k_a)<0) // k_a <> [ATTR_DEF_END] if (b1.indexof("-") < 0) //atrybut... attrtable.add(atrybut);... else if (b1.indexof("-") > -1)//wartosc... valtable.add(wartosc);...
5 else // k_a = [ATTR_DEF_END] while (((b1=in.readline())!= null)&&(b1.indexof(k_r)<0 )) //ZAPIS KAZDEJ LINII - REGUŁY DO TABLICY ATOMY[W]... String atomy[] = b1.split("= if ;");... // ZAPIS KAZDEJ REGUŁY DO LISTY REGUŁ korzystając z funkcji add() kontenera LinkedList() rules.add(reguła); Korzystając z metody split() biblioteki wyraŝeń regularnych RegExp uzyskujemy tablicę rozdzielonych elementów wczytanych z kaŝdej linijki z pliku. Parametry wskazane w metodzie split() za pomocą separatorów słuŝą do rozdzielenia analizowanego tekstu na elementy zamieszczone pomiędzy tymi właśnie elementami [=,if, ;]. PoniŜszy schemat nr 3 przedstawia sposób konwersji pliku tekstowego na reguły pamiętane w listach kontenerowych. Rys. 3. Sposób konwersji pliku tekstowego Fig. 3. The method of knowledge base file conversion Teraz proste jest zapisanie tak podzielonych elementów reguły do listy reguł w strukturze kontenerowej. Do zapamiętania wszystkich ustawień wnioskowania dotyczących wybranego trybu pracy systemu, wybranej strategii doboru reguł oraz decyzji w kwestii realizacji
6 nawrotów czy opcji zakładających moŝliwość pamiętania w systemie tylko jednej wartości danego atrybutu słuŝą róŝnego typu zmienne globalne, których wartością steruje uŝytkownik systemu za pośrednictwem odpowiednich elementów interfejsu.. WaŜną cechą modułu Infer v 2.0 jest funkcja PlanWnioskowania(), która sprawdza czy wskazana hipoteza główna jest faktem w bazie wiedzy lub konkluzją którejś z reguł, i jeśli tak to w zaleŝności od wybranej strategii doboru reguł pokazuje nawet kolejność odpalania reguł przez maszynę wnioskującą. Dzieje się to jeszcze przed rozpoczęciem procesu dowodzenia poprawności celu działając na tych samych zasadach co maszyna wnioskującą i interpreter reguł. W module Infer v2.0 zaimplementowo wiele funkcji operujących na pliku z bazą wiedzy, wśród których najwaŝniejsze to: 1. runinference(atrybut, wartość) funkcja przeprowadza proces dowodzenia poprawności celu wnioskowania hipotezy podanej jako parametry funkcji. 2. facts.get(f) metoda klasy kontenerowej LinkedList(), którą jest m.in. lista faktów. Metoda get() pobiera kolejny element listy. 3. MatchToGoal(f) funkcja próbująca dopasować analizowany fakt do celu wnioskowania. Zwraca wartość true w sytuacji gdy porównywane wartości są identyczne. W przeciwnym przypadku zwraca wartość false. 4. SearchConclusionOfRules(r) funkcja sprawdza czy konkluzja analizowanej reguły daje się zunifikować z celem wnioskowania. Zwraca wartość true w przypadku sukcesu, false w przypadku poraŝki. 5. FireingRule(r) funkcja odpala daną regułę, czyli dla kaŝdego z jej warunków uruchamiany jest proces wnioskowania. Funkcja zwraca wartość true gdy dowodzenie poprawności dla kaŝdej przesłanki zakończyło się sukcesem. Wartość false zwracana jest jako rezultat funkcji wówczas, gdy co najmniej jedna przesłanka nie będzie prawdziwa. 6. AskForAttrValue(atrybut, wartość) funkcja pyta uŝytkownika o wartość analizowanego atrybutu, będącego warunkiem uaktywnionej reguły. Odpowiedź uŝytkownika dodawana jest jako nowy fakt do listy faktów. 7. showwhyexplanations() funkcja objaśnia uŝytkownikowi powód zapytania go o wartość danego atrybutu i jak podana przez niego odpowiedź wpłynie na drogę rozumowania prowadzonego przez maszynę wnioskującą. 8. showinferenceresults() funkcja ma na celu przedstawić dokładną drogę wnioskowania prowadzoną przez maszynę wnioskującą. Po wybraniu celu wnioskowania uruchamiany jest proces dowodzenia jego poprawności metodą wnioskowania wstecz. Realizuje to rekurencyjna funkcja RunInference(atrybut, wartość), której fragment przedstawiony został na poniŝszym schemacie.
7 runinference(atrybut, wartość) // najpierw przeszukiwana jest lista faktów for (int f=0 ; f < facts.size(); f++) facts.get(f); boolean fact = MatchToGoal(f); if (fact == true) f = facts.size()-1; if (fact == false) // celu nie ma w faktach // przeszukiwane są konkluzje reguł for ( int r=0 ; r < rules.size(); r++) boolean rules = SearchConclusionOfRules(r); if (rules == true) boolean fire_result = FireingRule(r); if ((fact == false) && (rules==false)) boolean ask = AskForAttrValue(atrybut, wartość); if ((fact==true) (fire_result==true) (ask==true)) return true; else return false; boolean MatchToGoal(int f) if ((fakt.attr == a)&&(fakt.valno == w)) return true; boolean FireingRule(int r) boolean iloczyn = 1; for (int w = 0 ; w <= liczba_war ; w++)... iloczyn = iloczyn * runinference(war_atr, war_val);... if (iloczyn == 1) return true; else return false; Rezultat funkcji jest pewną maską logiczną pozwalającą na poprawne wyjście z rekurencji. Funkcja RunInference() zwraca wartość całkowitą, czyli gdy rezultat = 1 to znaczy ze wszystkie przesłanki były prawdziwe a jeŝeli 0 tzn., Ŝe co najmniej jedna przesłanka nie została potwierdzona. [3][4][5]
8 6. PODSUMOWANIE Praca prezentuje schemat wykorzystania klas kontenerowych Javy do organizacji struktur danych przeznaczonych do przechowywania zawartości bazy wiedzy. Przedstawiona została struktura wewnętrzna modułu, schemat organizacji struktur danych oraz szkic metody ich przetwarzania. W rozwaŝaniach uwzględniono m.in. te właściwości Javy (oraz jej bibliotek), które pozwalają unikać wielu niedogodności typowych dla języka C/ C++, który był językiem implementacji poprzedniej wersji modułu Infer. LITERATURA [1] BOONE B., Java TM dla programistów C I C++., Warszawa, WNT, 1998 [2] ECKELL B., Thinking in Java, Helion, Gliwice, 2000 [3] NOWAK A., Realizacja modułu wnioskowania wstecz dla regułowej reprezentacji wiedzy, Praca licencjacka, Uniwersytet Śląski, Sosnowiec, 2000 [4] NOWAK A., Wieloplatoformowy moduł wnioskowania dla inteligentnych aplikacji internetowych, Praca magisterska, Uniwersytet Śląski, Sosnowiec, 2002 [5] IMPLEMENTED OF THE MULTIPLATFORMED INFERENCE ENGINE MODULE INFER v 2.0 STRUCTURE OF THE KNOWLEDGE BASE AND MODEL OF DATA STRUCTURE This paper describes the project of the knowledge rule base of system Infer v 2.0 multiplatformed inference engine module. It is also contains structure of the knowledge base and describes the main data structures used in this system. The second part presents how to use container classes in Java language which were used in this module to keep the knowledge base data.
WPŁYW INFORMACJI STATYSTYCZNEJ NA EFEKTYWNOŚĆ SYSTEMÓW WSPOMAGANIA DECYZJI
systemy wspomagania decyzji, statystyka, znaczenie informacji statystycznej. Agnieszka NOWAK * WPŁYW INFORMACJI STATYSTYCZNEJ NA EFEKTYWNOŚĆ SYSTEMÓW WSPOMAGANIA DECYZJI Praca przedstawia koncepcję wykorzystania
Agnieszka NOWAK * 1. WSTĘP
aktualizacja bazy wiedzy, systemy wspomagania decyzji, statystyka, znaczenie informacji statystycznej. Agnieszka NOWAK * PROCES AKTUALIZACJI SYSTEMU WSPOMAGANIA DECYZJI NA PODSTAWIE INFORMACJI STATYSTYCZNYCH
SYSTEMY EKSPERTOWE W INTERNECIE PROJEKT WIELOPLATFORMOWEGO MODUŁU WNIOSKOWANIA WSTECZ DLA SYSTEMU Z REGUŁOWĄ REPREZENTACJĄ WIEDZY
systemy ekspertowe, regułowe bazy wiedzy, struktura bazy wiedzy, wnioskowanie. Agnieszka NOWAK * SYSTEMY EKSPERTOWE W INTERNECIE PROJEKT WIELOPLATFORMOWEGO MODUŁU WNIOSKOWANIA WSTECZ DLA SYSTEMU Z REGUŁOWĄ
Systemy ekspertowe. Wnioskowanie w systemach regułowych. Część piąta. Autor Roman Simiński.
Część piąta Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa.
PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest
PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ Opis działania raportów w ClearQuest Historia zmian Data Wersja Opis Autor 2008.08.26 1.0 Utworzenie dokumentu. Wersja bazowa dokumentu. 2009.12.11 1.1
PODSTAWY SZTUCZNEJ INTELIGENCJI
Katedra Informatyki Stosowanej Politechnika Łódzka PODSTAWY SZTUCZNEJ INTELIGENCJI Laboratorium PROGRAMOWANIE SYSTEMÓW EKSPERTOWYCH Opracowanie: Dr hab. inŝ. Jacek Kucharski Dr inŝ. Piotr Urbanek Cel ćwiczenia
Referat pracy dyplomowej
Temat pracy : Projekt i realizacja aplikacji do tworzenia i wizualizacji drzewa genealogicznego Autor: Martyna Szymkowiak Promotor: dr inż. Romana Simińskiego Kategorie: gry, użytkowe Słowa kluczowe: The
Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API
Dr inż. Janusz Pobożniak, pobozniak@mech.pk.edu.pl Instytut Technologii Maszyn i Automatyzacji produkcji Politechnika Krakowska, Wydział Mechaniczny Integracja systemu CAD/CAM Catia z bazą danych uchwytów
MODUŁ INTERNETOWY dane statystyczne PUP
MODUŁ INTERNETOWY dane statystyczne PUP Chcąc ułatwić publikację danych statystycznych na stronach WWW Urzędów Pracy prezentujemy Państwu moduł internetowej obsługi w/w danych. Moduł ten realizuje następujące
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
Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
Programowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Instrukcja zarządzania kontami i prawami
Instrukcja zarządzania kontami i prawami uŝytkowników w systemie express V. 6 1 SPIS TREŚCI 1. Logowanie do systemu.... 3 2. Administracja kontami uŝytkowników.... 4 3. Dodawanie grup uŝytkowników....
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
Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego Łódź. Java podstawy języka, wykład 4 1
Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 03.12.2010 Łódź Java podstawy języka, wykład 4 1 Stosując blokady (synchronizację) Można doprowadzić do zablokowania wszystkich wątków Zakleszczenie
Ćwiczenie 1. Przygotowanie środowiska JAVA
Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.
Zasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
SSK - Techniki Internetowe
SSK - Techniki Internetowe Ćwiczenie 2. Obsługa formularzy. Operatory, instrukcje warunkowe oraz instrukcje pętli w PHP. Obsługa formularzy Skryptu PHP moŝna uŝyć do obsługi formularza HTML. Aby tego dokonać,
Systemy ekspertowe. PC-Shell. Sprawozdanie z bazy wiedzy
Wydział Informatyki i Nauki o Materiałach Uniwersytet Śląski Systemy ekspertowe PC-Shell Sprawozdanie z bazy wiedzy Zbigniew Kędzior Informatyka inżynierska Studia niestacjonarne Trzeci rok Grupa A 1.
Podstawy obsługi aplikacji Generator Wniosków Płatniczych
Podstawy obsługi aplikacji Generator Wniosków Płatniczych 1. Instalacja programu Program naleŝy pobrać ze strony www.simik.gov.pl. Instalację naleŝy wykonań z konta posiadającego uprawnienia administratora
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym
1. Instrukcja warunkowa a. słuŝy do wprowadzania danych oraz wprowadzania wyników b. to instrukcja decyzyjna c. to sposób przedstawienia algorytmu 2. Instrukcja, która opisuje wykonanie róŝnych czynności
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Instrukcja zmian w wersji Vincent Office
Instrukcja zmian w wersji 1.14 Vincent Office 1. Admin-zarządzanie podatnikami. a) przenoszenie planu kont między podatnikami. KaŜdy nowo załoŝony podatnik posiada wzorcowy plan kont opracowny przez naszą
java.util.* :Kolekcje Tomasz Borzyszkowski
java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących
Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.
Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 1 Wprowadzenie do narzędzia CASE
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
WSCAD. Wykład 5 Szafy sterownicze
WSCAD Wykład 5 Szafy sterownicze MenedŜer szaf sterowniczych MenedŜer szaf sterowniczych w wersji Professional oferuje pomoc przy tworzeniu zabudowy szafy sterowniczej. Pokazuje wszystkie uŝyte w schematach
GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wprowadzania danych Warszawa 2007
GEO-SYSTEM Sp. z o.o. 02-732 Warszawa, ul. Podbipięty 34 m. 7, tel./fax 847-35-80, 853-31-15 http:\\www.geo-system.com.pl e-mail:geo-system@geo-system.com.pl GEO-RCiWN Podręcznik dla uŝytkowników modułu
STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA
LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA DANYCH Z PLIKÓW MIF, SHP I ICH KONWERSJI DO POSTACI RELACYJNEJ I. Temat ćwiczenia Stworzenie biblioteki słuŝącej do wczytywania
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word
Formularz MS Word Formularz to dokument o określonej strukturze, zawierający puste pola do wypełnienia, czyli pola formularza, w których wprowadza się informacje. Uzyskane informacje moŝna następnie zebrać
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski
Systemy ekspertowe i ich zastosowania Katarzyna Karp Marek Grabowski Plan prezentacji Wstęp Własności systemów ekspertowych Rodzaje baz wiedzy Metody reprezentacji wiedzy Metody wnioskowania Języki do
Cele. Definiowanie wyzwalaczy
WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31
Strona: 1 z 31 Explorer Analyzer 1 Uruchamianie programu i raportu PoniŜsze czynności uruchamiają program Bex Analyzer oraz wybrany raport z hurtowni danych. 1. uruchom z menu Start>Programy>Business Explorer>Analyzer
Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa
Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 Ćwiczenie 5 Aplikacja wielo-okienkowa 1. Opracuj aplikację realizującą obliczenia na podstawie danych wpisywanych w komponencie
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram
Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem.
FotoSender 1. Pobranie i instalacja programu Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem. Rozpocznie
XII. Warunek wielokrotnego wyboru switch... case
XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby
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)...
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram
Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki
Systemy Rozproszone Temat projektu: Regułowy system analizujacy logi Spis treści autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Cel Projektu...2 Dane aplikacji...2 Technologia...2 Zarządzanie
DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2
InŜynieria Rolnicza 14/2005 Michał Cupiał, Maciej Kuboń Katedra InŜynierii Rolniczej i Informatyki Akademia Rolnicza im. Hugona Kołłątaja w Krakowie DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY
Liczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
System wspomagania harmonogramowania przedsięwzięć budowlanych
System wspomagania harmonogramowania przedsięwzięć budowlanych Wojciech Bożejko 1 Zdzisław Hejducki 2 Mariusz Uchroński 1 Mieczysław Wodecki 3 1 Instytut Informatyki, Automatyki i Robotyki Politechnika
Usuwanie Trojana Zbot/Zeus/Panda
Skąd pobrać program Cureit? NaleŜy wejść na stronę http://www.drweb32.pl/drweb_pobierz.php Wybrać lewym przyciskiem myszki ftp.drweb.com. Następnie wybieramy lewym przyciskiem myszki katalog cureit. W
1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.
1. Kalkulator czterech działań. Kalkulator czterech działań: +, -, *, \ (bez nawiasów). Wejście: łańcuch znakowy, np. 1+2*3\4-5\2=, -2+4e-1= Liczby mogą być w formacie, np. +1.45, -2, 1e-10. 2. Konwersja
Instrukcja warunkowa i złoŝona.
Instrukcja warunkowa i złoŝona. Budowa pętli warunkowej. JeŜeli mielibyśmy przetłumaczyć instrukcję warunkową to brzmiałoby to mniej więcej tak: jeŝeli warunek jest spełniony, to wykonaj jakąś operację
Optimizing Programs with Intended Semantics
Interaktywna optymalizacja programów 26 kwietnia 2010 Spis treści Spis treści Wstęp Omówienie zaproponowanego algorytmu na przykładzie Wewnętrzna reprezentacja reguł dotyczących optymalizacji Wybrane szczegóły
Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
2. Podstawy programu Microsoft Access
8 Wprowadzenie do projektowania baz danych 2. Podstawy programu Microsoft Access Baza danych utworzona w programie Microsoft Access składa się z wielu obiektów róŝnych typów. MoŜna podzielić je na dwie
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper
Systemy eksperowe. Agnieszka Nowak Brzezińska Wykład I
Systemy eksperowe Agnieszka Nowak Brzezińska Wykład I Zakres materiału: Metody wnioskowania w regułowych bazach wiedzy PC-Shell jako narzędzie do budowy szkieletowych systemów ekspertowych (Sprawozdanie
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
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
SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4
Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium cyfrowej techniki pomiarowej Ćwiczenie 4 Zapis danych do pliku w programie LabVIEW 1. Zapis i odczyt sygnałów pomiarowych Do zapisu
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
Współpraca Integry z programami zewnętrznymi
Współpraca Integry z programami zewnętrznymi Uwaga! Do współpracy Integry z programami zewnętrznymi potrzebne są dodatkowe pliki. MoŜna je pobrać z sekcji Download -> Pozostałe po zalogowaniu do Strefy
Opis podstawowych funkcji PC- SHELLa
Opis podstawowych funkcji PC- SHELLa addfact - instrukcja addfact umożliwia utworzenie i dodanie faktu do bazy wiedzy - w sposób dynamiczny - podczas wykonywania programu z bloku control. neditbox - Instrukcja
Programowanie Obiektowe (Java)
1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
9.5 Rozliczanie zaopatrzenia w przedmioty ortopedyczne i środki pomocnicze
Fragment instrukcji obsługi systemu SZOI przygotowanej przez P.I. Kamsoft - 09.02.2009 r. 9.5 Rozliczanie zaopatrzenia w przedmioty ortopedyczne i środki pomocnicze Obszar Sprawozdawczość/Zaopatrzenie
Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek
Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl
Krzysztof T. Psurek Politechnika Śląska Wydział Organizacji i Zarządzania
Streszczenie ARCHITEKTURA SYSTEMU EKSPERTOWEGO W PRZEDSIĘBIORSTWIE ROZPROSZONYM Krzysztof T. Psurek Politechnika Śląska Wydział Organizacji i Zarządzania ktp@ps.edu.pl W pracy przedstawiono podstawową
Lista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane
Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia
Trochę o plikach wsadowych (Windows)
Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też
9.5 Rozliczanie zaopatrzenia w przedmioty ortopedyczne i środki pomocnicze
Po zakończeniu prac z listą raportów zwrotnych naleŝy kliknąć w przycisk opcji Powrót do listy raportów. Opcja ta spowoduje przywrócenie głównego okna obszaru Sprawozdawczość. 9.5 Rozliczanie zaopatrzenia
PREZENTACJE MULTIMEDIALNE cz.2
Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni z przedmiotu Podstawy Informatyki Kod przedmiotu: TS1C 100 003 Ćwiczenie pt. PREZENTACJE MULTIMEDIALNE cz.2
Opis obsługi programu KALKULACJA
Opis obsługi programu KALKULACJA Program KALKULACJA słuŝy do obliczania opłat za przejazd pociągów po liniach kolejowych zarządzanych przez PKP Polskie Linie Kolejowe S.A. Pozwala on na dokonanie szacunkowej
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Technologia informacyjna
Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,
Skarbnik CE na PocketPC 2003
Skarbnik CE na PocketPC 2003 Niniejszy dokument przeznaczony jest dla uŝytkowników Skarbnika CE, którzy chcą wykorzystywać go na najnowszych modelach komputerów przenośnych Pocket PC, wyposaŝonych w system
Laboratorium przedmiotu Technika Cyfrowa
Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w
SYSTEM EKSPERTOWY WSPOMAGAJĄCY ORGANIZACJĘ PRACY FIRMY SPEDYCYJNEJ
SYSTEM EKSPERTOWY WSPOMAGAJĄCY ORGANIZACJĘ PRACY FIRMY SPEDYCYJNEJ Zbigniew BUCHALSKI Wprowadzenie W dzisiejszych czasach coraz częściej spotykamy się z problematyką inŝynierii wiedzy i systemów ekspertowych
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:
INWENTARYZACJA W PROGRAMIE INTEGRA
INWENTARYZACJA W PROGRAMIE INTEGRA Niniejszy dokument przedstawia zasady przeprowadzania Inwentaryzacji w programie Integra. Przydatną funkcją jest moŝliwość tworzenia arkuszy inwentaryzacyjnych wykorzystywanych
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia
ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych
Programowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Laboratorium nr 4. Temat: SQL część II. Polecenia DML
Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze
Instrukcja uŝytkownika
Instrukcja uŝytkownika Instalator systemu Rejestracji Czasu Pracy 20 listopada 2008 Wersja 1.0 Spis treści 1Wstęp... 3 2Serwer FireBird... 3 3Baza danych instalacja i rejestracja... 9 3.1Instalacja...
Komunikator internetowy w C#
PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej
ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA
LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA DANYCH NA URZĄDZENIACH MOBILNYCH I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu obsługi baz danych i języka SQL
Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja
1. Logowanie i rejestracja Aby wysłać zlecenie do laboratorium fotograficznego musisz mieć załoŝone konto. Jest to niezbędne do weryfikacji twojej osoby i daje pewność, Ŝe osoby nieupowaŝnione nie będą
Instalacja Czytnika Kart w systemie Windows 7, Windows XP, Windows Vista, Windows 2000.
Instalacja Czytnika Kart w systemie Windows 7, Windows XP, Windows Vista, Windows 2000. Dokumentacja UŜytkownika SPIS TREŚCI I. INSTALACJA CZYTNIKA KART W SYSTEMIE WINDOWS... 3 II. PONOWNA INSTALACJA CZYTNIKA
Reguły i fakty zapisz za pomocą perceptów. Metodą wnioskowania w tył, sprawdzić czy mój komputer jest wyposażony w procesor PII.
Reguły i fakty zapisz za pomocą perceptów. Metodą wnioskowania w tył, sprawdzić czy mój komputer jest wyposażony w procesor PII. 1. (cena:komputer:x1,drogi) (cecha:komputer:x1,uniwersalny) ) (obudowa:komputer:x1,duża)
Smarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Zapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
Użycie Visual Basic for Applications ("VBA")
Użycie Visual Basic for Applications ("VBA") Przegląd SEE z modułem VBA Developer SEE używa języka programowania Visual Basic for Applications (VBA) pozwalającego tworzyć krótkie programy zwane "makrami".
EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć
Politechnika Śląska Wydział Organizacji i Zarządzania Katedra Podstaw Systemów Technicznych EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Ćwiczenie 1 Wprowadzenie do zajęć Plan ćwiczenia 1. Zapoznanie się
Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING
Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.
Programowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Przyczyny dwustopniowego tłumaczenia
Generacja kodu pośredniego Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Przyczyny dwustopniowego tłumaczenia Łatwość generowania kompilatorów tego samego języka dla róŝnych platform systemowo-sprzętowych