EA1-Futtatókörnyezetek Flashcards
Mik a futtatókörnyezet jellemzői?
Hordozhatóság Kompaktság Hatékonyság Biztonság Együttműködés Rugalmasság
Mit értünk a futtatókörnyezet hordozhatósága alatt?
IL segítségével n+m (n*m helyett) fordítóra van szükség, hogy n nyelvet m platfromra implementáljunk.
Mit értünk a futtatókörnyezet kompaktsága alatt?
IL kód kompaktabb is lehet, mint az eredeti kód
Mit értünk a futtatókörnyezet hatékonysága alatt?
Köztes kódról natív kódra csak a lehető legkésőbbi pillanatban fordul, a végleges környezetben. Így kihasználhatja annak sajátosságait, valamint statisztikát készíthet a futtatókörnyezet a futó kódról, és erre építve optimalizált kódot fordíthat.
A fejlesztők egy környezetben dolgoznak, fejlesztésük eredménye több platformon is futtatható.
Mit értünk a futtatókörnyezet biztonsága alatt?
Adatellenőrzés (pl. garbage collector)
Kódellenőrzés (pl. futás közbeni hibák azonnali megfogása)
Mit értünk a futtatókörnyezet együttműködése alatt?
Többnyelvűség könnyebb támogatása. (pl. .NET)
Mit értünk a futtatókörnyezet rugalmassága alatt?
“metaprograming”, reflection, dynamic code generation, serialization, type browsing stb.
Hogy néz ki a .NET architektúra?
Application Magasabb szintű .NET komponensek Base Class Library (BCL) Common Language Runtime (CLR) OS
CLR
Common Language Runtime Közös nyelvi futtatókörnyezet. Több programnyelv támogatása Robosztus és biztonságos felügyelt (managed) .NET nyelvfüggetlen
Mi a felügyelt környezet?
Felügyelt adat + Felügyelt kód
Mi a felügyelt adat?
Automatikus élettartam-felügyelet.
Memória felszabadítás akkor amikor szükséges.
Generációs elv: fiatal objektumok hamar halnak.
Hátrány: Kivülről nézve nem determinisztikus.
Mi a felügyelt kód?
Kötelező metainformációk. A kód szigorú típusellenőrzésnek vethető alá. Megszűnnek a leggyakoribb hibaforrások.
Egységes hibakezelés CLR-ben definiálva.
Közös nyelvi specifikáció, minden nyelvhez más fordító, de azonos kimenet -> IL (Intermediate Language)
Mi az IL?
Intermediate Language Processzor és architektúra független- Kiértékelő verem alapú Ellenőrízhető Továbbfordításra tervezték -> nem interpretált Nyelfüggetlen Objektumorientált Metaadatok Könnyű visszafejteni
Fordítás és végrehajtás menete
->Fordítás (forráskód -> nyelvi forditó)
->Assembly(Köztes kód (IL) + Metaadatok (.dll, .exe))
->Végrehajtás (JIT fordító -> Natív kód)
JIT fordító - telepítéskor vagy a metódus első meghívásakor
Mi a .NET Szerelvény (Assembly)?
Telepítés egysége (verzióval)
.dll vagy .exe Ez van benne: IL kód Metaadatok a szerelvényről (manifest) Metaadatok a .NET osztáyokról Erőforrások (.jpg, .txt, .xml)