正如高德纳所构想的那样,文学编程范型不同于传统的由计算机强加的编写程序的方式和顺序,而代之以让
程序员用他们自己思维内在的逻辑和流程所要求的顺序开发程序。文学编程自由地表达逻辑,而且它用人类日常使用的语言写出来,就好像一篇文章一样,文章里包括用来隐藏抽象的
宏和传统的源代码。文学编程工具用来从文学源文件中获得两种表达方式,一种用于计算机进一步的编译和执行,称作“绕出”(tangled)的代码,一种用于格式化文档,称作从文学源代码中“织出”(woven)。虽然第一代文学编程工具特定于计算机语言,但后来的工具可以不依赖具体语言,并且存在于比编程语言更高的层次中。
文学程序是用
自然语言(比如英语)写出来的对
程序逻辑的解释,程序中交织点缀着宏和传统
源代码段。在文学编程的源文件中,宏很简单,它或与标题类似,或是解决编程问题时用人类语言描述抽象的解释性短语。它把
代码段或更低层次的宏隐藏了起来,且与计算机科学教学时经常用到的,用伪码写的算法相似。这些任意解释的短语成为新的精确的
操作符,操作符由
程序员在运行过程中创建,组成了在基本编程语言之上的“
元语言
第一个发布的文学编程环境是WEB,由高德纳于1981年为他的TeX排版系统而引入。它使用
Pascal作为其基础编程语言,使用TeX作为文档排版工具。其它的文学编程概念的实现有noweb和FunnelWeb,它们都是
源代码独立的。
Haskell编程语言对半文学编程有原生支持,其来源于CWEB但用了较简单的实现。