zoukankan      html  css  js  c++  java
  • 第一章、 CLR的执行模型

    1. 概述

       本章主要是介绍从源代码到可执行程序的过程中,CLR所做的工作。

    2. 名词解释

      ① 公共语言运行时(Common Language Runtime, CLR),是一个可由多种语言使用的 运行时,核心功能(内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用。

      ② PE32:32位 Microsoft Windows 可移植执行体。

          PE32+:64位 Microsoft Windows 可移植执行体。

      ③ 元数据 是一组数据表,这些数据表描述了 模块中定义的内容 或者 托管模块引用的内容。

      ④ 托管模块 是一个标准的PE32或者PE32+文件,他们都需要CLR才能执行。由 PE32(+)头、CLR头、元数据 及 IL中间代码 组成。

      ⑤ 程序集 是一个或多个模块/资源文件的逻辑性分组,是重用、安全性以及版本控制的最小单元。

      ⑥ 清单(manifest) 是由 元数据表 构成的另一种集合,描述了构成程序集的文件。

      ⑦ 本地代码生成器(NGen.exe),将IL代码编译成本地代码。

      ⑧ Framework类库(FCL),Microsoft发布的一组DLL程序集的统称。

      ⑨ 通用类型系统(Common Type System, CTS):Microsoft制定的,描述类型定义和行为的规范。

      ⑩ 公共语言规范(Common Language Specification, CLS): 定义了一个最小功能集。任何编译器生成的类型要想兼容于由其他“符合CLS、面向CLR“的语言所生成的组件,就必须支持这个功能集。

    3. 执行过程

      ① 将源代码编译成托管模块。

      ② 将托管模块合并成程序集。(程序集链接器AL.exe)

      ③ 加载公共语言运行时。

      ④ 执行程序集的代码。

        CLR的JIT(just-in-time)编译器将IL转换成本地cpu指令。

        一次编译,多次运行。期间进行代码优化。

      ⑤ 与非托管代码的互操作性。

    4. 总结

      介绍CLR相关的各个部分,概述CLR的执行逻辑。

  • 相关阅读:
    HDU 1492 The number of divisors(约数) about Humble Numbers
    HDU 2700 Parity
    HDU 4104 Discount
    _getch() 函数,应用于输入密码敲入回车前修改
    函数指针|指针函数|C文件操作
    20160504
    数组指针|指针数组
    短路运算|字符串操作函数|内存mem操作函数
    C/C++ typedef
    Union
  • 原文地址:https://www.cnblogs.com/stone_lv/p/4288343.html
Copyright © 2011-2022 走看看