System operacyjny Unix/Linux. Środowiska programowania. Sławomir Nowaczyk AGH. Katedra Automatyki.

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

Download "System operacyjny Unix/Linux. Środowiska programowania. Sławomir Nowaczyk Slawomir.Nowaczyk@agh.edu.pl AGH. Katedra Automatyki."

Transkrypt

1 System operacyjny Unix/Linux Wykład 3 Środowiska programowania Sławomir Nowaczyk Laboratorium Informatyki Autormatyki Akademia Górniczo-Hutnicza April 09, 2009 System operacyjny Unix/Linux Środowiska programowania p. 1/64

2 Plan wykładów Wprowadzenie do systemów operacyjnych Powłoki systemowe Laboratorium: języki skryptowe Środowiska programowania w GNU/Linux Architektura systemu GNU/Linux procesy, pamięć, wejście/wyjście, itp. Architektura systemu GNU/Linux instalacja, zarządzanie pakietami, itp. Konfiguracja i zarządzanie systemem GNU/Linux Współpraca systemu GNU/Linux z innymi komputerami i systemami operacyjnymi System operacyjny Unix/Linux Środowiska programowania p. 2/64

3 Środowisko programowania Zestaw narzędzi używanych w procesie tworzenia oprogramowania w różnych językach programowania Zintegrowane Środowisko Programistyczne Integrated Development Environment (IDE) MS Visual Studio, Borland C++ Builder,... Eclipse, Anjuta, KDevelop, NetBeans,... Kolekcja współpracujących programów większe możliwości dostosowywania łatwość dodawania nowych narzędzi większa całkowita funkcjonalność problemy z intergracją niektórych funkcji System operacyjny Unix/Linux Środowiska programowania p. 3/64

4 Składniki środowiska programowania Edytor często ponad 90% czasu pracy obsługa musi być naturalna Kompilator wiele możliwości, w praktyce równoważne za wyjątkiem specjalnych zastosowań Debugger i profiler Zarządzanie wersjami Projektowanie oprogramowania Dokumentowanie Biblioteki dodatkowe System operacyjny Unix/Linux Środowiska programowania p. 4/64

5 Funkcjonalność edytora Syntaktyczne kolorowanie składni automatyczne wcięcia ułatwienia edycyjne Semantyczne autouzupełnianie pomoc kontekstowa wyszukiwanie odwołań Organizacyjne zarządzanie projektami przeglądanie struktury kodu uruchamianie kompilatora/debuggera System operacyjny Unix/Linux Środowiska programowania p. 5/64

6 Emacs Extensible, customizable, self-documenting real-time display editor Richard M. Stallman, 1974 bazuje na jądrze napisanym w C Użytkownik ma możliwość zmiany praktycznie dowolnej funkcjonalności używając języka LISP Wszechstronny edytor tekstów w praktyce do wszystkich zastosowań Dodatkowe tryby pracy menedżer plików, kalendarz, kalkulator, i news, przeglądarka www i grafiki, Eliza,... System operacyjny Unix/Linux Środowiska programowania p. 6/64

7 Podstawy korzystania z Emacsa Rozpoczęcie i zakończenie pracy C-x C-c, C-x C-f, C-x C-s Zarządzanie buforami C-x k, C-x b, C-x left, C-x right System pomocy C-h k, C-h f, C-h v, C-h r Poruszanie się po tekście C-a, C-e, M-a, M-e, C-s, C-r Zarządzanie schowkiem M-w, C-w, C-y, M-y Undo: C-x u, C-_, C-/, M-backspace System operacyjny Unix/Linux Środowiska programowania p. 7/64

8 Emacs dla programisty Tryby pracy obsługujące praktycznie wszystkie dostępne języki programowania maybe-c-electric-semicolon automatyczne wcięcie nowej linii comment-dwim do what I mean indent-region naprawienie wcięć w zaznaczonym tekście dabbrev-expand autouzupełnianie słowa c-macro-expand rozwinięcie makra preprocesora System operacyjny Unix/Linux Środowiska programowania p. 8/64

9 CEDET Standardowe funkcje Emacsa bazują na lokalnej analizie kodu w trybie on demand Zaawansowane funkcje wymagają globalnej analizy wielu fragmentów kodu źródłowego Collection of Emacs Development Environment Tools Niezależne od języka programowania do pewnego stopnia Zintegrowane z innymi funkcjami Emacsa programowanie to nadal w dużym stopniu pisanie i edytowanie tekstu Niewiele ustępuje najlepszym środowiskom IDE System operacyjny Unix/Linux Środowiska programowania p. 9/64

10 Składniki pakietu CEDET Semantic analiza składniowa kodu źródłowego kontekstowe autouzupełnianie wyświetlanie dokumentacji Senator nawigacja w kodzie źródłowym przemieszczanie między deklaracją a definicją wyszukiwanie odwołań ukrywanie fragmentów kodu Srecode generator kodu EDE zarządzanie projektami Speedbar wyświetlanie informacji Cogre obsługa diagramów UML System operacyjny Unix/Linux Środowiska programowania p. 10/64

