Я изучал, как разные языки управляют организацией исходного кода. Похоже, что в большинстве современных языков используется некоторая форма названного абстрактного контейнера. То, что его называют и как его реализация варьируется от одного языка к другому, но сводится к конструкции программирования, которая работает за пределами файлов, чтобы группировать связанный код.История пространств имен/пакетов/модулей?
В языках Java и .NET он используется как основа для организации зависимостей (вы включаете/импортируете пространство имен/пакет, к которому принадлежит класс, а не файл, в котором он определен). Хотя C++ использует его только для избежания конфликтов имен.
Мне любопытно, кто первым предложил эту идею и когда она была предложена. И какой язык был первым, кто его реализовал?
Вы все еще объединяете модули и пространства имен. C++ использует пространства имен, чтобы избежать конфликтов имен, и использует другие методы для создания модулей. Пространства имен и модули * разные *. –
Как вы отмечаете, термин модуль не может быть строго определен, потому что его определение варьируется от одного языка к другому. –
Когда я сказал «нет строгого определения», я имею в виду, что это не обязательно просто файл или класс; это может быть группа файлов или группа классов, или может быть более одного модуля для каждого файла. Но в любом случае вы смотрите на него, модуль является единицей группировки кода, а не единицей группировки имен. –