d中的编译时

原文
很简单:在像D类编译语言中,程序会经历3个阶段:
1)源码:编写人类可读的文本.
2)编译:编译器编译程序.这就是"编译时".编译时,就是编译程序的时候.
3)二进制可执行文件:编译结果.运行它时,就是"运行时".
每次运行程序时就是运行时.
(2)阶段是暂时的,只在编译器内部.
可分为几个步骤:
a)词法和解析:编译器读取源码,分解为令牌(关键字,标识,操作符等),并从中构造表示程序(AST)抽象语法树.在此检测拼写错误和语法错误.

b)语义分析:编译器处理AST,并为每个相应编程结构赋值含义.在此检测(某些)逻辑错误(引用未定义标识,数据类型上的无效操作,使用错误数量参数调用函数等).
c)代码生成:根据编译器赋值程序的语义,会发出一系列实现这些语义的CPU指令.这些指令一般保存到稍后必须链接在一起的中间目标文件中,或直接保存到最终可执行文件中.
D编译时能力主要分为两类:
i)AST操作:模板,静如,静每一pragma(msg)属于此分类.这一般在(a)(b)步骤间.
ii)CTFE(编译时求值函数):这在(c)步骤左右,主要包括:编译器使用内部解释器解释程序的一部分,以便编译时计算函数值.编译时需要此值来解析,所需内容触发.

更多细节

posted @   zjh6  阅读(22)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示