澳门至尊网站-首页

您的位置:澳门至尊网站 > 技术教程 > 源码如何生成托管代码块,将源代码编写翻译成

源码如何生成托管代码块,将源代码编写翻译成

2019-10-21 03:05

1、使用编程语言编写源码--->编程语言的编译器(面向Clr)---->生成IL代码和元数据(包含:代码中声名的类和成员 以及所引用的成员)

1. 公共语言运行时(Common Language Runtime,CLR)是一种可由多种编程语言使用的"运行时"。

2、IL就被称之为托管代码,因为有Clr管理者它的执行

2. CLR的核心功能(比如内存管理,程序集加载、安全性、异常处理和线程同步等)可由面向CLR的所有语言使用。

图片 1

  1. 用一个对应的编译器编译源代码之后,结果都是一个托管模块

 

图片 2

==================关键词==================

图片 3

源码、语言、语言编译器、Clr、中间语言IL、元数据

4. 托管模块是一个标准的32/64位Microsoft Windows 可移植执行体(PE32/PE32+)文件,它们都需要CLR才能执行。

语言就是编写代码的使用的语言,有c# F# c++等

 

语言编译器:每种语言都对应着一个编译器,在,.net平台要想自己写的代码能够被执行,编译器都要面向CLR(公共语言运行时).

5. 托管的程序集利用Windows的数据执行保护地址空间布局随机化增强整个系统的安全性。

Clr :公共语言运行时,执行过程是  源码---托管代码(由语言编译器生成)--加载公共语言运行时---执行代码

 

IL: 本机代码生成器生成的代码都是面向特定架构的Cup的代码(x86,x64,arm),而每个面向Clr的编译器生成的代码都是面向IL的代码,加载运行时后,会把IL代码解释成cup能识别的机器码,最后执行

  1. 托管模块的各个组成部分

 

图片 4

 

 图片 5

为了执行托管的代码,用户得要在自己的电脑上安装好“运行时”(目前是framework的一部分)

  1. 本地代码编译器生成的是面向特定CPU架构(比如x86、x64和IA64)的代码。

 

 

8. 每个面向CLR的编译器生成的都是IL(中间语言)代码。IL有时称为托管代码,因为CLR要管理它的执行。除了生成IL,面向CLR的每个编译器还要在每个托管模块中生成完整的元数据。

 

9.  元数据是一组数据表。其中一些数据表描述了模块中定义的内容,比如类型及其成员。还有一些元数据表描述了托管模块引用的内容,比如导入的类型及其成员。元数据总是与包含IL代码的文件关联。事实上,元数据总是嵌入和IL代码相同的EXE/DLL文件中,两者密不可分。

 

  1.  元数据的用途
  •     编译时,元数据消除了对本地C/C++头和库文件的需求,因为在负责实现类型/成员的IL代码文件中,已包含和引用的类型/成员有关的全部信息。编译器可直接从托管代码中读取元数据。
  •     Visual Studio 使用元数据帮你写代码。它的"智能感知"技术可以解析元数据。
  •     CLR的代码验证过程使用元数据确保代码执行“类型安全”的操作。

    ......

 

本文由澳门至尊网站发布于技术教程,转载请注明出处:源码如何生成托管代码块,将源代码编写翻译成

关键词: