编程语言(Programming Language)
缩写:无
简述
用于书写程序的形式化符号系统:规定词汇、语法与语义,使人类意图能无歧义(在语言定义范围内)地映射为可执行行为。语言选择影响表达力、性能模型、生态与工程约束,但「能算什么」在图灵完备意义下往往可互通,差在如何算、多易维护。
为何出现
直接操作机器码成本极高且易错;需要更接近问题域、可组合、可检查的表达层。
使用场景
选型技术栈、阅读语言规范、跨语言互操作、教学与团队技能规划。
组成与要点
语法 + 语义 +(类型/内存/并发模型)+ 标准库与工具链
实践与应用
• 按问题域、团队技能、运行环境与生态成熟度选型,而非仅看语法喜好。
• 在一种语言内先掌握其惯用模型(如所有权、GC、原型)再谈风格之争。
• 多语言系统明确边界与数据交换格式。
注意事项
• 语言流行度 ≠ 场景适配。
• 「同构」多语言表面相似,语义陷阱(数值、相等、异步)仍在。
• 方言与实现差异(如 JS 引擎)会影响可移植性。
对比与易混
• 标记语言(如 HTML):描述结构,一般不描述完整计算过程。
• 查询语言(如 SQL):面向数据操作的领域语言,可与通用语言配合。
• 领域特定语言 DSL:为窄领域优化的语言或方言。
关联术语
• 语法:合法写法的规则
• 语义:合法程序的含义与效果
• 运行时:语言程序落地执行的环境
• 编译器 / 解释器:源码到执行的常见路径
• 类型:语言中对值与操作的约束方式