11 Vi Powstał w roku 1976 na potrzeby BSD Unix Bill Joy Edytor modalny tryb wstawiania tryb poleceń Umożliwia szybki dostęp do większości funkcji dla osób piszących bezwzrokowo nie ma konieczności przesuwania rąk znad rzędu podstawowego używania klawiszy typu ctrl czy alt Dostępny w każdym systemie typu *nix System operacyjny Unix/Linux Środowiska programowania p. 11/64

12 Podstawy obsługi vi Przejście w tryb wstawiania i, a, R, s Powrót do trybu poleceń: Esc Rozpoczęcie i zakończenie pracy :q, :q!, :w, ZZ, :e Edycja tekstu x, dd, y, p, r Poruszanie kursora 0, $, h, j, k, l, G Undo: u System operacyjny Unix/Linux Środowiska programowania p. 12/64

13 Eclipse Środowisko IDE powstałe dla języka Java obsługuje również wiele innych języków C/C++, Cobol, Python, Perl, PHP,... Obsługuje system wtyczek umożliwiających dodawanie nowej funkcjonalności Oferuje Eclipse Rich Client Platform środowisko uruchamiania aplikacji Popularne, dobre i rozbudowane środowisko programistyczne wysokie wymagania sprzętowe Bardzo dobra obsługa refaktoryzacji kodu Specyficzny interfejs użytkownika System operacyjny Unix/Linux Środowiska programowania p. 13/64

14 Anjuta Środowisko IDE dla systemu GNU/Linux powstające w ramach projektu GNOME obsługuje głównie języki C i C++ pewne wsparcie dla innych języków Java, JavaScript, Perl, PHP, HTML,... Zintegrowane z narzędziem GLADE do tworzenia GUI Łatwa i intuicyjna obsługa Dość ograniczona funkcjonalność Projekt aktywnie rozwijany System operacyjny Unix/Linux Środowiska programowania p. 14/64

15 KDevelop Środowisko IDE dla systemu GNU/Linux powstające w ramach projektu KDE obsługuje wiele języków programowania Ada, Bash, C, C++, Fortran, Java, Pascal, Perl, Python, Ruby,... Edytor tekstu Kate GUI Designer Możliwość rozszerzania funkcjonalności poprzez mechanizm wtyczek Projekt aktywnie rozwijany System operacyjny Unix/Linux Środowiska programowania p. 15/64

16 Kompilacja Proces kompilacji składa się z czterech kroków preprocesing (prekompilacja) kompilacja (do kodu asemblera) asemblacja (do kodu maszynowego) łączenie (konsolidacja) GNU Compiler Collection najpopularniejszy kompilator dla GNU/Linux Fortran, Pascal, Objective C, Java, Ada,... Rozszerzenie pliku określa w jaki sposób należy dany plik potraktować gcc test.cpp lub gcc test.java gcc -o test test.c System operacyjny Unix/Linux Środowiska programowania p. 16/64

17 Preprocesor gcc -E test.c Preprocesor jest stosunkowo prostym programem przetwarzającym pliki tekstowe włączanie plików źródłowych definiowanie makr kompilacja warunkowa Typowe dyrektywy preprocesora #include <stdio.h> #include "stdio.h" #define ROZMIAR 20 #ifdef GNUC #endif System operacyjny Unix/Linux Środowiska programowania p. 17/64

18 Kompilator gcc -S test.c Wykonuje prawdziwą pracę zamienia kod w języku wysokiego poziomu na kod w asemblerze Różne poziomy optymalizacji kodu wynikowego gcc -O3 test.c gcc -funroll-loops test.c Pozwala na zapisywanie dodatkowych informacje przydatnych dla debuggera np. określenie miejsc w pamięci operacyjnej odpowiadającech konkretnym zmiennym gcc -g test.c System operacyjny Unix/Linux Środowiska programowania p. 18/64

19 Asembler gcc -c test.c Tworzy kod maszynowy zamienia mnemoniki na kody operacji nazwy symboliczne na adresy pamięci Stosunkowo prosta operacja translacja jest w większości przypadków 1:1 Ostateczny wynik jest zależny od konkretnego procesora lub rodziny procesorów zbiór rozkazów dostępne rejestry Cross-compilation System operacyjny Unix/Linux Środowiska programowania p. 19/64

20 Linker gcc test.c utils.o Umożliwia łączenie kilku modułów które zostały skompilowane osobno moduł może definiować własne symbole odwoływać się do symboli zdefiniowanych w innych modułach symbolami mogą być zmienne i funkcje Często używane a rzadko modyfikowane moduły nie muszą być za każdym razem kompilowane Łączenie statyczne powstaje kod wykonywalny zawierający definicje wszystkich niezbędnych symboli System operacyjny Unix/Linux Środowiska programowania p. 20/64

21 gcc GNU Compiler Collection Aktualna wersja: (21 stycznia 2010) Jeden z kluczowych elementów projektu GNU początkowo kompilator języka C później rozbudowany o dodatkowe moduły Dostępny dla większości systemów operacyjnych Dostępny dla większości platform sprzętowych Oferuje wsparcie dla wielu języków C i C++ Java Ada Fortran System operacyjny Unix/Linux Środowiska programowania p. 21/64

