Can you summarize the following document?
        
  中介码(IR,intermediate representation)是一种数据结构,可将输入的资料建构为一个计算机程序,也可以将一部分或是所有输出的程序反推回输入资料。这意味着中介码将会保留一些输入资料的资讯,同时拥有更进一步注释或是快速查询的功能。  举一个典型的例子,它是现代许多编译器所拥有的功能,它可将一段程序转换成一个中间层的Graph资料结构,Graph可进行数据流分析,而且可在建立实际运行的CPU指令列表之前进行重组(re-arrangement),这种中间层的使用方式,允许像是LLVM的编译系统可以同时拥有许多不同的前端语言编译器,而且可以产生许多不同架构系统的机器码。

  C语言虽然并没有明确设计为中间语言,但它天生就是组合语言的抽象形态,它同时作为类Unix系统及其他操作系统中的系统程序语言(System programming language),这令它成为最热门的中间语言,使用它的包含Eiffel、Sather、Esterel、一些Lisp的方言(Lush, Gambit)、Haskell(Glasgow Haskell Compiler)、Squeak的Smalltalk子集Slang、Cython、Seed7、Vala等等。C的变形已经被用作可携版的汇编语言同时包含C的功能,包含C--及C中间语言(C Intermediate Language)。  微软的通用中间语言,在动态或是静态编译为机器语言之前,可用作.NET框架底下所有编译器共享的中间语言。  GCC使用不同的中间语言来达到简化行动性及跨平台,包含:  多数的中间语言用作支援静态类型的语言,Parrot intermediate representation则是设计用作支援动态类型的语言,最初有Perl及Python。  ILOC中间语言在编译器的设计中,它是用作简单的目标语言
中间语言(英语:Intermediate language),在计算机科学中,是指一种应用于抽象机器(abstract machine)的程序语言,它设计的目的,是用来帮助我们分析计算机程序。这个术语源自于编译器,在编译器将源代码编译为目的码的过程中,会先将源代码转换为一个或多个的中间表述,以方便编译器进行最佳化,并产生出目的机器的机器语言。通常,中间语言的设计与一般的机器语言有三个不同之处: