编译器

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine co

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine co收起

查看更多

电路方案

查看更多

设计资料

查看更多
  • 一文搞懂新一代AI编译器的基础设施——MLIR编译框架
    MLIR是一种完全可扩展的编译器基础设施,具备高度模块化和开放的架构,支持多种应用场景,如AI编译器、高性能计算、图形处理和量子计算等。它通过操作、属性和类型系统的开放性,提供多级抽象表示能力,支持从高级语言到低级代码的转换。MLIR采用方言概念支持模块化和可扩展设计,提供丰富的内置方言,如Torch、TOSA、MHLO等,用于处理不同领域的计算和数据流图。此外,MLIR通过区域和基本块的嵌套结构,实现复杂控制流和数据流的表示,支持高级优化和转换。
    892
    06/18 15:12
    一文搞懂新一代AI编译器的基础设施——MLIR编译框架
  • e2 studio开发环境下LLVM和GNU编译器的区别?
    在e² studio开发环境下,选择LLVM Embedded Toolchain for Arm与GNU ARM Embedded工具链的区别体现在架构支持、优化能力、C++支持、构建流程、社区生态、兼容性与应用场景等方面。LLVM支持更广泛的Arm架构,优化能力强,C++支持完善,而GNU则在兼容性和稳定性上有优势。具体应用中,LLVM适用于高性能需求,GNU适用于兼容性和迁移成本较低的场景。
    761
    04/24 11:11
  • 嵌入式软件性能提升:编译器优化陷阱及其解决方案
    编译器优化是提高嵌入式软件性能的重要手段,但也存在一些潜在的风险和陷阱。本文详细介绍了几个常见的优化陷阱及其解决方案,包括正确使用`volatile`关键字、避免空循环、处理函数返回值、避免未定义行为以及保持调试与发布版本的一致性。通过这些措施,开发者可以在享受编译器优化带来的好处的同时,确保程序的稳定性和可靠性。
    嵌入式软件性能提升:编译器优化陷阱及其解决方案
  • IAR扩展嵌入式开发平台,推出面向安全关键型应用的长期支持(LTS)服务
    IAR日宣布,对其嵌入式开发平台进行扩展,推出全新长期支持(Long-Term Support,LTS)服务,旨在帮助客户在漫长的产品生命周期中,维持稳定、可复现的工具链。 在汽车、工业自动化、医疗等安全关键型行业中,嵌入式软件必须在产品投产后多年内保持可维护、可重建和可更新。开发团队需要在完成软件更新、解决问题、适配不断变化的需求的同时,保证开发工具、工作流程与构建环境的一致性。 在此背景下,工
  • STM32U5 TrustZone架构HardFault解决方案:IAR9.30程序跳转SP对齐问题
    STM32U5 启用 TrustZone 后,从 bootloader 跳转到 app 的过程中,IAR 编译器从 9.20 升级至 9.30 会触发 HardFault,核心原因是新版本编译器生成的汇编指令导致 SP(栈指针)未满足 VLSTM 指令的 8 字节对齐要求。通过调整栈空间配置或手动对齐 SP,可在保留 TrustZone 架构的同时正常完成程序跳转。本文基于 ST 官方 LAT1233 应用笔记,详解问题根源与分步解决流程。