22 Język C Stworzony w roku 1972 przez Dennisa Ritchie na bazie języka ALGOL Jeden z najbardziej popularnych języków programowania w historii informatyki Dostępny dla praktycznie każdej istniejącej architektury sprzętowej Język proceduralny niskiego poziomu nieskomplikowany kompilator proste odwzorowanie poziomu sprzętu minimalne wymagania w trakcie wykonywania programów System operacyjny Unix/Linux Środowiska programowania p. 22/64

23 Język C K&R C The C Programming Language Brian Kernighan and Dennis Ritchie, 1978 Standard: ANSI C and ISO C C89 lub C90 Standard C99 //, deklaracje zmiennych wewnątrz kodu inline functions, variable-length arrays gcc -std=c99 program.c Standard C1X multithreading, improved Unicode support, bounds-checking interfaces System operacyjny Unix/Linux Środowiska programowania p. 23/64

24 Debugger Wyszukiwanie błędów w programach jest trudne często trudniejsze niż samo ich pisanie Debugger służy do śledzenia i analizowania działania programu Zatrzymanie programu na określonej instrukcji jeśli spełnione są odpowiednie warunki przy dostępie do określonej zmiennej Analiza stanu programu wartości zmiennych i parametrów Wykonywanie programu krok po kroku śledzenie przepływu sterowania System operacyjny Unix/Linux Środowiska programowania p. 24/64

25 gdb GNU Project Debugger gdb test GDB , Copyright 1999 Free Software Foundation, Inc... (gdb) break oblicz Breakpoint 1 at 0x62f4: file test.c, line 20. (gdb) run Starting program: /home/slawek/test Breakpoint 1, oblicz (argc=2, argv=0x33c70) at test.c:20 20 if (argc>2) System operacyjny Unix/Linux Środowiska programowania p. 25/64

26 gdb i Emacs gdb można uruchomić w środowisku Emacs jednolity interfejs do innych narzędzi dbx, perldb, jdb, pdb,... Definiowanie, usuwanie, blokowanie punktów wstrzymania przy użyciu myszki klikając na krawędzi okna Wykonanie programu do pozycji kursora C-c C-u lub gud-until Wykonywanie fragmentów kodu poprzez przeciągnięcie myszką Wyświetlanie wartości zmiennych w czasie rzeczywistym System operacyjny Unix/Linux Środowiska programowania p. 26/64

27 make Formuła typu gcc test.c działa dobrze dla małych programów Większość aplikacji składa się z wielu modułów skomplikowane zależności wymagana konkretna kolejność kompilacji dodatkowe pliki pomocnicze Pozwala na bezpośrednie specyfikowanie zależności między modułami w postaci deklaratywnej reguły tworzenia konkretnego pliku wstępne warunki do ich odpalenia Automatycznie wyznacza kolejność kompilacji System operacyjny Unix/Linux Środowiska programowania p. 27/64

28 Makefile Definicja makr CC = gcc CFLAGS = -O3 Lista reguł target [target...] : [dependent...] <tab> [ command...] <tab> [ command...] make uruchamia pierwszą regułę z pliku można wybrać make install Polecenia dla reguły można wykonać gdy wszystkie warunki wstępne są spełnione pliki istnieją i są aktualne System operacyjny Unix/Linux Środowiska programowania p. 28/64

29 Przykładowy Makefile all: main install: all cp./main /usr/bin/ main: test.o utils.o gcc -o./main main.c test.o utils.o test.o: test.c $(CC) $(CFLAGS) $? $(LDFLAGS) -o utils.o: utils.c $(CC) $(CFLAGS) $? $(LDFLAGS) -o test.o utils.o: header.h clean: -rm *.o *.bak System operacyjny Unix/Linux Środowiska programowania p. 29/64

30 Automake Automatyczne tworzenie plików Makefile Automatycznie sprawdza dyrektywy #include przy użyciu kompilatora gcc unika trudnych do wykrycia błędów Wystarczy podać nazwę programu i listę plików źródłowych parametry dla kompilatora i linkera Wynikowy Makefile pozwoli skompilować i zainstalować program usunąć pliki *.o odinstalować program przygotować archiwum do dystrybucji System operacyjny Unix/Linux Środowiska programowania p. 30/64

31 Apache Ant Program w założeniach podobny do make Bazuje na formacie XML Łatwiejsze specyfikowanie zależności Reguły nie tylko dla pojedynczych plików ale też dla zbiorów spełniających zadane warunki Hierarchiczna struktura pliku Możliwość definiowania atrybutów warunkowych Bardziej przenośny rm -rf classes/ <delete dir="classes"/> System operacyjny Unix/Linux Środowiska programowania p. 31/64

32 Apache Ant <project name="hello" default="compile"> <target name="clean" description="clean"> <delete dir="cls"/> </target> <target name="clobber" depends="clean"> <delete file="hello.jar"/> </target> <target name="compile"> <mkdir dir="cls"/> <javac srcdir="." destdir="cls"/> </target> <target name="jar" depends="compile"> <jar destfile="hello.jar"> <fileset dir="cls" includes="**/*.class"/> <manifest> <attribute name="main-class" value="hi"/> </manifest> </jar> </target> </project> System operacyjny Unix/Linux Środowiska programowania p. 32/64

