深奥的编程语言
编程语言的范型可以分为若干类别，这些类别可以用来大致了解特定语言的操作方式。其中包括命令式语言，如brainfuck，其指令描述了如何修改数据；函数式语言，如Unlambda，其中的数据和代码都或多或少地可交换，而程序的执行是通过重复迭代调用函数实现的；和重写语言，如Thue，其中可以使用变换函数使状态初始化。
结构化编程
用任何語言都可以進行結構化程式設計，不過一般較常使用过程式的程式語言。早期的結構化程式語言包括ALGOL、 Pascal、PL/I及Ada，不過後來大部份的程序式程式語言都鼓勵使用結構化程式設計，有時也會特意的省去一些特性（例如不支援goto指令）使得非結構化的程式設計更加困難。