深奥的编程语言
编程语言的范型可以分为若干类别，这些类别可以用来大致了解特定语言的操作方式。其中包括命令式语言，如brainfuck，其指令描述了如何修改数据；函数式语言，如Unlambda，其中的数据和代码都或多或少地可交换，而程序的执行是通过重复迭代调用函数实现的；和重写语言，如Thue，其中可以使用变换函数使状态初始化。
编程语言
除了何时以及如何确定表达式和型态的联系，另外一个重要的问题就是语言到底定义了哪些型态，以及允许哪些型态作为表达式的值。诸如C编程语言之类的低端语言允许程序命名内存位置、内存区域以及编译时的常量；ANSI C甚至允许表达式返回结构值（）。功能性的语言一般允许变量直接使用运行时计算出的值，而不是指出该值可能储存的内存地址。