33 scons Program w założeniach podobny do make Pliki konfiguracyjne są skryptami Pythona programista ma dostęp do pełnego języka ogólnego przeznaczenia Sprawdzanie aktualności plików przy użyciu MD5 zamiast znaczników czasowych Program([ prog.c, f1.c, f2.c ]) common = [ common1.c, common2.c ] foo_files = [ foo.c ] + common bar_files = [ bar1.c, bar2.c ] + common Program( foo, foo_files) Program( bar, bar_files) System operacyjny Unix/Linux Środowiska programowania p. 33/64

34 configure Dopasowanie procesu kompilacji programu to specyfiki konkretnego systemu sprawdzenie wersji kompilatora wyszukanie wymaganych bibliotek ustawienie odpowiednich makr preprocesora Wiele systemów *nix oferuje podobne funkcje często umieszczone w innych plikach drobne różnice np. w typach danych różne nazwy parametrów kompilatora System operacyjny Unix/Linux Środowiska programowania p. 34/64

35 configure Przykład pliku configure.in AC_INIT(poke.c) AM_INIT_AUTOMAKE(poke, 1.0) AM_CONFIG_HEADER(config.h:config.in) AC_PROG_CC AC_HEADER_STDC AC_CHECK_HEADERS(utime.h) AC_EGREP_HEADER(utimbuf, utime.h, AC_DEFINE(HAVE_STRUCT_UTIMBUF)) AC_FUNC_UTIME_NULL AC_OUTPUT(Makefile) System operacyjny Unix/Linux Środowiska programowania p. 35/64

36 CVS System wersjonowania plików Concurrent Versioning System Zapamiętuje zmiany wprowadzone w plikach Pozwala powrócić do poprzedniej wersji kodu Przydatne zwłaszcza jeśli wielu programistów pracuje nad wspólnym kodem zmiany wprowadzone przez jedną osobę nie zostaną nadpisane przez innych informowanie o ewentualnych konfliktach i pomoc w ich rozwiązywaniu pozwala do każdej wprowadzonej zmiany przypisać słowny opis System operacyjny Unix/Linux Środowiska programowania p. 36/64

37 Składnia CVS cvs import -m "Sample Program" cvs checkout project cvs commit -m "Fixed a bug" main.c cvs status foo.c File: foo.c Status: Needs Merge cvs update foo.c RCS file: /cvsroot/project/foo.c,v retrieving revision retrieving revision 1.2 Merging differences between and 1. rcsmerge: warning: conflicts during merge cvs update: conflicts found in foo.c C foo.c System operacyjny Unix/Linux Środowiska programowania p. 37/64

38 CVS Zarządzanie zmianami które nie powinny znaleźć się w głównym repozytorium projektu branches Wydzielenie niezależnych podprojektów kolejne wersje oprogramowania funkcjonalność eksperymentalna Tworzenie nowej gałęzi cvs tag branch_name Przeniesienie wszystkich zmian z gałęzi do głównego repozytorium cvs co -j branchname my_prog System operacyjny Unix/Linux Środowiska programowania p. 38/64

39 Subversion Unowocześniony CVS Poprawia wiele problemów z CVS nie zmieniając ogólnej idei pracy z systemem operacja commit jest atomowa istnieje możliwość zmiany nazwy i kopiowania plików poprawione wsparcie dla plików binarnych wersjonowanie katalogów wersjonowanie dowiązań symbolicznych lepsza obsługa odgałęzień System operacyjny Unix/Linux Środowiska programowania p. 39/64

40 Git Rozproszony system wersjonowania odejście od założenia o istnieniu jednego głównego repozytorium wsparcie dla projektów silnie nieliniowych Silny nacisk na wydajność w dużych projektach napisany w C Wykorzystywany przez wiele projektów Linux GNOME GIMP Debian Android System operacyjny Unix/Linux Środowiska programowania p. 40/64

41 Mercurial Zaimplementowany w języku Python Każdy programista może utrzymywać swój własny zestaw zmian nie musi wszystkich udostępniać innym Wiele operacji można wykonywać lokalnie bez połączenia z Internetem Wykorzystywany przez wiele projektów Mozilla OpenOffice.org MoinMoin Vim System operacyjny Unix/Linux Środowiska programowania p. 41/64

42 Darcs Zaimplementowany w języku Haskell Bazuje na theory of patches podstawą nie jest aktualny widok całego kodu ale raczej zbiór łatek ze zdefiniowanym częściowym porządkiem Umożliwia udostępnianie dowolnego zestawu wprowadzonych zmian praca nad wieloma fragmentami projektu spontaneous branches Wykorzystywany przez wiele projektów fish ghc Zwiki System operacyjny Unix/Linux Środowiska programowania p. 42/64

43 Bazaar Zaimplementowany w języku Python Umożliwia pracę z lub bez centralnego serwera w zależności od potrzeb Z punktu widzenia użytkownika podobny do CVS w dużym stopniu ukrywa dodatkowy poziom komplikacji związany z rozproszeniem systemu Wykorzystywany przez wiele projektów Ubuntu GNU Emacs MySQL Squid System operacyjny Unix/Linux Środowiska programowania p. 43/64

44 Profiler gprof Premature optimization is the root of all evil Rules of Optimization: Rule 1: Don t do it. Rule 2 (for experts only): Don t do it yet. Programy często działają zbyt wolno 10% kodu odpowiada za 90% czasu pracy System operacyjny Unix/Linux Środowiska programowania p. 44/64

