跳转到内容
新建笔记

编程通用概念

编程通识回答“多数语言都绕不开什么”,用于建立可迁移的心智模型。具体语法仍回到相应语言笔记。

flowchart LR
A[源代码] --> B[编译或解释]
B --> C[模块与依赖]
C --> D[加载与运行]
D --> E[内存、输入输出和并发]
E --> F[结果或错误]
主题要回答的问题笔记
类型与表示一个值是什么、占多少空间、如何转换隐式转换、字节序
表达式与运算运算顺序和位级表示是否符合预期位运算与移位
函数与控制流数据如何进入和离开一个计算单元函数返回
运行时与内存数据位于哪里、生命周期由谁管理调用栈、堆内存
结构化数据如何在配置、接口和文档之间交换数据JSON、YAML 与 XML
文本模式如何可靠地查找、校验和提取文本正则表达式
术语如何准确理解跨语言文档通用术语
  • 提前编译(AOT):程序运行前生成目标代码,启动和运行开销通常更可预测。
  • 即时编译(JIT):运行期间把中间表示编译为机器码,可利用实际运行信息优化热点代码。
  • 静态链接:依赖代码进入最终产物,部署直接,但产物较大,更新依赖通常要重新链接。
  • 动态链接:程序装载或运行时解析共享库,便于共享和独立更新,但要处理版本、搜索路径和 ABI 兼容问题。

遇到错误时先判断阶段:语法与类型错误属于编译前端,未定义符号多发生在链接阶段,崩溃和错误结果属于运行阶段。阶段判断正确,排查范围会显著缩小。