Common Language Infrastructure (CLI) Introduction and Class Library Factorization Hewlett-Packard Intel Microsoft.

Slides:



Advertisements
Similar presentations
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 12 Introduction to ASP.NET.
Advertisements

Ahead of Time Dynamic Translation PreJit/NGEN by any other name George Bosworth Microsoft MRE04 March 21, 2004.
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Configuration management
Introduction to .NET Framework
.NET Framework Overview
pa 1 Porting BETA to ROTOR ROTOR Projects Presentation Day, June by Peter Andersen.
31242/32549 Advanced Internet Programming Advanced Java Programming
Using.NET Platform Note: Most of the material of these slides have been taken & extended from Nakov’s excellent overview for.NET framework, MSDN and wikipedia.
CS0007: Introduction to Computer Programming Console Output, Variables, Literals, and Introduction to Type.
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
An overview of the SSCLI Distribution Mark Lewin Microsoft Research
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
Introduction to Java Kiyeol Ryu Java Programming Language.
Programming Our First Java Program Yingcai Xiao. What to Do Set up for Java Programming Write our first Java Program with IDE Write our first Java Program.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
Mapping Physical Formats to Logical Models to Extract Data and Metadata Tara Talbott IPAW ‘06.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
Peter Juszczyk CS 492/493 - ISGS. // Is this C# or Java? class TestApp { static void Main() { int counter = 0; counter++; } } The answer is C# - In C#
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Overview of Microsoft.Net and Vb.Net ITSE 2349 Spring 2002 Material from Microsoft.Net an Overview for ACC faculty by Stuart Laughton and Introduction.
Effective C# 50 Specific Way to Improve Your C# Item 50 Scott68.Chang.
.NET Framework Introduction: Metadata
Introduction to .Net Framework
Visual Studio.NET and.NET Compact Framework Application Development Mike D. Smith Group Program Manager Developer Division Microsoft Corporation.
JVM And CLR Dan Agar April 16, Outline Java and.NET Design Philosophies Overview of Virtual Machines Technical Look at JVM and CLR Comparison of.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
CIS NET Applications1 Chapter 2 –.NET Component- Oriented Programming Essentials.
Introduction to .NET Framework
Understanding Code Compilation and Deployment Lesson 4.
1 The Java Virtual Machine Yearly Programming Project.
C# Overview and Features. Content I.History of C# II.Architecture III.How to install IV.Features V.Code Sample VI.Microsoft.NET Platform VII.Why use C#
Segmentation & O/S Input/Output Chapter 4 & 5 Tuesday, April 3, 2007.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Introduction to MDA (Model Driven Architecture) CYT.
Cis303a_chapt03-2a.ppt Range Overflow Fixed length of bits to hold numeric data Can hold a maximum positive number (unsigned) X X X X X X X X X X X X X.
.NET Framework Danish Sami UG Lead.NetFoundry
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
C# Versus Java Author: Eaddy, Marc Source: Software Tools for the Professional Programmer. Dr. Dobb's Journal. Feb2001, Vol. 26 Issue 2, p74 Hong Lu CS699A.
tom perkins1 XML Web Services -.NET FRAMEWORK – Part 1 CHAPTER 1.1 – 1.3.
More on Hierarchies 1. When an object of a subclass is instantiated, is memory allocated for only the data members of the subclass or also for the members.
Processes Introduction to Operating Systems: Module 3.
27 September 2007Kaiser: COMS W4156 Fall COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Object Oriented Software Development 4. C# data types, objects and references.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
INTRODUCTION CHAPTER #1 Visual Basic.NET. VB.Net General features It is an object oriented language  In the past VB had objects but focus was not placed.
July 22, 2001Introduction to.NET1 Introduction to.NET Framework Gholamali Semsarzadeh July 2001.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
7-Nov Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Oct lecture23-24-hll-interrupts 1 High Level Language vs. Assembly.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
Introduction to Operating Systems Concepts
Introducing the Microsoft® .NET Framework
Object Oriented Programming in
Objects as a programming concept
Compiler Construction (CS-636)
Microsoft .NET 3. Language Innovations Pan Wuming 2017.
.NET and .NET Core 2. .NET Runtimes Pan Wuming 2017.
Introduction to C# AKEEL AHMED.
Programming in C# CHAPTER 1
Advanced Programming: C# Lecture 01: Introduction
.NET Base Type (CTS Data Type) Managed Extensions for C++ Keyword
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Presentation transcript:

Common Language Infrastructure (CLI) Introduction and Class Library Factorization Hewlett-Packard Intel Microsoft

Outline What is the CLI? Factoring the Base Class Libraries Categories Packages by Category Questions and Answers

Overview of the CLI A file format A common type system An extensible metadata system An intermediate language Access to the underlying platform A factored base class library

File Format Based on COFF Uses existing extension mechanism Code represented as MSIL instructions Metadata stored in read-only area EAT / IAT for access to platform only Methods include a descriptive header Stack frame size Types of local variables and parameters Pinned variable information Exception handler table

Common Type System Spans large number of languages Object-oriented in flavor Supports procedural and functional languages, too Includes value types (structs), pointers, and by-reference values Subset for wide reach Common Language Specification (CLS)