45 Biblioteki Moduły oferujące innym programom określoną funkcjonalność Biblioteki mogą być łączone statycznie gcc -lreadline test.c Łączenie dynamiczne brakujące symbole zostaną znalezione w czasie uruchomienia programu często używane biblioteki nie muszą być duplikowane w pamięci uaktualnienie biblioteki oznacza automatyczne uaktualnienie wszystkich korzystających z niej programów komplikuje proces uruchamiania programów System operacyjny Unix/Linux Środowiska programowania p. 45/64

46 Biblioteki współdzielone Umieszczone w plikach *.so libreadline.so gcc -lreadline test.c Program ldconfig utrzymuje cache bibliotek współdzielonych które mogą być ładowane przy uruchomieniu programów przyspiesza uruchamianie programów Tworzenie biblioteki współdzielonej gcc -fpic -Wall -c mystuff.c gcc -shared -Wl,-soname,libmystuff.so.1 -o libmystuff.so *.o -lc Może istnieć wiele wersji danej biblioteki System operacyjny Unix/Linux Środowiska programowania p. 46/64

47 Biblioteki współdzielone Lista bibliotek używanych przez aplikację ldd emacs Lista symboli zdefiniowanych w bibliotece nm libreadline.so Biblioteki znane w czasie kompilacji readline Biblioteki odkrywane w czasie działania programu plugins dlopen() dclose() dlsym() System operacyjny Unix/Linux Środowiska programowania p. 47/64

48 glibc Standardowa biblioteka języka C Stworzona w ramach projektu GNU większość kompilatorów C oferuje własne wersje biblioteki standardowej są dostępne alternatywne implementacje dla kompilatora gcc Implementuje funkcje wymagane przez standard Single UNIX Specification POSIX (1c, 1d, 1j) częściowo ISO C99 Automatycznie dołączana do programów gcc -lc test.c System operacyjny Unix/Linux Środowiska programowania p. 48/64

49 readline Biblioteka ułatwiająca edycję linii komend historia poleceń autouzupełnianie Powstała na potrzeby bash wykorzystywana przez wiele programów Prosty interfejs programowy char *readline (const char *prompt); Dodanie polecenia do historii add_history (line); Przypisywanie funkcji do klawiszy rl_bind_key ( \t, rl_insert); System operacyjny Unix/Linux Środowiska programowania p. 49/64

50 Użycie readline Własna konstrukcja funkcji autouzupełniania rl_completion_function = my_completion; char** my_completion (text, start, end) { matches = (char **)NULL; if (start == 0) match=rl_completion_matches(text,gen); return (match); } char* gen(text, state) { if (!state) { index = 0; } while (name = cmd[index].name) { index++; if (strncmp (name, text, len) == 0) return (dupstr(name)); } return ((char *)NULL); } System operacyjny Unix/Linux Środowiska programowania p. 50/64

51 getopts Biblioteka parsująca argumenty linii poleceń zgodnie ze standardem GNU/Linux int getopt (int argc, char **argv, const char *options) Argument options definiuje format parametrów akceptowanych przez program options = "ab:c::" prog -a -b 123 -c abc Funkcja getopt_long pozwala również parsować opcje w długim formacie prog --version System operacyjny Unix/Linux Środowiska programowania p. 51/64

52 GLib Biblioteka zawierająca funkcje pomocnicze ogólnego przeznaczenia początkowo fragment projektu GTK+ Struktury danych lists, hash tables, dynamic strings & arrays, balanced trees, quarks, relations, tuples... Narzędzia do obsługi łańcuchów znaków lexical scanner, string chunks... Obsługa wątków mutexes, asynchronous queues, secure memory pools, message passing, hook functions, timers... System operacyjny Unix/Linux Środowiska programowania p. 52/64

53 Boost C++ libraries Ponad 80 bibliotek z różnych dziedzin rozszerzają bibliotekę standardową Licencja pozwala na używanie zarówno w programach otwartych jak i zamkniętych Wysoka jakość kodu i interfejsów CRC, Date_Time, Filesystem, Foreach, Interprocess, Math, Program Options, Preprocessor, Regex, Thread, Tribool, Tuple, Units, Variant System operacyjny Unix/Linux Środowiska programowania p. 53/64

54 Boost library Asio: przenośne programowanie sieciowe Format: silnie typowane zastępstwo dla printf GIL: Generic Image Library MPL: algorytmy operujące na szablonach w czasie kompilacji Parameter: przekazywanie parametrów do funkcji przy użyciu nazw Python: interfejs między C++ a Pythonem Smart Ptr: sprytne wskaźniki Test: wsparcie dla testowania Unordered: tablica haszująca System operacyjny Unix/Linux Środowiska programowania p. 54/64

55 sqlite Prosty system zarządzania bazą danych zgodny ze standardem SQL-92 Wszystkie dane są przechowywane w pojedynczym pliku nie jest wymagana żadna instalacja Oferuje pełną obsługę transakcji ACID Zawiera prosty program tekstowy do obsługi Bibliotekę oraz API do wielu języków programowania Perl, Ruby, C++, Delphi, Python, Java, Tcl,... Używana np. w przeglądarce Firefox przechowuje profile użytkowników System operacyjny Unix/Linux Środowiska programowania p. 55/64

