首页 > 其他分享 >编译器负责转换源代码

编译器负责转换源代码

时间:2024-02-24 20:11:20浏览次数:21  
标签:转换 代码 编译器 SH 本地 源代码 CPU

能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器。 每个编写源代码的编程语言都需要其专用的编译器。将C 语言编写的源代码转换成本地代码的编译器称为 C编译器。编译器首先读人代码的内容, 然后再把源代码转换成本地代码。编译器中就好像有一个源代码同本地代码的对应表。但实际上,仅仅靠对应表是无法生成本地代码的。 读入的源代码还要经过语法解析、句法解析、语义解析等,才能生成本地代码。根据CPU类型的不同,本地代码的类型也不同。 因而,编译器不仅和语言的种类有关,和CPU 的类型也是相关的。例如,Pentium等x86系列CPU用的C编译器, 同PowerPC这种CPU用的C编译器就不同。从另一个方面来看, 这其实是非常方便的。因为这样一来,同样的源代码就可以翻译成适用于不同CPU 的本地代码了为编译器本身也是程序的一种, 所以也需要运行环境。例如,有Windows用的C编译器、 Linux用的C编译器等。此外,还有一种交叉编译器,它生成的是和运行环境中的 CPU不同的CPU所使用的本地代码。例如,在Pentium系列 CPU的Windows这一运行环境下,也可以作成SH 及MIPS等CPU用的WindowsCE 程序, 而这就是通过使用交叉编译器来实现的。读到这里大家可能稍微有一些混乱, 不妨让我们来梳理一下。大家在计算机软件商店等处购买编译器时, 可能会跟店员说明3点:“想要买的是何种编程语言用的编译器” “编译器生成的本地代码是用于哪种CPU的”以及 “该编译器是在什么环境下使用的”。 而实际上,通常只要说明产品名及版本就可以了。
① SH(SuperH)是日立制作所和三菱电机共同成立的瑞萨技术开发的 CPU。该CPU有多种类型,在手机、车载GPS、PDA、 游戏机等设备上均有使用。
② WindowsCE是采用了MIPS、SH等CPU的PDA 及嵌入式开发领域广泛使用的操作系统。现在编译器基本上不需要购买, 都已经默认集成到开发IDE中了。译者注

标签:转换,代码,编译器,SH,本地,源代码,CPU
From: https://www.cnblogs.com/sleeeep/p/18031502

相关文章

  • 类型转换
    publicclassDemo02{publicstaticvoidmain(String[]args){inti=128;byteb=(byte)i;//强制类型转换(类型)变量名高->低//自动转换低->高System.out.println(i);System.out.println(b);//内存溢出/*注意点1.不能将布尔值进行转换2.不能将对象类型转为不......
  • Java基础05:类型转换
    类型转换1.由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换低------------------------------------------------->高byte,short,char--->int--->long--->float--->double强制转换:由高类型转换到低类型  自动......
  • 什么是转换矩阵以及如何使用它
    项目地址:Pdfium.Net:https://github.com/1000374/Pdfium.NetPdfiumViewer:https://github.com/1000374/PdfiumViewer当您使用PDFium库处理PDF文件中的对象时,您可以使用SetMatrix函数以各种方式转换对象(通常是图像,但也包括任何其他嵌入对象)。使用变换矩阵,您可以旋转、平移(移......
  • C# 的显示转换 *.Parse(string) Convert.ToInt32(double value)
    //显式转换(类型)///(int)表示使用强制的显示转换,是一种类型转换,C#默认的整形是int32,///因此使用此方法转成int32不遵循四舍五入,直截取整数部分///(int)5.12结果是5///Int.Parse()指把string类型转换int......
  • delphi Byte 与 AnsiChar、WideChar 相互转换
    Byte与AnsiChar、WideChar相互转换代码Byte转AnsiChar、WideCharprocedureTForm1.Button1Click(Sender:TObject);varac:AnsiChar;wc:WideChar;bys:TBytes;begin//ANSI编码ac:='a';bys:=BytesOf(ac);Memo1.Lines.Add(bys[0].ToString);......
  • R语言时变面板平滑转换回归模型TV-PSTR分析债务水平对投资的影响|附代码数据
    全文下载链接:http://tecdat.cn/?p=21506最近我们被客户要求撰写关于TV-PSTR的研究报告,包括一些图形和统计输出。在本文中,当采用两种状态时,单转换函数PSTR模型具有两个变量:我们的经验方法的基础包括评估N个国家的资本流动性。相应的模型定义如下:其中,Iit是第i个国家在时间t时观......
  • 项目mysql转换为kingbase人大金仓数据库
    项目mysql转换为kingbase人大金仓数据库目录项目mysql转换为kingbase人大金仓数据库官网已遇到的需要进行替换的部分UUID()部分进行分组并加以排序选择mysqlkingbase——row_number()排序函数列为null时的排序规则不同用到groupby的话,select的数据要进行分组my......
  • C++强制类型转换详解:四种操作符解析与实例演示
     概述:C++中的强制类型转换是实现数据类型间转换的关键机制,包括static_cast、dynamic_cast、const_cast和reinterpret_cast四种。这些操作符适用于不同的场景,通过实例源代码详细阐述了它们的使用方法和步骤。在C++中,强制类型转换是将一个数据类型的值转换为另一个数据类型的过......
  • 从源代码到可执行文件
    编写好源文件之后,对源文件进行编译和链接就可以生成可执行文件了。编译和链接的操作需要使用编译器和链接器来完成。不同编译语言所编写的源代码翻译成本机代码之后就成了同一种语言。负责将用C语言等高级语言编写的源代码翻译成本机代码的程序称为编译器,用不同的编译语言编写的源......
  • 如何在python中判断一个字符串是否可以转换为数字
    方法一:isdigit()不可识别汉字小数类型str1='1'str2='2.1'str3='三'str4='3.3.3.3'print(str1.isdigit())print(str2.isdigit())print(str3.isdigit())print(str4.isdigit())结果:TrueFalseFalseFalse方法二:isdecim......