Platforma.NET Wykªad 2 Skªadowe platformy.net
|
|
- Bronisław Wróbel
- 7 lat temu
- Przeglądów:
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.
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
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
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
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
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,
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
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
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
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
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
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
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
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
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
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,
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
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
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.
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
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
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
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
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)
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
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,
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
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
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
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
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
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
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
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ą
Ś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,
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
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
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
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
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
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
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,
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
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
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
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
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
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
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++)
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
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
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
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Programowanie obiektowe 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
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
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:
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
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
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.
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:
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
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_
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
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
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
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
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;
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
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!
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
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
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,
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
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
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
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
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
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.
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
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
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
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 -
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
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
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...
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
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
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
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
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
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ą
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
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
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
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
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/
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
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
#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,
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