d中的编译时
原文
很简单:在像D类编译语言中,程序会经历3个阶段:
1)
源码:编写人类可读的文本.
2)
编译:编译器编译
程序.这就是"编译时"
.编译时,就是编译
程序的时候.
3)
二进制可执行
文件:编译
结果.运行它时,就是"运行时
".
每次运行
程序时就是运行时
.
(2)
阶段是暂时的,只在编译器内部
.
可分为几个步骤:
a)
词法和解析:编译器读取源码
,分解为令牌
(关键字,标识,操作符
等),并从中构造表示程序
的(AST)
抽象语法树.在此检测
拼写错误和语法
错误.
b)
语义分析:编译器处理AST
,并为每个相应编程结构
赋值含义
.在此检测
(某些)逻辑
错误(引用未定义
标识,数据类型
上的无效
操作,使用错误
数量参数调用函数
等).
c)
代码生成:根据编译器赋值
给程序
的语义,会发出一系列实现
这些语义的CPU
指令.这些指令一般保存
到稍后必须链接在一起的中间目标文件
中,或直接保存
到最终可执行文件
中.
D
的编译时
能力主要分为两类:
i
)AST
操作:模板
,静如,静每一
和pragma(msg)
属于此分类.这一般在(a)
和(b)
步骤间.
ii
)CTFE
(编译时求值
函数):这在(c)
步骤左右,主要包括:编译器使用内部解释器
解释程序
的一部分,以便编译时
计算函数值.编译时需要此值来解析
,所需内容
时触发
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现