小谈我了解的gcc(12-16)

本文详细解析了GCC编译器如何处理C语法,包括寄存器分配、并行符号添加等关键步骤。同时,讨论了体系结构和ASM指令集设计的重要性,以及GCC在实际应用中的实例,如Linux、Dejagnu等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想初步了解gcc和具体怎么使用gcc,最好就是man gcc。

    具体大概想知道gcc是怎么处理c语法的,可查看gcc本身生成的一些gcc文档。
    具体详细想知道gcc是怎么处理c语法的,可查看gcc本身生成的gccint和gcc源码。其实这也是学好C语言的一种方式,毕竟目前大部分的C程序都是由GCC编译的,某种语言的成功主要不是因为他的设计是多么的合理,多么的优秀,这只是一方面,另一方面是这种语言已经实现了一个良好的平台,而这个平台的使用者的数量和使用范围比较可观,简单的说linux是用C写的,dejagnu是TCL和EXPECT写的,emcas是Lisp写的等等。
    将c翻译成asm,除了编译器本身的体系结构的合理性外,还取决于体系结构和asm指令集的设计的合理性,我觉得后者更重要。所以好的体系结构和优秀的asm指令集的设计对于编译器中具体的后端模板的编写具体很大程度上的指导作用。
    目前接触到的gcc中的内容有寄存器分配,并行符号的添加,nest_function和nonlocal_label。后续会继续小谈下我理解中的编译原理中对于这些的处理和gcc本身基于编译原理对于这些语法的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值