56 SQL syntax CREATE TABLE students FirstName TEXT, LastName TEXT, Age INT) INSERT INTO students VALUES ( Slawek, Nowaczyk,30) INSERT INTO students (FirstName,LastName) VALUES ( Slawek, Nowaczyk ) DELETE FROM students WHERE FirstName= Slawek UPDATE students SET Age= 31 WHERE LastName= Nowaczyk System operacyjny Unix/Linux Środowiska programowania p. 56/64

57 SQL syntax SELECT LastName,FirstName FROM students SELECT * FROM students SELECT * FROM students WHERE FirstName= Slawek SELECT * FROM students ORDER BY Age SELECT * FROM students ORDER BY Age DESC SELECT * FROM students,teachers WHERE students.lastname=teachers.lastname ORDER BY teachers.salary System operacyjny Unix/Linux Środowiska programowania p. 57/64

58 Doxygen Narzędzie do generowania dokumentacji z kodu źródłowego C++, C, Java, Objective-C, Python,... Tworzy dokumentację w wielu formatach HTML, L A TEX, PDF, RTF,... Dokumentacja dla poszczególnych klas, zmiennych, funkcji i parametrów informacje są umieszczone bezpośrednio w kodzie źródłowym łatwo zapewnić ich aktualność Duże możliwości dostosowywania wyniku do wizualnych preferencji użytkownika System operacyjny Unix/Linux Środowiska programowania p. 58/64

59 Doxygen /** *The time class represents a moment of time John Doe*/ class Time { /** * Constructor: sets the time to value. timemillis Number of milliseconds * passed since Jan 1, */ Time(int timemillis) {} /** * Get the current time. A time object set to * the current time. */ static Time now() {}}; System operacyjny Unix/Linux Środowiska programowania p. 59/64

60 Glade Narzędzie do tworzenia graficznych interfejsów użytkownika przy użyciu WYSIWYG GTK+ (GIMP ToolKit) Gnome toolkit Wspiera wiele języków programowania C, C++, Ada95, Python, Perl, Eiffel,... Umożliwia dynamiczne tworzenie interfejsów użytkownika w czasie wykonania programu na podstawie specyfikacji w formacie XML Projekt aktywnie rozwijany aktualna wersja z 10 marca 2010 System operacyjny Unix/Linux Środowiska programowania p. 60/64

61 Valgrind MemCheck Powszechnie uznawany za najlepszy program do wyszukiwania błędów dostępu do pamięci pamięć przydzielona i nigdy nie zwolniona używanie pamięci przed jej zainicjalizowaniem lub po zwolnieniu odczyt/zapis poza granicami bufora valgrind --leak-check=yes myprog arg1 Invalid write of size 4 at 0x804838F: f (example.c:6) by 0x80483AB: main (example.c:11) Address 0x1BA45050 is 0 bytes after a block o at 0x1B8FF5CD: malloc (vg_replace_malloc.c: by 0x : f (example.c:5) System operacyjny Unix/Linux Środowiska programowania p. 61/64

62 Boehm Garbage Collector Zastępuje parę malloc/free przydzielanie pamięci działa analogicznie do standardowego malloc wywoływanie free nie jest konieczne GC automatycznie zwalnia pamięć do której nie ma więcej odwołań Algorytm mark-sweep periodycznie przegląda i oznacza wszystkie obiekty do których nadal jest dostęp usuwa pozostałe Obsługuje programy wielowątkowe i systemy wieloprocesorowe System operacyjny Unix/Linux Środowiska programowania p. 62/64

63 ArgoUML Narzędzie do tworzenia diagramów UML wspiera wszystkie rodzaje diagramów ze standardu UML 1.4 Aktualna wersja 0.30 z 6 marca 2010 Środowisko pracy zawiera trzy typy elementy projekt model jeden lub więcej diagramów Działa na większości popularnych platform napisany w języku Java Mało ergonomiczny interfejs użytkownika od lat brakuje funkcji undo System operacyjny Unix/Linux Środowiska programowania p. 63/64

64 Pytania? System operacyjny Unix/Linux Środowiska programowania p. 64/64

Programowanie w C. dr inż. Stanisław Wszelak

Programowanie w C. dr inż. Stanisław Wszelak Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania Język C Budowa programu napisanego w języku C podział na pliki z definicjami funkcji, korzystanie z bibliotek systemowych i własnych automatyzacja kompilacji za pomocą make dzielenie

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Automatyzacja kompilacji. Automatyzacja kompilacji 1/28

Automatyzacja kompilacji. Automatyzacja kompilacji 1/28 Automatyzacja kompilacji Automatyzacja kompilacji 1/28 Automatyzacja kompilacji 2/28 Wstęp Polecenia kompilacji gcc -Wall -c komunikat.c -o komunikat.o gcc -Wall -c main.c -o main.o gcc -Wall -c test.c

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Środowiska i platformy programistyczne

Środowiska i platformy programistyczne Środowiska i platformy programistyczne 1 Rys historyczny lata 80-90: efektywność! Cel: zwiększyć efektywność programisty jedno narzędzie: integracja edytor kodu, funkcje programistyczne (kompilacja, łączenie,

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Kompilacja i scalanie programów w linii poleceń gcc i make

Kompilacja i scalanie programów w linii poleceń gcc i make Kompilacja i scalanie programów w linii poleceń gcc i make Małgorzata Stankiewicz kwiecień 2012 Małgorzata Stankiewicz () gcc i make kwiecień 2012 1 / 26 GCC - GNU Compiler Collection GCC Zestaw kompilatorów

Bardziej szczegółowo

Środowisko NetBeans. Paweł Boguszewski

Środowisko NetBeans. Paweł Boguszewski Środowisko NetBeans Paweł Boguszewski Plan prezentacji Wprowadzenie Historia Funkcjonalność Kierunek Rozwoju Wtyczki Platforma NetBeans Podsumowanie Wprowadzenie NetBeans.org projekt OpenSource zapoczątkowany

Bardziej szczegółowo

Przygotowanie platformy projektowo-programowej

Przygotowanie platformy projektowo-programowej Przygotowanie platformy projektowo-programowej Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej dr inż. Łukasz Szustak Agenda System Kontroli Wersji (SVN) Zintegrowane

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

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

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Bardziej szczegółowo

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010 System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy

Bardziej szczegółowo

Programowanie obiektowe

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ąć

Bardziej szczegółowo

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA... WARCABY Spis treści PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...9 1.PRZYJĘTE ZASADY GRY 1. W grze bierze

Bardziej szczegółowo

Systemy zarządzania wersjami

Systemy zarządzania wersjami 24 października 2007 Po co? Dla kogo? Dlaczego? aby ułatwić kontrolę nad projektem aby panować nad wersjami aby móc śledzić zmiany dla każdego projektu, przy którym pracuje więcej niż jedna osoba dla ludzi

Bardziej szczegółowo

Fragment wykładu z języka C ( )

Fragment wykładu z języka C ( ) Fragment wykładu z języka C (2002-2009) Piotr Szwed pszwed@agh.edu.pl Program make Typowy program w języku C/C++ składa się z wielu odrębnych modułów (jednostek translacji). Ich liczba może dochodzić do

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil Środowisko Krzysztof Świentek Systemy wbudowane Spis treści 1 2 Źródła 1 http://infocenter.arm.com 2 http://www.keil.com/arm/mdk.asp 3 http://pl.wikipedia.org Spis treści 1 2 Co to jest toolchain? Zbiór

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 1. Wstęp do Wstępu Bartek Wilczyński bartek@mimuw.edu.pl Po pierwsze - Formalności 2 kolokwia (po 15 pkt) początek XI i koniec XII Dwa programy zaliczeniowe:

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD). Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD). Rapid Application Development RAD Szybkie tworzenie programów użytkowych (Rapid Application Development RAD) jest mającą

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

