两个不同语法的存在。程式可能平常地由「正常语法」或「校正过的语法」写成，并且按需求由两者之一进行程式优化类似地，一些OCaml语言写成的程式借由新运算符的增加来自定化语言的语法。
扩充语言.对于从巨集扩充语言最好的范例可在LISP语言家族里找到。这种语言本身就是简单的动态类型核心模块，Scheme或Common Lisp的标准分配允许了命令或物件导向的程式编辑，静态类型亦如此。几乎所有这些特性都由语法预处理执行，虽然它的「巨集扩充」编译阶段由LISP的编译器处理这点很值得一提就