|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2015, 20:37 | #1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Организация системы юнитов
Итак, имеется некий гипотетический язык программирования. Хочется в него подключать библиотеки различной направленности (написанных на том же языке пока что). Возникает несколько вопросов:
1. Как правильно (разумно, просто, понятно и т.д.) организовать хранение/обращение/доступ к юниту. 2. Как разрешать конфликт функций (когда функция с одним и тем же именем существует в разных юнитах и происходит ее вызов). 3. Как избегать дублирование юнитов (когда разные юниты в дереве ссылаются на одну и ту же стандартную библиотеку например).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 30.06.2015 в 20:44. |
30.06.2015, 21:25 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
1) Не совсем понятно что значит "как хранить". Ну например в файле, а файл в папке... Или в архиве, но архив все равно содержит папки и файлы, так что сути дела это не меняет.
2) Пространством имен - например, имя юнита + имя функции. Или имя папки + имя файла. 3) А в чем дублирование, это как раз хорошо, когда разные модули пользуются одной библиотекой. Гораздо хуже, когда у каждого свои костыли. |
30.06.2015, 22:01 | #3 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Цитата:
I'm learning to live...
|
|||
30.06.2015, 22:21 | #4 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Настала моя очередь троллить. А что такое юнит? Понятие не раскрыто.
В Канторе же класс является единицей именования и единицей компиляции, но не эвфемизмом файла, поэтому может быть разнесен на произвольное число файлов-скриптов. Также класс является принудительным, умолчательным и изолированным пространством имен. В Delphi, Java, D, C#, Питоне есть импорт модулей, порождающий то самое умолчательное анонимное простраство имен, в котором возможны конфликты. В Канторе же все публичные классы доступны друг другу, импорт планируется как необязательная фича. |
30.06.2015, 22:46 | #5 | |||||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Ну да, аналогия с Делфи мне ближе.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|||||
30.06.2015, 22:55 | #6 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
|
30.06.2015, 23:24 | #7 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
2. Смотреть накол-во параметров, порядок параметров, типы данных. Если функции одинаковы, брать первую из множества копий. Предусмотреть явный вызов <namesapace>.<module>.<method>. 3. Проблема ложится на программиста. Другой путь? Это другой модуль. Главное чтобы модуль из пути А нельзя было 2 раза в uses прописать. Если 2 модуля используют 1 библиотеку то компилировать библиотеку, а потом просто ссылаться на неё. Цитата:
Последний раз редактировалось Человек_Борща; 30.06.2015 в 23:28. |
||
30.06.2015, 23:27 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
01.07.2015, 07:06 | #9 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 01.07.2015 в 07:08. |
||
01.07.2015, 09:15 | #10 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,774
|
Так это и есть каша в голове. По-умному называется "отсутствие проектирования". К языку не имеет никакого отношения, только если вы не хотите решить задачу доказательства эквивалентности кода в том или ином виде -- то есть научиться формально доказывать, что физически разные участки кода на вашем языке делают одно и то же. Это сильно выходит за рамки модульности, я бы сказал.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Организация автоматизированной системы распознавания изображений php + js | Aleks47-samara | Помощь студентам | 7 | 23.02.2015 22:19 |
Общие модули системы. Организация | WennY | Общие вопросы по программированию, компьютерный форум | 0 | 29.11.2012 20:49 |
Несколько юнитов в DLL | Alex Cones | Общие вопросы Delphi | 2 | 09.11.2010 18:45 |
Правильная организация системы плагинов-расширений | Alexei91 | Общие вопросы Delphi | 4 | 26.09.2010 18:10 |
Чем отличается подключение юнитов до implementation и после? | TwiX | Общие вопросы Delphi | 1 | 07.12.2009 02:13 |