C#等高级语言运行过程

这篇具有很好参考价值的文章主要介绍了C#等高级语言运行过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C#等高级语言运行流程:

  1. 假设您编写了一个 C# 程序并将其保存在一个称为源代码的文件中。

  1. 特定于语言的编译器将源代码编译成 MSIL(Microsoft 中间语言),也称为 CIL(通用中间语言)或 IL(中间语言)及其元数据。元数据包括程序的每个功能的所有类型、实际实现。MSIL 是与机器无关的代码。

  1. 现在,CLR应运而生。CLR 为 MSIL 代码提供服务和运行时环境。在内部,CLR包括JIT(即时)编译器,它将MSIL代码转换为由CPU进一步执行的机器代码。CLR 还使用 .NET Framework 类库。元数据向 CLR 提供有关编程语言、环境、版本和类库的信息,CLR 通过该信息处理 MSIL 代码。由于 CLR 很常见,因此它允许用不同语言编写的类的实例调用用另一种语言编写的类的方法。

C#等高级语言运行过程,C#,软件开发,c#,Powered by 金山文档

CLR(Common Language Runtime)是一个可由多种编程语言使用的“运行时”,是 .NET Framework 的基本虚拟机组件。它是 .NET Framework 中的运行时环境,它运行代码并通过提供各种服务帮助简化开发过程。基本上,它负责管理 .NET 程序的执行,而不管任何 .NET 编程语言。在内部,CLR 实现了 VES(虚拟执行系统),它在 Microsoft 的 CLI(公共语言基础结构)实现中定义。

C#等高级语言运行过程,C#,软件开发,c#,Powered by 金山文档

公共语言规范 (CLS):

它负责将不同的 .NET 编程语言语法规则和法规转换为 CLR 可理解的格式。基本上,它提供了语言互操作性。语言互操作性意味着在 .NET 框架中也为其他编程语言提供执行支持。

语言互操作性可以通过两种方式实现:

托管代码:由 CLR 管理的 MSIL 代码称为托管代码。对于托管代码。

非托管代码:在 .NET 开发之前,like.COM Components 和 Win32 API 的编程语言不会生成 MSIL 代码。因此,这些不是由 CLR 管理,而是由操作系统管理。

IL:中间语言(中间代码)是一种面向语法,易于翻译成目标程序的源程序的等效内部表示代码,IL是基于栈的,微软提供ilasm.exe的il汇编器和一个名为ildasm.exe的il反汇编器。

通用类型系统 (CTS)

每种编程语言都有自己的数据类型系统,因此CTS负责了解.NET编程语言的所有数据类型系统,并将它们转换为CLR可理解的格式,这将是一种通用格式。

每种 .NET 编程语言都有 2 种类型的 CTS:

值类型:值类型将值直接存储到内存位置。这些类型仅适用于堆栈机制。CLR 在编译时允许这些内存。

引用类型:引用类型将包含值的内存地址,因为引用类型不会将变量值直接存储在内存中。这些类型与堆机制一起使用。CLR 在运行时为这些分配内存。

垃圾收集器:它用于提供自动内存管理功能。如果没有垃圾收集器,程序员将不得不编写内存管理代码,这对程序员来说是一种开销。

JIT(即时编译器):它负责使用公共语言运行时环境将 CIL(公共中间语言)转换为机器代码或本机代码。

Windows机制:Windows 是一个事件驱动的操作系统。事件驱动围绕着消息的产生与处

理展开,事件驱动消息会进入系统消息队列中并靠消息循环机制来处理和实现。

的通知,消息是Windows 操作系统的灵魂。

C#等高级语言运行过程,C#,软件开发,c#,Powered by 金山文档

参考:

https://mp.weixin.qq.com/s?__biz=MzI0MTU0ODQwMQ==&mid=2247485894&idx=1&sn=8ee1e0d049f6c00f9523e14397e36a40&chksm=e908a4d8de7f2dcedcda1aa8f7ace43c471fca195ffcc44a97e6d60ce4b1a8c398de56857e4d&scene=27

https://www.cnblogs.com/jimcsharp/p/4369141.html文章来源地址https://www.toymoban.com/news/detail-535037.html

到了这里,关于C#等高级语言运行过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#软件外包开发框架

    C# 是一种由微软开发的多范式编程语言,常用于开发各种类型的应用程序,从桌面应用程序到移动应用程序和Web应用程序。在 C# 开发中,有许多框架和库可供使用,用于简化开发过程、提高效率并实现特定的功能。下面和大家分享一些常见的 C# 开发框架,希望对大家有所帮

    2024年02月12日
    浏览(45)
  • 软件项目开发管理过程和方法概述

    软件项目开发管理是一种过程和方法,用于确保软件开发能够满足特定的需求、时间和预算等方面的要求。以下是软件开发项目管理的关键步骤: 目标具体化:明确软件项目的目标,并将这些目标具体化,以便能够更好地进行开发和评估。 问题定义:明确要解决的问题是什

    2024年02月10日
    浏览(51)
  • 软件需求开发和管理过程性指导文件

     1. 目的 2. 适用范围 3. 参考文件 4. 术语和缩写 5. 需求获取的方式 5.1. 与用户交谈向用户提问题 5.1.1. 访谈重点注意事项 5.1.2. 访谈指南 5.2. 参观用户的工作流程 5.3. 向用户群体发调查问卷 5.4. 已有软件系统调研 5.5. 资料收集 5.6. 原型系统调研 5.6.1. 原型功能分类 5.6.2. 原型形

    2024年04月26日
    浏览(41)
  • C#开发AGV地图编辑软件

    C#自己开发AGV地图编辑软件: 1、自由添加和删除站点、停车位、小车、运行路径。 2、编辑得地图以XML文件保存。 3、导入编辑好地图的XML文件。 4、程序都是源码,可以直接在此基础上进行二次开发。 下载链接:https://download.csdn.net/download/panjinliang066333/88855372 部分代码展示:

    2024年02月22日
    浏览(61)
  • Windows平台上的5种敏捷软件开发(过程)模型

    我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows平台上的5种敏捷软件开发(过程)模型。 说到这个问题,你必须先知道除了敏捷模型还有没有其他什么模型?同时要比较模型的区别,首先还要看看什么叫软件开发。 软件开发是一项包括版本计划、需求捕捉、

    2024年02月05日
    浏览(58)
  • Fpga开发笔记(二):高云FPGA发开发软件Gowin和高云fpga基本开发过程

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135620590 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《Fpga开发笔记(一):

    2024年01月16日
    浏览(73)
  • 软考高级系统架构设计师系列论文七十四:基于构件的软件开发

    软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构

    2024年02月11日
    浏览(59)
  • 软考高级系统架构设计师系列论文七十五:论基于构件的软件开发

    软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构

    2024年02月11日
    浏览(74)
  • 软件测试/测试开发丨Selenium Web自动化测试 高级控件交互方法

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27045 使用场景 对应事件 复制粘贴 键盘事件 拖动元素到某个位置 鼠标事件 鼠标悬停 鼠标事件 滚动到某个元素 滚动事件 使用触控笔点击 触控笔事件(了解即可) https://www.selenium.dev/documentati

    2024年02月09日
    浏览(101)
  • 软件工程:小组开发过程技术(VS VSS UNIX C++)

            ( 注:这个东西是2007年写的,算是个缅怀,或是个吐槽。所有注都是本次发布新加的。 ) 简介         本文讲述完全没有软件工程经验的软件小组如何借助VS VSS等工具为UNIX开发C++程序,实现在小组规模的初级开发过程。这不是TSPi或者CMM,这比CMM1级(初始级)

    2024年02月07日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包