Special Topics CS 8803
Popular in Course
Popular in ComputerScienence
This 0 page Class Notes was uploaded by Alayna Veum on Monday November 2, 2015. The Class Notes belongs to CS 8803 at Georgia Institute of Technology - Main Campus taught by Nathan Clark in Fall. Since its upload, it has received 10 views. For similar materials see /class/234072/cs-8803-georgia-institute-of-technology-main-campus in ComputerScienence at Georgia Institute of Technology - Main Campus.
Reviews for Special Topics
Report this Material
What is Karma?
Karma is the currency of StudySoup.
You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!
Date Created: 11/02/15
Phillip Wright cs 8803 Summary Technical Overview of the Common Language Runtime Introduction The use of intermediate languages and virtual machines has been investigated extensively for many years Projects like UCSD s PCode Interpretor the Java Virtual Machine JVM and Microsoft s Common Language Infrastructure CLI have been developed for various bene ts including Portability Security Compactness Interoperability Ef ciency Flexibility Due to its widespread availability language implementers have recently attempted to target the JVM in order to take advantage of these bene ts In many cases however targeting the JVM has proven dif cult due to its Javacentric design In light of these dif culties the CLI was developed to provide a virtual platform which is both machine and programming language independent Architecture The CLI employs a stack based computational model similar to the JVM which abstracts away machine level details The execution of the CLI can be roughly represented as seen below Metadata Streams Local Variables Global Storage Instruction Stream j g Evaluation Stack As shown the runtime system of the CLI has access to arguments and local variable as expected as SmithNa iI well as metadata streams which provide variable type information and type de nitions during execution This information is utilized to allow for a polymorphic instruction set and to provide additional semantic information during runtime which can be used for example to implement support for re ection among other things Phillip Wright cs 8803 Type System The CLI provides typical primitive and composite types including integers oats classes etc In addition higher level primitives like obj ect are provided which provide a more abstract data representation The CLI also allows for some concrete type de nitions to be delayed until native code is generated by providing naturalsize primitives which represent actual machine dependent type de nitions not known during compilation In contrast to the JVM the CLI also provides pointer types iboth managed and unmanaged As a result the CLI can provide a great amount of type safety if desired but also allows for the user to sacri ce this safety for more ef cient code when necessary The CLI also provides support for valuetypes which are not allocated on the heap but rather statically or dynamically in memory or on the stack These value types include structures unions and enumerations When defining enumerations the internal representation can be speci ed which allows for support of various enumeration semantics To ease the usage of both value and reference types in the CLI automatic boxingunboxing is supported This eliminates the need to provide wrapper classes and functions to perform such boxingunboxing Instruction Set In the JVM most instructions contain hardcoded type information In the CLI the approach taken is to instead rely on the use of the related metadata to determine such type information when needed although some cases require explicit type information due to the use of pointers This makes it easier to compile programs to compile to the CLI but also introduces signi cant overhead As a result the CLI often employs compileat install or JIT compilation without employing an interpretation step Another design decision which differs from the JVM is the inclusion of instructions allowing programmers to access the address of values This allows for support of nonj ava languages which support multiple parameter passing modes As an example support for passbyreference requires arguments to be passed as single valued arrays in the JV M Another limitation of the JV M is that it has precisely de ned arithmetic semantics specific to Java Languages such as Ada which require overunder ow information during runtime can only be supported by inserting a considerable amount of additional support code In the CLI the noti cation of such exceptions can be speci ed at the instruction level Method Invocation
Are you sure you want to buy this material for
You're already Subscribed!
Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'