New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here

Special Topics

by: Alayna Veum
Alayna Veum

GPA 3.81

Nathan Clark

Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

Nathan Clark
Class Notes
25 ?




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


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


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'

Why people love StudySoup

Steve Martinelli UC Los Angeles

"There's no way I would have passed my Organic Chemistry class this semester without the notes and study guides I got from StudySoup."

Kyle Maynard Purdue

"When you're taking detailed notes and trying to help everyone else out in the class, it really helps you learn and understand the I made $280 on my first study guide!"

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"


"Their 'Elite Notetakers' are making over $1,200/month in sales by creating high quality content that helps their classmates in a time of need."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.