Platforma.NET Wykªad 2 Skªadowe platformy.net

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

Download "Platforma.NET Wykªad 2 Skªadowe platformy.net"

Transkrypt

1 Platforma.NET Wykªad 2 Skªadowe platformy.net Marek Sawerwain Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Ostatnia kompilacja pliku: 9 marca 2017, t: 19:26 V1.1 1/ 47

2 Spis tre±ci 1 Wprowadzenie Plan wykªadu 2 Elementy.NET / Biblioteka klas Analiza skªadowych platformy.net Common Language Runtime (CLR) Common Language Specication Common Type Systems (CTS) Przegl d j zyków programowania.net Analiza biblioteki klas 3 Podzespóª/IL Budowa podzespoªu J zyk po±redni Kompilacja i wykonywanie programów IL Przykªady programów Tabela instrukcji wybór 4 Ju» za tydzie«na wykªadzie V1.1 2/ 47

3 Plan wykªadu Plan wykªadu tydzie«po tygodniu (1) Informacje o wykªadzie, poj cie platformy, podstawowe informacje o platformie.net, (2) Skªadowe platformy.net: CLR, CTS, j zyki programowania, biblioteki klas, poj cie podzespoªu (ang. assembly), (3) Programowanie w C# ±rodowisko VS, MonoDevelop, syntaktyka C#, wyj tki, wspóªpraca z DLL, (4) Programowanie w C# model obiektowy, typy uogólnione, lambda wyra»enia, (5) Programowanie w C# aplikacje okienkowe, programowanie wielow tkowe. (6) Programowanie w F# podstawy, przetwarzanie danych tekstowych, (7) "Klasówka I", czyli wst p do egzaminu cze± pierwsza (8) Dost p do baz danych V1.1 3/ 47

4 Plan wykªadu Plan wykªadu tydzie«po tygodniu (9) J zyk zapyta«linq (10) Obsªuga standardu XML (11) Technologia ASP.NET (12) ASP.NET Model View Controller (13) Tworzenie usªug sieciowych SOA i WCF (14) Bezpiecze«stwo aplikacji.net (15) "Klasówka II", czyli wst p do egzaminu cze± druga V1.1 4/ 47

5 Plan wykªadu Plan wykªadu 1 Elementy.NET 1 gªówne elementy.net, 2 reguªy CLS, 3 system typów. 2 Biblioteka klas 1 podziaª typów, 2 typy wbudowane oraz typy w kontek±cie C#, 3 podstawowe klasy w przestrzeni System. 3 Podzespóª (assembly)/j zyk po±redni 1 rola podzespoªu, 2 budowa i model, 3 j zyk po±redni. V1.1 5/ 47

6 Analiza skªadowych platformy.net Elementy platformy.net Wspólne ±rodowisko uruchomieniowe oraz biblioteka klas, Web Services zestandaryzowana technologia publikacji serwisów WWW, SOAP Simple Object Access Protocol, HTTP protokóª stosowany do przesyªania informacji pomi dzy serwisami WWW, Visual Basic C++ C# Perl Python Message Queuing XML Web Services ADO.NET and XML.NET Framework Class Libray Common Language Runtime COM+ (Transactions, Partitions, Object Pooling) User Interface IIS WMI XML opis danych. WIN32 / WIN64.NET Framework oferuje ustalony sposób produkcji oprogramowania w oparciu o platform w której nie akcentuje si»adnego j zyka programowania. Platforma zawiera wspólne ±rodowisko uruchomieniowe, bibliotek klas dodatkowe serwery oraz narz dzia. V1.1 6/ 47

7 Analiza skªadowych platformy.net Cztery gªówne lary platformy.net Common Language Runtime (CLR) ±rodowisko wykonawcze programów.net odpowiedzialne za lokalizacj, wczytanie oraz zarz dzanie typami/obiektami platformy.net Common Language Infrastructure (CLI) ECMA-335 Common Language Specication (CLS) zespóª zasad oraz reguª niezb dnych do speªniania aby okre±lony j zyk programowania mógª wspóªpracowa z CLI. Common Type System (CTS) denicja sposobu reprezentacji typów danych w pami ci maszyny. Common Intermediate Language (CIL) j zyk po±redni (IL) stanowi cy niezale»ny zestaw instrukcji od istniej cych rozwi za«procesorowych, do którego kompilowane s wszystkie programy pracuj ce w ramach ±rodowiska.net, metadane. Common Language Runtime (CLR) Common Language Specification (CLS) Base Class Library (BCL) Metadata Definition and Semantics Common Type System (CTS) Common Intermediate Language (CIL) Instruction Set V1.1 7/ 47

8 Common Language Runtime (CLR) rodowisko wykonawcze maszyna wirtualna Zadaniem maszyny wirtualnej jest kontrola nad odwoªaniami uruchamianego programu do sprz tu i systemu operacyjnego. W przypadku braku pewnych funkcji na poziomie sprz towym zdaniem maszyny jest symulacja brakuj cej funkcjonalno±ci. W ten sposób aplikacja/program nie jest wstanie sprawdzi, czy jest uruchomiony na prawdziwym, czy te» udawanym/wirtualnym sprz cie. Maszyny wirtualne to m.in.: Uwaga! interpretery, szczególnie interpretery kodu bajtowego, kompilatory JIT, emulatory rzeczywi±cie istniej cego sprz tu, np. emulatory starszych komputerów, konsol do gier. Nie zawsze jednoznacznie mo»na okre±li wprost, czy faktycznie mamy do czynienia z maszyn wirtualn przykªadem mo»e by Java. V1.1 8/ 47

9 Common Language Runtime (CLR) Zastosowania maszyn wirtualnych Maszyny wirtualne s u»ywane do ró»nych celów, min. do: 1 uruchamiania starszych aplikacji i/b d¹ starszych systemów operacyjnych w innych ±rodowiskach ni» pierwotne, 2 zapewnienia uniwersalnego ±rodowiska uruchomieniowego, 3 bezpiecznego rozdzielania zasobów (min. mainframe, superkomputery), 4 uruchamiania jednocze±nie ró»nych systemów operacyjnych na jednym komputerze (bez konieczno±ci resetu tzw. systemu goszcz cego), 5 tworzenia programowych klastrów, 6 analizowania jego pracy/debuggowania tworzonych systemów operacyjnych, 7 optymalizacji tworzonych aplikacji/programów, poprzez zapewnienie kontroli nad ich ±rodowiskiem dziaªania. Wymienione wªa±ciwo±ci mog wyst powa ª cznie lub by ograniczone, istotn wªasno±ci jest zupeªno±, czyli dana maszyna wirtualna W powinna by w stanie uruchomi swoj wªasn kopi. V1.1 9/ 47

