控制流的低层代码使用，而面向对象编程是对象的“数据”使用，对象是某种数据结构。在面向对象编程中，使用接口作为一种架构上的模式（pattern）来构造模块叫做基于接口编程 。
语言支持.正式支持模块概念的语言包括：Ada、Algol、、C#, Clojure、COBOL、D、Dart、、Erlang、Elixir、Elm、、F#、Fortran、Go、Haskell、汇编语言、（CL）、、Java、MATLAB、ML、Modula、Modula-2、Modula-3、Morpho