Bardziej szczegółowo

Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot

Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C mgr inż. Arkadiusz Chrobot 21 października 2010 1 Wprowadzenie Pisząc programy w języku C, szczególnie te duże, nie musimy umieszczać całości

Bardziej szczegółowo

Wykład 1

Wykład 1 Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego

Bardziej szczegółowo

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar

Bardziej szczegółowo

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz

Bardziej szczegółowo

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

Bardziej szczegółowo

CVS system kontroli wersji

CVS system kontroli wersji CVS system kontroli wersji Agenda Podstawowe pojęcia Podstawowe polecenia Metody dostępu do repozytorium Konfiguracja i używanie aplikacji klienckich Konflikty i ich rozwiązywanie Dodatkowe możliwości

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj 2014 - Poznań, Polska

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj 2014 - Poznań, Polska X PIWO 17 Maj 2014 - Poznań, Polska Portowanie Tizena na nowe architektury na przykładzie ARMv6 Maciej Wereski Samsung R&D Institute Poland Plan prezentacji Środowisko budowania Tizena Infrastruktura GBS

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux IBM SPSS Statistics - ssentials for R: Instrukcje instalacji dla Linux Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics - ssentials for R w systemach operacyjnych Linux. Przegląd

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania Wprowadzenie do programowania Olsztyn 2007-2012 Wojciech Sobieski Podstawowe pojęcia Język - jest to ogólna nazwa zdefiniowanego zbioru znaków i symboli oraz reguł określających sposoby i kolejność ich

Bardziej szczegółowo

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Programowanie I. Kornel Warwas. ATH Katedra Matematyki i Informatyki

Programowanie I. Kornel Warwas. ATH Katedra Matematyki i Informatyki Programowanie I Kornel Warwas ATH Katedra Matematyki i Informatyki 2 Algorytm Algorytm skończony, uporządkowany ciąg zdefiniowanych czynności, koniecznych do wykonania określonego zadania w ograniczonej

Bardziej szczegółowo

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL Katedra Informatyki, Uniwersytet Rzeszowski 2009 Agenda System kontroli wersji CVS SVN Praca z SVN i Visual

Bardziej szczegółowo

Programowanie wizualne

Programowanie wizualne Wykład 3 Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 11 marca 2016 Możliwość pokazywania (czyli wizualizacji) danych. Najprostszy przykład: from p y l a b import

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe W. Complak, J.Kniat, M. Antczak, K. Kwarciak, G. Palik, A. Rybarczyk, Ł. Wielebski Materiały Programowanie niskopoziomowe http://www.cs.put.poznan.pl/arybarczyk/c_w_0.pdf Spis treści 1. Instalacja środowiska

