程序设计语言由一组具有明确语法与语义的符号和规则组成,语法用于定义程序设计语言中合法符号及其组成规则,而语义则用于解释相关语法规则的含义。程序设计语言经历了从低级到高级的发展过程。最早的语言是机器语言,由机器指令构成。机器语言程序可以直接输入到裸机上不经过任何处理直接执行。为了解决机器语言程序不易读的问题,产生了助记符语言,并发展成汇编语言,汇编语言程序要经过汇编程序翻译后才能在机器上执行。汇编语言同机器语言一样,都依赖于特定机器,具有程序紧凑、执行速度快、灵活度高等优点,但也存在对程序员要求高、程序可读性低、易出错、可维护性差等问题。为了解决这些问题,独立于具体机器的高级语言便应运而生。程序设计语言一般皆指高级语言。
较早的程序设计语言一般包含数据定义、语句、子程序、输入输出等部分(如FORTRAN、COBOL与ALGOL语言),经过结构化程序设计、模块化程序设计、面向对象程序设计等多个阶段发展,现代程序设计语言除了包含类型与对象定义、语句、子程序、输入输出等设施外,一般还要包含支持数据抽象与模块化、多任务处理、实时处理、异常处理、模板与泛型处理等的设施。
程序设计语言按照应用领域可以分为通用语言(如Pascal、Ada、C、C++、Rust等)与特定于某类应用的专业语言(PHP、R、SQL、JavaScript),也可以按照其他分类规则分为静态语言(如Java)与动态语言(如Python)、命令式语言(如Go)、逻辑式语言(如Prolog)与函数式语言(如LISP);等等。