Metadata System Self-description for assemblies (components) Includes referenced assemblies Allows crypto-strong names Records version information Security boundary Self-description for types Name and defining assembly Member information (fields, methods, etc.) Extensible through custom attributes Stored in file along with code

Intermediate Language Simple stack machine model Typeless opcodes ( add, not add.int32 ) Signed and unsigned via opcode, not type Rich set of conversion operations Verifiable subset Tail calls, virtual dispatch, call via function pointer, exception handling (two-pass) Typed variable argument lists, dynamically typed pointers Objects, vectors, and strings are built-in As are 32- and 64-bit integers and floats, and 32/64-bit agnostic integers

Access to Platform Metadata describes managed and unmanaged interface Marshaling is automatic for many types Custom marshaling can be specified Platform-specific transformations are possible (ANSI Unicode, etc.) Platform-specific calling conventions can be specified

Factored Class Library Designed for cross-language use Adheres to the CLS rules Factored to allow minimal footprint and minimal hardware requirements Intended to be platform-neutral Three layers: kernel, basic language, additional functionality Methodology and details follow….

Outline What is the CLI? Factoring the Base Class Libraries Categories Packages by Category Questions and Answers

Goals Factored Class Library Size constraints (RAM, ROM, Flash) Computational constraints (FPU, 64bit support) Feature requirements Factored Execution Environment Minimal base is always present File format independent of factorization Library factorization is the driver Standardization allows … … vendors to specify whats available … developers to specify requirements

Methodology Define Kernel Fixes file format Minimal functionality and hardware Hand-picked classes and methods Define Basic Language Minimal hardware support required Most common language features Features required for C# with minimal hardware support Depends on classes defined in Kernel Package each advanced function separately Implemented a la cart by runtime vendors Required a la cart by developers

Defining a Package Choose the classes A class can only be in one package Minimize and specify dependencies on packages Base class in package or one it depends on Basic Language depends on the Kernel package All other packages depend on both Kernel and Basic Language Compute the missing methods Check it makes sense, new dependencies Interfaces may be in another package Methods will exist, just cant cast to interface

Languages and Packages C# Requires Kernel, Basic Language, and Extended Numerics ECMAScript Requires above plus Reflection ISO C++ Requires Kernel, Basic Language, Extended Numerics, and NonCLS

Scenario-based System Design ScenarioRequired Packages MinimalKernel C# ProgramKernel, Basic Language Ex: Connected C# Application Kernel, Basic Language, Common DT, Networking Ex: Connected XML C# Application Kernel, Basic Language, Common DT, Advanced DT, Networking, XML, IO, Collections

Outline What is the CLI? Factoring the Base Class Libraries Categories Packages by Category Questions and Answers

Categories of Packages Classes grouped into packages Packages grouped into five categories For ease of discussion only Miscellaneous High Level Programming Abstract OS Interfaces Common Programming Utilities EE Functionality

The Five Categories (1 – 3) Abstract OS Interface Platform-independent operating system functionality Common Programming Library Classes that support common programming patterns High-Level Programming Programming patterns for the 2000s: XML, remote objects, asynchronous computing

The Five Categories (4 – 5) EE Functionality Revealing underlying operations to programming languages Miscellaneous Kernel, Basic Language, and support for developers

Outline What is the CLI? Factoring the Base Class Libraries Categories Packages by Category Questions and Answers

Abstract OS Interface 183 Classes and interfaces Networking (60) System.Net.* Security (60) System.IsolatedStorage, System.Security, … Standard I/O (32) System.Console, System.IO, System.Text, … Threading (31) System.Threading, …

Common Programming Lib. 118 Classes and interfaces Common Data Types (5) System.DateTime, System.Text.StringBuilder, etc. Advanced Data Types (11) System.BitConverter, System.URI, … Collections (27) System.Collections Extended Numerics (6) System.Decimal, System.Double, etc. Regular Expressions (8) System.Text.RegularExpressions.* Serialization (61) System.Runtime.Serialization.*, etc.

High-Level Programming 188 Classes and interfaces Asynchronous Programming (2) System.AsyncCallback, System.IAsyncResult Globalization (39) System.Globalization.*, System.Resources.*, etc. Remoting (88) System.Runtime.Remoting.* XML (54) System.Xml.* (parsing and generation) Advanced XML (5) System.Xml.Xsl.*, System.Xml.XPath.*

EE Functionality 96 Classes and interfaces GC (2) System.WeakReference, System.WeakReferenceException Hosting (3) System.OperatingSystem, etc. NonCLS (3) System.ArgIterator, etc. Reflection (62) System.Reflection.*, etc. Unmanaged (26) System.Runtime.InteropServices, etc.

Miscellaneous 107 Classes and interfaces Kernel (66) 1, 2, and 4 byte integers, arrays, string, object, etc. Basic Language Support (17) System.EventHandler, System.IFormattable, System.Type, etc. Development Time (24) System.Diagnostics.*, System.Runtime.CompilerServices.*

Outline What is the CLI? Factoring the Base Class Libraries Categories Packages by Category Questions and Answers