Any language that offers modules/packages as a way to organize code, regardless of which paradigms it supports.
This is why Modula-2 was named like that.
The original idea of ADT (Abstract Data Types) with modules, is that the module exports the public operations of your type along with its visible definition.
Then all operations on the ADT are done via the public operations.
This was the way of modular programming before OO became mainstream.
This is why Modula-2 was named like that.
The original idea of ADT (Abstract Data Types) with modules, is that the module exports the public operations of your type along with its visible definition.
Then all operations on the ADT are done via the public operations.
This was the way of modular programming before OO became mainstream.