Bardziej szczegółowo

Język programowania PASCAL

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

Bardziej szczegółowo

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11 Kod szkolenia: Tytuł szkolenia: C/BOOST Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11 Dni: 4 Opis: Uczestnicy podczas szkolenia zapoznają się z metodami wytwarzania oprogramowania

Bardziej szczegółowo

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4 Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest

Bardziej szczegółowo

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

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

Bardziej szczegółowo

Języki i metody programowania I

Języki i metody programowania I Języki i metody programowania I dr inż. Piotr Szwed Katedra Informatyki Stosowanej C2, pok. 403 e-mail: pszwed@agh.edu.pl http://home.agh.edu.pl/~pszwed/ Aktualizacja: 2012-10-04 Informacje o przedmiocie

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

Q E M U. http://www.qemu.com/ http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Środowisko programisty. Środowisko programisty 1/35

Środowisko programisty. Środowisko programisty 1/35 Środowisko programisty Środowisko programisty 1/35 Środowisko programisty 2/35 Literatura 1. Butcher P., Debugowanie. Jak wyszukiwać i naprawiać błędy w kodzie oraz im zapobiegać, Helion, Gliwice 2010

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Bardziej szczegółowo

Partnerzy: Laboratorium 15

Partnerzy: Laboratorium 15 Laboratorium 15 System kontroli wersji. Mercurial wraz z Subversion, CVS czy też programem Git należy do grupy aplikacji określanych mianem systemów kontroli wersji. Umożliwiają one sprawną prace wielu

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Król Łukasz Nr albumu: 254102

Król Łukasz Nr albumu: 254102 Król Łukasz Nr albumu: 254102 Podstawy o Delphi Język programowania, którego można używać w środowiskach firmy Borland, Embarcadero, Microsoft (Delphi Prism), oraz w środowisku Lazarus. Narzędzia te są

Bardziej szczegółowo

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR

Programowanie mikrokontrolerów AVR Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Wybrane narzędzia wspomagające dokumentowanie programu

Wybrane narzędzia wspomagające dokumentowanie programu Wybrane narzędzia wspomagające dokumentowanie programu Krzysztof Gogól Paweł Konieczny Uniwersytet Warszawski 18 III 2008 Plan prezentacji 1 Wprowadzenie 2 Wstęp Dobre praktyki Przykłady 3 - co to? - pierwsze

Bardziej szczegółowo

GIT. System Kontroli wersji GIT. Rafał Kalinowski

GIT. System Kontroli wersji GIT. Rafał Kalinowski GIT System Kontroli wersji GIT Rafał Kalinowski Agenda Czym jest GIT? Modele pracy Możliwości GIT a Kilka słów o terminologii Obiekty w GIT ie? Struktura zmian Operacje zdalne i lokalne Podstawowe operacje

Bardziej szczegółowo

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp Krótki kurs obsługi środowiska programistycznego Turbo Pascal 7.0 1 z 12 Wstęp Środowisko programistyczne Turbo Pascal, to połączenie kilku programów w jeden program. Środowisko to zawiera m.in. kompilator,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios Politechnika Poznańska, Instytut Informatyki, TWO/GE Programowanie dla ios 13 stycznia 2012 Urządzenia ios Urządzenie Data prezentacji iphone 9.01.2007/06.2007 ipod touch 5.09.2007 iphone 3G 9.06.2008

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania Wstęp do Informatyki Program, proces tworzenia programu Środowisko programistyczne Języki programowania Program - definicje Program jest przekładem problemu użytkownika na język maszyny Niklaus Wirth:

Bardziej szczegółowo

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

Bardziej szczegółowo

Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski

Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski Sposoby wykrywania i usuwania błędów Tomasz Borzyszkowski Mylić się jest rzeczą ludzką Typy błędów: błędy specyfikacji: źle określone wymagania błędy projektowe: nieodpowiednie struktury danych i algorytmy

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota Optymalizacja programów Open Source Profilery wysokiego poziomu część 2 Krzysztof Lichota lichota@mimuw.edu.pl gprof gprof Pomiar działa na zasadzie instrumentacji kompilowanego kodu (wejścia i wyjścia

Bardziej szczegółowo

Język ludzki kod maszynowy

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

Bardziej szczegółowo

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A. DSL w środowisku Eclipse Grzegorz Białek Architekt techniczny, Sygnity S.A. Agenda Wstęp do tematu (10 min) Sens tworzenia języków biznesowych UML jako język biznesu? Zintegrowane środowisko deweloperskie

Bardziej szczegółowo

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o. STRONA GŁÓWNA ` Usługa earchiwizacja.pl przeznaczona jest zarówno dla osób indywidualnych, jak i firm. Wykorzystuje zasadę przetwarzania danych w chmurze. Pozwala to na dostęp do własnej bazy dokumentów

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Kernel Kompilacja jądra

Kernel Kompilacja jądra Kernel Kompilacja jądra systemu Co to jest jądro systemu operacyjnego Jądro systemu operacyjnego jest rozpowszechniane na licencji GNU General Public License (GPL) określonej przez konsorcjum Free Software

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 14 1 / 9 Plan wykładu 1 Sesja egzaminacyjna

Bardziej szczegółowo