10 Common Language Runtime (CLR) Znane maszyny wirtualne Kilka wspóªczesnych programowych maszyn wirtualnych: Nazwa Model Zarz d. pam. Bezpie. Inter. JIT C. CL O.Model Dynam. typ. CLR stack auto/man Y N Y Yes Yes Mono stack auto/man Y Y Y Yes Yes DotGNU stack auto/man Y N Y Yes N JVM stack auto Y Y Y Yes N LLVM register man. N Y Y Yes N Parrot register auto N Y N Yes Yes Legenda: Zarz d. pam. Zarz dzanie pami ci, Bezpie. Bezpiecze«stwo, Inter. Interpreter, JIT C. Just-in-time compiler, CL O.Model model obiektowy, Dynam. typ. dynamiczne typowanie. Maszyny wirtualne mo»na podzieli na dwa podstawowe modele: rejestrowy oraz stosowy. Istotnym problemem jest wydajno± maszyny, dlatego obecno± kompilatora JIT jest niezb dna, aby dane rozwi zanie oferowaªo odpowiednio wysok wydajno±. V1.1 10/ 47

11 Common Language Runtime (CLR) Common Language Runtime (CLR) Usªugi okre±lone przez CLR: 1 zarz dzanie kodem, czyli jego uruchamianie oraz nadzór nad jego wykonaniem, 2 zarz dzanie pami ci w przypadku obiektów zarz dzanych 3 izolacja obszarów pami ci przydzielonych poszczególnym aplikacj.net, 4 konwersja j zyka IL do kodu maszynowego, 5 dost p do metadanych (informacja o typach), 6 zabezpieczenia w dost pie kodu do zasobów, 7 werykacja i zgodno± typów, 8 obsªuga wyj tków (przekazywanie ich pomi dzy ró»nymi j zykami jak np.: F# oraz C#), 9 wspóªpraca kodu zarz dzanego z niezarz dzanym, obsªuga COM i bibliotekami DLL, 10 automatyzacja tworzenia obiektów, 11 usªugi wspomagaj ce tworzenie oprogramowania jak debuggowanie oraz prolowanie V1.1 11/ 47

12 Common Language Runtime (CLR) Common Language Runtime (CLR) Wymagania, co do ±rodowiska wykonawczego zostaªy okre±lone w dokumencie ECMA-335: Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to native code (JIT compiler) Code Manager Garbage (GC) Collector Class Loader Istniej ce implementacje wspólnego ±rodowiska wykonawczego: CLR implementacja Microsoftu, MONO DotGNU/Portable.NET V1.1 12/ 47

13 Common Language Runtime (CLR) Rozwój CLR Kolejne wydania platformy.net naturalnie poci gaj za sob modykacj CLR: WCF WPF WF EF Parallel Task Model ASP.NET Core 5 ASP.NET ASP.NET WCS LINQ DLR Windows Store.NET Native CLR 1.0 CLR 1.1 CLR 2.0 CLR 2.0 CLR 2.0 CLR 4.0 CLR 4.0 CLR 4.0.NET 1.0.NET 1.1.NET 2.0.NET 3.0.NET 3.5 (SP1).NET 4.0.NET 4.5.NET 4.6 oznacza to, i» dokument ECMA-335 jest poddawany modykacjom w momencie wydawania nowych wersji platformy.net, ostatnia pochodzi z listopada 2016r. V1.1 13/ 47

14 Common Language Specication Common Language Specication (CLS) Rola CLS CLS to zestaw reguª których speªnienia ma zapewni wspóªprac pomi dzy ró»nymi j zykami programowania w ramach platformy.net. Trzy gªówne obszary/poziomy, gdzie stosowane s reguªy CLS: 1 framework poziom bibliotek/technologii/zestawów klas, 2 consumer j zyk programowania lub narz dzie dostarczaj ce dost p do funkcjonalno±ci platformy, 3 extender j zyk programowania lub narz dzie dostarczaj ce dost p do funkcjonalno±ci platformy oraz rozszerza jej mo»liwo±ci, V1.1 14/ 47

15 Common Language Specication Reguªy szczegóªowe CLS z dokumentu ECMA335 Przykªady reguª ze standardu: CLS Rule 17 Unmanaged pointer types are not CLS-compliant. Note: CLS (consumer) There is no need to support unmanaged pointer types. CLS (extender) There is no need to provide syntax to dene or access unmanaged pointer types. CLS (framework) Unmanaged pointer types shall not be externally exported. CLS Rule 23 System.Object is CLS-compliant. Any other CLS-compliant class shall inherit from a CLS- compliant class. CLS Rule 25 No longer used. [Note: In an earlier version of this standard, this rule stated The accessibility of a property and of its accessors shall be identical. The removal of this rule allows, for example, public access to a getter while restricting access to the setter. end note] V1.1 15/ 47

16 Common Language Specication Reguªy szczegóªowe CLS z dokumentu ECMA335 Przykªady reguª ze standardu: CLS Rule 38 Properties and methods can be overloaded based only on the number and types of their parameters, except the conversion operators named op_implicit and op_explicit, which can also be overloaded based on their return type. Note: CLS (consumer) Can assume that only properties and methods are overloaded, and need not support overloading based on return type unless providing special syntax for operator overloading. If return type overloading isn`t supported, then the op_implicit and op_explicit can be ignored since the functionality shall be provided in some other way by a CLS-compliant framework. Consumers must rst apply the hide-by- name and hide-by-signature-and-name rules (Ÿ8.10.4) to avoid any ambiguity. CLS (extender) Should not permit the authoring of overloads other than those specied here. It is not necessary to support operator overloading at all, hence it is possible to entirely avoid support for overloading on return type. CLS (framework) Shall not publicly expose overloading except as specied here. Frameworks authors should bear in mind that many programming languages, including object-oriented languages, do not support overloading and will expose overloaded methods or properties through mangled names. Most languages support neither operator overloading nor overloading based on return type, so op_implicit and op_explicit shall always be augmented with some alternative way to gain the same functionality. V1.1 16/ 47

17 Common Type Systems (CTS) Common Type System (CTS) Wspólny system typów Wspólny system typów okre±la w jaki sposób typy s deklarowane, u»ywane oraz zarz dzane w czasie wykonania (run-time). Najwa»niejsze funkcje udost pniane przez CTS to min: 1 bezpiecze«stwo typów, szybkie wykonywanie kodu, utworzenie niezb dnej struktury do integracji mi dzy j zykowej, 2 peªny model zorientowany obiektowo implementowany w wielu j zykach programowania.net, 3 okre±la warunki, które musz by speªnione przez okre±lony j zyk.net, co pozwala na interakcje pomi dzy obiektami pomi dzy ró»nymi j zykami.net. Gªówne zadanie CTS Obecno± CTS pozwala na integracj j zyków, bowiem j zyki programowania obecne w.net wspóªdziel te same typy podstawowe okre±lone przez CTS. V1.1 17/ 47

18 Common Type Systems (CTS) Ogólny podziaª typów Type Value Types Refernces Types (identity within app. domain) Built-in Value Types (special encoding in signature) User Defined Integer Types Enums Floating Point Types Typed References V1.1 18/ 47

19 Common Type Systems (CTS) Ogólny podziaª typów Refernces Types (identity within app. domain) Self-Describing Interface Pointer Built-In Reference Types Name Equivalent Function String Delegates Managed (might be in heap) Object Boxed Value Types Unmanaged Boxed Enums Structural Equivalent Arrays V1.1 19/ 47

20 Common Type Systems (CTS) CTS typy wbudowane built-in Podstawowe typy obecne we wspólnym ±rodowisku wykonawczym. Nazwa CIL Typ CLS Nazwa BCL Opis bool Yes System.Boolean True or false value char Yes System.Char Unicode 16-bit char object Yes System.Object Object or boxed value type string Yes System.String Unicode string oat32 Yes System.Single IEC 60559: bit oat oat64 Yes System.Double IEC 60559: bit oat int8 No System.SByte Signed 8-bit integer int16 Yes System.Int16 Signed 16-bit integer int32 Yes System.Int32 Signed 32-bit integer int64 Yes System.Int64 Signed 64-bit integer native int Yes System.IntPtr Signed integer, native size native unsigned int No System.UIntPtr Unsigned integer, native size typedref No System.TypedReference Pointer plus exact type unsigned int8 Yes System.Byte Unsigned 8-bit integer unsigned int16 No System.UInt16 Unsigned 16-bit integer unsigned int32 No System.UInt32 Unsigned 32-bit integer unsigned int64 No System.UInt64 Unsigned 64-bit integer V1.1 20/ 47

21 Common Type Systems (CTS) CTS a typy w j zyku C# (I) Typy warto±ciowe: (1) Proste typy numeryczne i znakowe: (a) wielko± integer ze znakiem: sbyte, short, int, long, (b) wielko± integer bez znaku: byte, ushort, uint, ulong, (c) znak unicode: char, (d) IEEE oating point: oat, double, (e) liczby o du»ej precyzji: decimal, (f) boolean: bool. (2) Typ enum: enum EName {... }, (3) Typ struct: struct SName {... }, (4) Typy nullable: typy maj mo»liwo± przyj cia warto±ci null. (II) Typy referencyjne: (1) Typ klasowy: (a) typ podstawowy dla typu obiektowego: object, (b) ªa«cuchy znaków unicode: string, (c) klasy zdeniowane przez u»ytkownika: class CName {... }, (2) Typ interface: interface IName {... }, (3) Typ tablicowy: jedno i wielowymiarowe tablice zdeniowane przez u»ytkonika: int[], int[,], (4) Typ delegate : typy u»ytkownika: delegate int DName(... ). V1.1 21/ 47

22 Przegl d j zyków programowania.net Opracowano ponad 40 j zyków dla.net V1.1 22/ 47

23 Przegl d j zyków programowania.net Najwa»niejsze j zyki Najwa»niejsze j zyki dost pne z pudeªka to: C#, Visual Basic.NET, C++/CLI, J# (odmiana j zyka Java opracowany przez Microsoft), JScript.NET (kompilowana odmiana j zyka JScript). Inne wa»ne j zyki: 1 COBOL, Delphi.NET, Oxygen, 2 Eiel, Fortran, Lisp, 3 Nemerle, F#, Python, P# (Prolog). V1.1 23/ 47

24 Przegl d j zyków programowania.net F# j zyk funkcyjny Denicja funkcji rekurencyjnej b obliczaj cej liczby ci gu Fibbonaciego: let rec fib x = match x with 1 -> 1 2 -> 1 x -> fib (x - 1) + fib (x - 2) printfn "(fib 2) = %i" (fib 2) printfn "(fib 6) = %i" (fib 6) printfn "(fib 11) = %i" (fib 11) i elementy ci gu Lucasa: let rec luc x = match x with x when x <= 0 -> failwith "value must be greater than 0" 1 -> 1 2 -> 3 x -> luc (x - 1) + luc (--x - 2) printfn "(luc 2) = %i" (luc 2) printfn "(luc 6) = %i" (luc 6) printfn "(luc 11) = %i" (luc 11) printfn "(luc 12) = %i" (luc 12) V1.1 24/ 47

25 Przegl d j zyków programowania.net Konwersja liczby caªkowitej na posta binarn : let BitsNum = 32 ;; let binary_of_int n = [ for i in BitsNum > if (n >>> i) % 2 = 0 then "0" else "1" ] > String.concat "" ;; let x1 = binary_of_int 1431 ;; let x2 = binary_of_int ( ) ;; V1.1 25/ 47

26 Analiza biblioteki klas Zadania i funkcje biblioteki klas Standard ECMA-335 okre±la tak»e posta standardowej biblioteki klas, zaliczane s nast puj ce pakiety (zachowane zostaªo oryginalne nazewnictwo standardu): 1 Run-time infrastructure library 2 Base Class Library (BCL) 3 Network library 4 Reection library 5 XML library 6 Extended numerics library 7 Extended array library 8 Vararg library 9 Parallel library V1.1 26/ 47

27 Wprowadzenie Elementy.NET / Biblioteka klas Podzespóª/IL Ju» za tydzie«na wykªadzie Analiza biblioteki klas Ogólny schemat Base Class Library BCL.NET 3.5 plakat autorstwa rmy Microsoft V1.1 27/ 47

28 Wprowadzenie Elementy.NET / Biblioteka klas Podzespóª/IL Ju» za tydzie«na wykªadzie Analiza biblioteki klas Ogólny schemat Base Class Library BCL.NET 4.0 plakat autorstwa rmy Addison-Wesley V1.1 28/ 47

29 Analiza biblioteki klas Kilka klas z przestrzeni System Przestrze«nazw System System.CodeDom System.ComponentModel System.Collections, System.Conguration System.IO System.Text System.TextRegular Krótki opis Zawiera klasy deniuj ce najcz ±ciej u»ywane typy danych, zdarzenia i obsªug zdarze«a tak»e interfejsy, atrybuty oraz wyj tki Reprezentacja dokumentu/kodu ¹ródªowego w postaci drzewa Tworzenie komponentów, kontrolek, rejestracja oraz adaptacja Ró»ne kolekcje obiektów min.: listy, kolejki, tablice bitów, tablice skrótów i sªowniki Dost p do ustawie«konguracyjnych.net i podzespo- ªów oraz obsªuga bª dów w plikach konguracyjnych (pliki * cong) Podstawowy dost p i zarz dzanie strumieniami danych Kodowanie i konwersje znaków, manipulacje ªa«cuchami znaków Obsªuga wyra»e«regularnych V1.1 29/ 47

30 Budowa podzespoªu Assemblies, czyli podzespoªy Assembly/Assemblies (podzespóª/zestaw/podzespoªy/zestawy) Podzespóª to logiczny blok, skompilowany do kodu po±redniego. Z tych elementów budowane s aplikacje.net, zawieraj one kod w j zyku IL oraz metadane. Podzespóª opatrzony jest numerem wersji i jest on zamkni t spójn caªo±ci udost pniaj cym okre±lon funkcjonalno±. Istniej dwa rodzaje metadanych: w pierwszym podzespóª jest traktowany jako jednostka i jest to tzw. manifest oraz metadane przeznaczone do opisu poszczególnych typów zawartych w podzespole. Manifest jest cz ±ci podzespoªu i opisuje jego kod i zasoby poprzez podanie: nazwy (tzw. to»samo±ci) podzespoªu, numer wersji oraz tzw. opisu kultury (informacje regionalne oraz informacje o j zykach obsªugiwanych przez dany podzespóª), podpisu cyfrowego dla podzespoªu, pliki zawarte w podzespole, typy i zasoby zawarte w podzespole wraz z informacj które typy/zasoby s dost pne do u»ycia przez inne podzespoªy, powi zania z innymi podzespoªami, uprawnienia które s wymagane do poprawnej pracy podzespoªu. V1.1 30/ 47

31 Budowa podzespoªu Assemblies, czyli podzespoªy Metadane typów zawieraj opis typów zdeniowanych w kodzie zarz dzanym. Zawarte s w tym samym pliku co kod IL, zawieraj min: 1 Opis typów: nazwa typu, zasi g typu (publiczny b d¹ ograniczony do podzespoªu) nazw typu po którym typ dziedziczy, interfejsy zaimplementowane, metody zaimplementowane, wªa±ciwo±ci typu, zdarzenia obsªugiwane przez typ. 2 Opis atrybutów atrybuty posiadaj okre±lone nazwy i funkcje okre±lone w ±rodowisku.net, okre±laj sposób wykonywania kodu b d¹ opisuj wymagania co do bezpiecze«stwa. Source1.cs class A... class B... Source2.cs class C... class D... csc Source1.cs Source2.cs Program.exe manifest metadata IL of type A IL of type B IL of type C IL of type D class loader V1.1 31/ 47

32 Budowa podzespoªu Assemblies, czyli podzespoªy Wa»ne elementy zwi zane z podzespoªami to: 1 po kompilacji do kodu IL, kod zarz dzany jest cz ±ci podzespoªu skªadaj cego si z jednego b d¹ wielu plików DLL/EXE, 2 podzespoªy mog by okre±lone jako prywatne b d¹ wspóªdzielony umieszczone s w GAC (Global Assembly Cache), 3 podzespóª mo»e zosta podpisany kluczem cyfrowym (sygnatur ) oraz opatrzony 4 informacje o prywatnym podzespole nie s wprowadzane do platformy.net (rejestr nie jest modykowany), 5 podzespoªy w katalogu aplikacji nie wymagaj dodatkowych operacji, 6 wspóªu»ytkowanie podzespoªy s umieszczene w GAC, 7 podzespóª mo»e mie tzw. siln nazw (podpis/sygnatura cyfrowa) werykowana podczas ªadowania podzespoªu lub sªab nazw, 8 wersja podzespoªu w postaci G.D.K.K (gªówny/major, drugorz dny/minor, kompilacji/compilation, korekty/revision) np.: wersja informacyjna, czyli ci g znaków czytelnych dla ludzi, 10 numery wersji podzespoªów od których zale»y dany podzespóª. V1.1 32/ 47

33 Budowa podzespoªu Model podzespoªu (assembly model) Manifest jest zapisany w sekcji metadanych zawierający tzw. moduł master, który może lecz nie jest wymagane aby opisywał również typy. 1 Podzespół to pojedyncza/jednolita w aplikacji zawieracjace klasy, numery wersji oraz opis bezpieczeństwa. Pliki podzespołów (exe, dll) pełnią rolę podobną jak pliki JAR w przypadku Javy lub starsze w formacie MS CAB. Private Assembly Static Assembly Dynamic Assembly (Created in Memory) Public (Shared) Assembly publickey Global Registers Assembly 1 Cache 1.. * * 1 Type 0..1 * * 1 Assembly W formacie Portable Executable jednosta (PE), pojęcia "Moduł" Metadata Manifest oraz "Plik PE" są stosowane wymiennie. Stosowane są rozszerznia.exe,.dll,.netmodule. «use» 1.. * 1 Metadata Element 1.. * 1.. * *.NET Assembly «use» Module Type Code Moduły oraz zasoby (np.: pliki PNG badz JPG) sa logicznie przypisane podzespołom, fizycznie również tego typu pliki moga znajdować się plikach assembly. Jednak w wielu przypadkach, z praktycznych powodów (np.: wielkość plików) pliki tego typu nie są umieszczane w podzespołach. Istnieja tylko odniesienia do zasobów umieszczeone w manifescie podzespołu. Takie rozwiązanie przyspiesza ładowanie podzespoły natomiast dostęp do zasobów jest uzyskiwany w tzw. trybie leniwych obliczeń. Resource X509Certificate Assembly Dependencies Machine Code CIL Text Image V1.1 33/ 47

34 J zyk po±redni J zyk po±redni / Kod zarz dzany J zyk po±redni lub wspólny j zyk po±redni (ang. Common Intermediate Language CIL) to j zyk niskiego poziomu dla platformy.net. Stanowi on odpowiednik assemblera dla j zyków wysokiego poziomu jak C/C++. Ogólnie CIL jest podobny do assemblera, jednak zostaª on wyposa»ony w konstrukcje programowania obiektowego i nie jest wykonywany przez stosow maszyn wirtualn ale kompilowany przez JIT/ngen do kodu maszynowego. Kod zarz dzany, to kod zgodny ze specykacj CLR (CLS) zawiera równie» metadane. W ten sposób umo»liwia si realizacj : usªug automatycznego zarz dzania zasobami, wspóªpracy fragmentów/podzespoªów oprogramowania napisanych w ró»nych j zykach programowania, zarz dzania uprawnieniami w dost pie do podzespoªu oraz uªatwia zarz dzanie cyklem»ycia obiektów (min. system od±miecaj cy garbage collector). MSIL czy IL Pocz tkowo j zyk po±redni nazywaª Microsoft Intermediate Language (MSIL), jednak po procedurze standaryzacji C# oraz CLI obowi zuj ca nazwa to CIL lub IL. V1.1 34/ 47

35 Kompilacja i wykonywanie programów IL Kompilacja i wykonywanie programów IL Diagram kompilacji i wykonania: Source Code Ogólne podej±cie do kompilacji: Compiler C# Source File VB Source File other.net Source File EXE/DLL Kompilacja C# Compiler VB.NET Compiler other.net Compiler IL and Metadata Assembly - CIL - Type Info Assembly - CIL - Type Info Assembly - CIL - Type Info Class Libraries IL and Metadata Class Loader JIT Compiler Common Language Runtime (CLR) Run time JIT Compiler [optional verification] Trusted pre- JITed code. Native Code Native Code Native Code Operating System Managed Native Code Execution Class to an uncompiled method/class Security Checks Runtime Engine V1.1 35/ 47

36 Kompilacja i wykonywanie programów IL Podziaª instrukcji IL Instrukcje kodu bajtowego CIL mo»na podzieli na nast puj ce grupy: 1 Wczytaj i Zapisz Load and store 2 Arytmetyczne Arithmetic 3 Konwersji typów Type conversion 4 Tworzenia i manipulacji obiektami Object creation and manipulation 5 Instrukcje zarz dzania stosem Operand stack management (push / pop) 6 Instrukcje steruj ce Control transfer (branching) 7 Wywoªania metody i powrotu Method invocation and return 8 Zgªaszania sytuacji wyj tkowej Throwing exceptions 9 Realizuj ce wspóªbie»no± Monitor-based concurrency V1.1 36/ 47

37 Przykªady programów Przykªad pusty program Kod w IL, nie wykonuje»adnych istotnych czynno±ci:.assembly hello1 { }.class hello1 {.method static public void main() il managed {.entrypoint ret } } Instrukcje.entrypoint a ret stanowi w pewnym sensie odpowiednik funkcji main. V1.1 37/ 47

38 Przykªady programów Przykªad wy±wietlenie komunikatu Kod w IL, wy±wietla komunikat tekstowy:.assembly hello2 { }.class hello2 {.method static public void main() il managed {.entrypoint ldstr "Witojcie!!!" call void [mscorlib]system.console::writeline(class System.String) ret } } Mo»na powiedzie,»e assembler IL to assembler obiektowy. V1.1 38/ 47

39 Przykªady programów Odczytanie liczby caªkowitej i wy±wietlenie jej na ekranie.assembly hello3 { }.method public static void Main() il managed {.entrypoint.maxstack 2.locals (int32 V_0) ldstr "Liczba calkowita int32:" call void [mscorlib]system.console::writeline(string) call string [mscorlib]system.console::readline() call int32 [mscorlib]system.int32::parse(string) stloc.0 ldstr "Wpisano liczbe {0}." ldloc.0 box [mscorlib]system.int32 call void [mscorlib]system.console::writeline(string, object) ret } Jednak bez klas te» mo»na tworzy programy w IL'u. V1.1 39/ 47

40 Przykªady programów Porównanie dwóch liczb caªkowitych.assembly big_and_small_nums { }.method public static void Main() il managed {.entrypoint.maxstack 2.locals init (int32 V_0, int32 V_1) IL_0000: ldstr "Podaj pierwsza liczbe" IL_0005: call void [mscorlib]system.console::writeline(string) IL_000a: call string [mscorlib]system.console::readline() IL_000f: call int32 [mscorlib]system.int32::parse(string) IL_0014: stloc.0 IL_0015: ldstr "I jeszcze druga" IL_001a: call void [mscorlib]system.console::writeline(string) IL_001f: call string [mscorlib]system.console::readline() IL_0024: call int32 [mscorlib]system.int32::parse(string) IL_0029: stloc.1 IL_002a: ldloc.0 IL_002b: ldloc.1 IL_002c: bne.un.s IL_003a IL_002e: ldstr "Obie wielkosci sa rowne" IL_0033: call void [mscorlib]system.console::writeline(string) IL_0038: br.s IL_0054 IL_003a: ldloc.0 IL_003b: ldloc.1 IL_003c: bge.s IL_004a IL_003e: ldstr "Druga liczba jest wieksza niz pierwsza" IL_0043: call void [mscorlib]system.console::writeline(string) IL_0048: br.s IL_0054 IL_004a: ldstr "Druga liczba jest mniejsza niz pierwsza" IL_004f: call void [mscorlib]system.console::writeline(string) IL_0054: ldstr "Nacisnij Enter aby zakonczyc program" call void [mscorlib]system.console::writeline(string) call string [mscorlib]system.console::readline() IL_0059: pop IL_005a: ret } V1.1 40/ 47

41 Przykªady programów Porównanie dwóch liczb caªkowitych using System; namespace Test1a { class Program { public static void Main(string[] args) { Console.WriteLine("Podaj pierwsza liczbe"); int x = Int32.Parse( Console.ReadLine() ); Console.WriteLine("I jeszcze druga"); int y = Int32.Parse( Console.ReadLine() ); } } } if ( x == y ) { Console.WriteLine("Obie wielkosci sa rowne"); } else { if ( x < y ) { Console.WriteLine("Druga liczba jest wieksza niz pierwsza"); } else { Console.WriteLine("Druga liczba jest mniejsza niz pierwsza"); } } Console.WriteLine("Nacisnij Enter aby zakonczyc program"); Console.ReadLine(); V1.1 41/ 47

42 Przykªady programów Denicja metod.assembly extern mscorlib {}.assembly Methods {.ver 1:0:1:0 }.module Methods.exe.method static void main() cil managed {.maxstack 2.entrypoint } ldc.i4 15 ldc.i4 27 call int32 SumCalculate(int32, int32) call void WriteNum(int32) ret.method public static int32 SumCalculate (int32, int32 ) cil managed {.maxstack 2 ldarg.0 ldarg.1 add ret }.method public static void WriteNum(int32) cil managed {.maxstack 2 ldstr "Wartosc argumentu: " call void [mscorlib]system.console::write(string) ldarg.0 call void [mscorlib]system.console::write(int32) } ret V1.1 42/ 47

43 Przykªady programów Od C# przez IL do assemblera Intel x86/x64 IL source Source code in C# Vector2D v; v = new Vector(); v.x = 10; v.y = 20; Source code in Intel x86_32 assembly call ED00AAD1h mov ecx, eax call dword ptr ds:[00af0012h] mov dword ptr [ecx+4], 000Ah mov dword ptr [ecx+8], 0014h.locals init ([0] class Vector2D v) newobj instance void Vector2D::.ctor() stloc.0 ldloc.0 ldc.i4 0x0A stfld int32 Vector2D::x ldloc.0 ldc.i4 0x14 stfld int32 Vector2D::y V1.1 43/ 47

44 Tabela instrukcji wybór Tabela instrukcji wybór Opcode Instrukcja Opis 0x58 add Add two values, returning a new value 0xD6 add.ovf Add signed integer values with overow check 0xD7 add.ovf.un Add unsigned integer values with overow check 0x3E ble <int32 (target)> Branch to target if less than or equal to 0x8C box <typetok> Convert a boxable value to its boxed form 0x38 br <int32 (target)> skok do etykiety target 0x2B br.s <int8 (target)> j.w. krótka forma 0x01 break Inform a debugger that a breakpoint has been reached 0x28 call <method> Call method described by method 0xFE 0x02 cgt Push 1 (of type int32) if value1 > value2, else push 0 0xC3 cknite Throw ArithmeticException if value is not a nite number 0x73 newobj <ctor> Allocate an uninitialized object or value type and call ctor 0x04 ldarg.2 Load argument 2 onto the stack 0x11 ldloc.s <uint8 (indx)> Load local variable of index indx onto stack, short form 0xFE 0x0D ldloca <uint16 (indx)> Load address of local variable with index indx 0x62 shl Shift an integer left (shifting in zeros), return an integer 0x63 shr Shift an integer right (shift in sign), return an integer 0x7A throw Zgªoszenie wyj tku 0x79 unbox <valuetype> Extract a value-type from obj, its boxed representation 0xFE 0x13 volatile. [prex] Subsequent pointer reference is volatile 0x61 xor Bitwise XOR of integer values, returns an integer V1.1 44/ 47

45 Tabela instrukcji wybór J zyk po±redni podsumowanie Czy warto poznawa assembler IL? Tak, cho naturalnie tworzenie du»ych programów raczej mija si z celem, jednak poznanie zagadnie«zwi zanych z IL - asm na pewno przyczyni si do pogª bienia wiedzy o wewn trznych mechanizmach CLR oraz CLI. Co jest szczególne wa»ne, je±li planuje si tworzenie wªasnego kompilatora do platformy.net. V1.1 45/ 47

46 W nast pnym tygodniu mi dzy innymi Wykªad Programowanie w C# ±rodowisko Visual Studio 2010, MonoDevelop, syntaktyka C#, wyj tki, wspóªpraca z DLL, 1 przegl d narz dzi dla programistów w platformie.net, min. ildasm, gacutil, 2 podstawowe informacje o C# 3 poj cie klasy, 4 podstawowe informacje wej±cia/wyj±cia 5 tablice, ci gi znaków, wyra»enia regularne, 6 wspóªpraca z kodem niezarz dzanym, V1.1 46/ 47

47 Proponowane tematy prac pisemnych: 1 analiza i porównanie bibliotek standardowych dla j zyka Java oraz platformy.net, 2 ró»nice pomi dzy IL dla platformy.net a j zykiem po±rednim dla maszyny wirtualnej JAVA, 3 opis technicznej struktury oraz roli podzespoªów. Dzi kuje za uwag!!! V1.1 47/ 47

Platforma.NET Wykład 2 Składowe platformy.net. Spis treści. Plan wykładu tydzień po tygodniu. Plan wykładu tydzień po tygodniu. Notatki.

Platforma.NET Wykład 2 Składowe platformy.net. Spis treści. Plan wykładu tydzień po tygodniu. Plan wykładu tydzień po tygodniu. Notatki. Marek Sawerwain Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Ostatnia kompilacja pliku: 22 marca 2018, t: 18:53 V1.1 1/ 47 Spis treści Wprowadzenie Plan wykładu Analiza składowych

Bardziej szczegółowo

Platforma.NET Wykład 2 Składowe platformy.net. Spis treści. Marek Sawerwain. Ostatnia kompilacja pliku: 22 marca 2018, t: 18:54. Notatki.

Platforma.NET Wykład 2 Składowe platformy.net. Spis treści. Marek Sawerwain. Ostatnia kompilacja pliku: 22 marca 2018, t: 18:54. Notatki. Platforma.NET Wykład 2 Składowe platformy.net Platforma.NET Wykład 2 Składowe platformy.net Marek Sawerwain Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Ostatnia kompilacja

Bardziej szczegółowo

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

C# /.NET. Copyright by 3bird Projects 2018,

C# /.NET. Copyright by 3bird Projects 2018, C# /.NET Copyright by 3bird Projects 2018, http://edukacja.3bird.pl Ogólne Opracowana przez Microsoft platforma programistyczna.net Framework jest odpowiednikiem platformy Java. Obejmuje gotowe biblioteki,

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Dostęp do funkcji niskopoziomowych w.net Compact Framework

Dostęp do funkcji niskopoziomowych w.net Compact Framework Programowanie urządzeń mobilnych Laboratorium Dostęp do funkcji niskopoziomowych w.net Compact Framework Wstęp Technologia.NET Compact Framework dostarcza deweloperom oprogramowania bardzo wiele możliwości

Bardziej szczegółowo

Programowanie Komputerów

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

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

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

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis MATERIAŁY DO ZAJĘĆ I Podstawowe pojęcia Spis treści I. Algorytm II. Schemat blokowy III. Struktury danych IV. Program komputerowy V. Opis środowiska programistycznego VI. Obsługa wejścia wyjścia VII. Przykład

Bardziej szczegółowo

Języki i paradygmaty programowania - 1

Języki i paradygmaty programowania - 1 doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.edu.pl http://www.tjeleniewski.wstt.edu.pl Cele przedmiotu Umiejętność zastosowania i oceny przydatności paradygmatów

Bardziej szczegółowo

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz Wykłady 1, 2 Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz 1 Zagadnienia 1. Podstawowe pojęcia 2. Tworzenie aplikacji w Windows Forms 3. Zawartość projektu 4. Podstawowe cechy

Bardziej szczegółowo

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie w środowiskach graficznych. Wykład 3 Język C# Programowanie w środowiskach graficznych Wykład 3 Język C# 1 Zagadnienia 1. Wprowadzenie 2. Przestrzenie nazw 3. Typy, parametry, konwersje 4. Klasy 5. Instrukcje sterujące 6. Właściwości 7. Interfejsy,

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

Bardziej szczegółowo

Metodyka programowania. Podstawy C#

Metodyka programowania. Podstawy C# Metodyka programowania Podstawy C# Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.

Bardziej szczegółowo

Podstawy Informatyki i Technologii Informacyjnej

Podstawy Informatyki i Technologii Informacyjnej Automatyka i Robotyka, Rok I Wprowadzenie do systemów operacyjnych PWSZ Gªogów, 2009 Denicja System operacyjny (ang. OS, Operating System) oprogramowanie zarz dzaj ce sprz tem komputerowym, tworz ce ±rodowisko

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

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

Programowanie współbieżne i rozproszone

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

Bardziej szczegółowo

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów 1 Wst p Przypomnijmy,»e komputer skªada si z procesora, pami ci, systemu wej±cia-wyj±cia oraz po- ª cze«mi dzy nimi. W procesorze mo»emy

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37 Aplikacje bazodanowe Laboratorium 1 Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, 2017 1 / 37 Plan 1 Informacje wst pne 2 Przygotowanie ±rodowiska do pracy 3 Poj cie bazy danych 4 Relacyjne

Bardziej szczegółowo

Instytut Informatyki, Politechnika Poznańska, SUM-TWO. Zaawansowane programowanie obiektowe

Instytut Informatyki, Politechnika Poznańska, SUM-TWO. Zaawansowane programowanie obiektowe Instytut Informatyki, Politechnika Poznańska, SUM-TWO Zaawansowane programowanie obiektowe 9 października 2016 dr inż. Bartłomiej Prędki pok. 124 Centrum Wykładowe tel. 61-665-2932 Bartlomiej.Predki@cs.put.poznan.pl

Bardziej szczegółowo

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop. 2016 Spis treści Spis rysunków 11 Spis tabel 13 Przedmowa 15 Wprowadzenie 17 Podziękowania 27 O autorach 29 1 Wprowadzenie

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo

Wprowadzenie. Wprowadzenie

Wprowadzenie. Wprowadzenie Wprowadzenie Platforma.NET (.NET Framework) stanowi zintegrowane, niezależne od języka programowania środowisko programistyczne służące do wytwarzania i uruchamiania aplikacji lokalnych, internetowych

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0  Zofia Kruczkiewicz Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 http://www.junit.org/ Zofia Kruczkiewicz 1. Aby utworzyć test dla jednej klasy, należy kliknąć prawym przyciskiem myszy w oknie Projects na wybraną

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

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015 Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Spis tre±ci. 1 Wst p... 1 1.1 Zawarto± rozdziaªów... 1 1.2 Projekt LoXiM... 2

Spis tre±ci. 1 Wst p... 1 1.1 Zawarto± rozdziaªów... 1 1.2 Projekt LoXiM... 2 1 Wst p..................................................... 1 1.1 Zawarto± rozdziaªów................................... 1 1.2 Projekt LoXiM........................................ 2 2 Strukturalne obiektowe

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

Przetwarzanie sygnaªów

Przetwarzanie sygnaªów Przetwarzanie sygnaªów Laboratorium 1 - wst p do C# Dawid Poªap Przetwarzanie sygnaªów Pa¹dziernik, 2018 1 / 17 Czego mo»na oczekiwa wzgl dem programowania w C# na tych laboratoriach? Dawid Poªap Przetwarzanie

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem strukturalnym,

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

Microsoft Shared Source CLI

Microsoft Shared Source CLI Microsoft Shared Source CLI Artur Popławski Seminarium magisterskie Zagadnienia Programowania Obiektowego Co to jest SSCLI? wirtualna maszyna, implementacja na 3 systemy data-driven architecture, in which

Bardziej szczegółowo

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie analityczne Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Czym jest modelowanie analityczne? 2 Podstawowe kategorie poj ciowe

Bardziej szczegółowo

Java Podstawy JUST JAVA 28.03.2007. Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej

Java Podstawy JUST JAVA 28.03.2007. Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej Java Podstawy JUST JAVA 28.03.2007 Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej beretam@torus.uck.pk.edu.pl http://torus.uck.pk.edu.pl/~beretam Hello

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

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

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 3 Typy danych w C++/CLI, typy fundamentalne, operacje wejścia/wyjścia, właściwości klasy (property) Zofia Kruczkiewicz

Wykład 3 Typy danych w C++/CLI, typy fundamentalne, operacje wejścia/wyjścia, właściwości klasy (property) Zofia Kruczkiewicz Wykład 3 Typy danych w C++/CLI, typy fundamentalne, operacje wejścia/wyjścia, właściwości klasy (property) Zofia Kruczkiewicz Zagadnienia 1. Elementarne typy danych C++/CLI 2. Operacje wejścia/wyjścia

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

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

Low Level Virtual Machine

Low Level Virtual Machine Wprowadzenie Low Level Virtual Machine J. Lamecki 14 czerwca 2011 Outline Wprowadzenie 1 Wprowadzenie Co to jest LLVM? Dlaczego moduªowy kompilator? Cechy LLVM 2 Format LLVM IR Bloki podstawowe SSA 3 U»yte

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Visual Studio 2005 jest

Bardziej szczegółowo

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017 i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_

Bardziej szczegółowo

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

Bardziej szczegółowo

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If Platforma.NET laboratorium 1 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET podstawowe elementy języka Poniżej przedstawiono podstawowe instrukcje sterujące

Bardziej szczegółowo

Spis tre±ci. Paradygmaty programowania tematy referatów (26 marca 2018) 1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 2

Spis tre±ci. Paradygmaty programowania tematy referatów (26 marca 2018) 1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 2 Paradygmaty programowania tematy referatów (26 marca 2018) Spis tre±ci 1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 2 2 Zasada dziaªania kompilatora i interpretera 2 3 Przeci»anie

Bardziej szczegółowo

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński Co to jest refleksja? [1/2] Możliwość obserwowania lub manipulowania pracą programu od wewnątrz Problem Zazwyczaj niskopoziomowa struktura

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

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

C# - innowacja czy plagiat?

C# - innowacja czy plagiat? C# - innowacja czy plagiat? Piotr Kowalski Seminarium magisterskie Zagadnienia programowania obiektowego Wydział Matematyki, Mechaniki i Informatyki Uniwersytet Warszawski Agenda! Wprowadzenie do platformy.net!

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Techniki Programowania

Techniki Programowania Techniki Programowania Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Dr hab. inż. Łukasz Madej, prof. AGH Budynek B5,

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

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

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Wstęp Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. I Jesień 2011 1 / 26 Plan wykładu 1 Wstęp komputery, algorytmy i programy 2 Podstawowe

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Zagadnienia programowania obiektowego

Zagadnienia programowania obiektowego Janusz Jabªonowski, Andrzej Szaªas Instytut Informatyki MIMUW Janusz Jabªonowski,, Andrzej Szaªas Slajd 1 z 10 Tematyka seminarium Szeroko poj ta tematyka projektowania i programowania obiektowego. Gªówny

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2 Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang.

Bardziej szczegółowo

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Programowanie JavaCard Marek Gosławski Przygotowanie do zajęć dokumentacja JavaCard i GlobalPlatform środowisko programistyczne karta JavaCard Potrzebne

Bardziej szczegółowo

Automatyzacja procesu publikowania w bibliotece cyfrowej

Automatyzacja procesu publikowania w bibliotece cyfrowej Automatyzacja procesu publikowania w bibliotece cyfrowej Jakub Bajer Biblioteka Politechniki Poznańskiej Krzysztof Ober Poznańska Fundacja Bibliotek Naukowych Plan prezentacji 1. Cel prezentacji 2. Proces

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

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -

Bardziej szczegółowo

Wzorce projektowe strukturalne cz. 1

Wzorce projektowe strukturalne cz. 1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter

Bardziej szczegółowo

InsERT GT Własne COM 1.0

InsERT GT Własne COM 1.0 InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe

Bardziej szczegółowo

Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009.

Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009. 5.1 Środowisko.Net... 1 5.2 Biblioteki.Net... 2 5.3 Rozszerzenie języka C++, standard C++/CLI... 3 5.4 Delegacje... 5 5.5 Zdarzenia... 6 5.6 Szablon aplikacji CLR Windows Forms... 8 5.7 Formatka z przyciskiem...

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Bardziej szczegółowo

J zyk C dla sterowników programowalnych GeFanuc

J zyk C dla sterowników programowalnych GeFanuc J zyk C dla sterowników programowalnych GeFanuc Na podstawie C Programmer's Toolkit for PACSystems Bartosz Puchalski Katedra In»ynierii Systemów Sterowania 17 grudnia 2013 Bartosz Puchalski KISS 1/48 Spis

Bardziej szczegółowo

Praca Dyplomowa Magisterska

Praca Dyplomowa Magisterska Internetowa Platform Edukacyjna w Technologii ZOPE Autor: Promotor: Dr in». Adam Doma«ski Politechnika l ska Wydziaª Automatyki, Elektroniki i Informatyki Kierunek Informatyka 22 wrze±nia 2009 Dlaczego

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna

Kurs programowania. Wykład 9. Wojciech Macyna Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

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

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe 1 Wprowadzenie 1.1 rodowisko programistyczne NetBeans https://netbeans.org/ 1.2 Dokumentacja j zyka Java https://docs.oracle.com/javase/8/docs/api/

Bardziej szczegółowo

Wzorce projektowe kreacyjne

Wzorce projektowe kreacyjne Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie

Bardziej szczegółowo

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum Zmiany techniczne wprowadzone w wersji 2018.2 Copyright 2016 COMARCH SA Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci

Bardziej szczegółowo

#line #endif #ifndef #pragma

#line #endif #ifndef #pragma 8.1 Instrukcje preprocesorowe... 1 8.1.1 Instrukcja #define... 1 8.1.2 Instrukcje #pragma... 2 8.2 Polecenie _asm... 3 8.3 Polecenie declspec... 4 8.4 Definiowanie makr... 5 8.5 Programy wieloplikowe,

Bardziej szczegółowo

2018 Marcin Kukliński. Niesforne bity i bajty

2018 Marcin Kukliński. Niesforne bity i bajty Niesforne bity i bajty 2 Kilka słów O mnie @ senghe@gmail.com https://www.linkedin.com/in/marcin-kukliński 3 2017 InspiraSign - Template All rights reserved Ekipa cpp-polska 5 Marcin Kukliński Wojciech

Bardziej szczegółowo