OberonCore
https://forum.oberoncore.ru/

Иерархия модулей - Возможно ли?
https://forum.oberoncore.ru/viewtopic.php?f=86&t=3094
Страница 1 из 3

Автор:  ilovb [ Среда, 22 Декабрь, 2010 13:14 ]
Заголовок сообщения:  Иерархия модулей - Возможно ли?

Возможна ли иерархическая организация модулей?
Или только сетевая?

У меня в голове давно крутится нечто подобное следующему (в скобках то, что разрешено имортировать):

1. Прикладуха (Сервисы, Прокси)
2. Сервисы (Прокси, Драйверы)
3. Прокси (Драйверы) - вспомогательный, для декомпозиции сервисов
4. Драйверы(HAL)
5. HAL (интерфейс среды (Железо, DLL и т.д.))

Автор:  Info21 [ Среда, 22 Декабрь, 2010 14:41 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

ilovb писал(а):
Возможна ли иерархическая организация модулей?
Или только сетевая?
Она только иерархическая в силу запрета на циклический импорт.

Вы просто хотите добавить еще запретов, и чтобы их можно было определять под проект.
Это непонятно, как сделать хорошо, потому и не сделано.
Поэкспериментируйте, расскажите.

Автор:  ilovb [ Среда, 22 Декабрь, 2010 15:11 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Запрет циклических ссылок - это не совсем иерархия (или совсем не... :) )
Разница между иерархией и сетью в том, что в первой иморт однонаправленный. Соответственно порядок загрузки модулей полностью определен (учитывая то, что модули одного уровня друг друга не импортируют)

В сетевой модели это не так.

В иерархии проще ориентироваться и думать. Порядок в системе, порядок в голове

Автор:  Alexey Veselovsky [ Среда, 22 Декабрь, 2010 15:18 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

С позволения выдеру из контекста цитатку:
Цитата:
В иерархии проще ориентироваться и думать.

Если абстрагироваться от топика обсуждения, то весьма социалогично звучит :-)

Автор:  Axcel [ Среда, 22 Декабрь, 2010 15:19 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Я когда то использовал систему, в которой была иерархия модулей (Алгол-68 для PC Терехова). Т.е. там верхний уровень был сетевой или глобальный, в общем всеми видимый, но можно было "углубится". Так вот, на практике ВСЕ модули оказывались на глобальном уровне. Так, что сетевая организация - это от практики.
Тут другой момент. Хотелось бы иметь возможность при "серверной" установке, указывать хотя бы еще один каталог (для библиотек). И вроде бы такая возможность есть, но какая-то полулегальная.

Автор:  Alexey Veselovsky [ Среда, 22 Декабрь, 2010 15:51 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

А, кстати, расскажите о Алголе-68. Чем он отличается от того же оберона, ады и других современных языков?

Редко встретишь человека который на нем бы писал.

Автор:  Валерий Лаптев [ Среда, 22 Декабрь, 2010 17:30 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

ilovb писал(а):
Запрет циклических ссылок - это не совсем иерархия (или совсем не... :) )
Разница между иерархией и сетью в том, что в первой импорт однонаправленный. Соответственно порядок загрузки модулей полностью определен (учитывая то, что модули одного уровня друг друга не импортируют)

В сетевой модели это не так.

В иерархии проще ориентироваться и думать. Порядок в системе, порядок в голове

Поскольку существует запрет на циклические ссылки, имеем ациклический граф. Это более общая структура,чем дерево, хотя и однонаправленная.

Автор:  Info21 [ Среда, 22 Декабрь, 2010 18:02 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Валерий Лаптев писал(а):
Поскольку существует запрет на циклические ссылки, имеем ациклический граф. Это более общая структура,чем дерево, хотя и однонаправленная.
Понятие иерархии не требует единственной вершины.

Автор:  Валерий Лаптев [ Среда, 22 Декабрь, 2010 18:40 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Alexey Veselovsky писал(а):
А, кстати, расскажите о Алголе-68. Чем он отличается от того же оберона, ады и других современных языков?
Редко встретишь человека который на нем бы писал.

Транслятор было сложно написать, поэтому язык не "пошел". Фактически два компилятора и было реальных: один в Англии вроде, а второй - в Ленинградском универе сделали. Вернее, в его ВЦ. Была книжка написана об этой реализации.
И было три книжки переводных.
# «Практическое руководство по Алголу 68», Пейган Ф. Дж. Пер. с англ. — М., Мир, 1979—240 с.
# «Пересмотренное сообщение об Алголе 68», ред. А. ван Вейнгаарден. Пер. с англ. — М., Мир, 1979—533 с.
# «Алгол 68: Методы реализации», А. Н. Балуев и др., под ред. Г. С. Цейтина — Л. изд-во Ленингр. ун-та, 1976—224 с.
# «Неформальное введение в Алгол 68», Ч. Линдси, С. ван дер Мюйлен. Пер. с англ., 1973—408 с.
собственно и все...

Автор:  Илья Ермаков [ Среда, 22 Декабрь, 2010 18:42 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

А.И. Попков работал с Алголом-68 в реализации Терехова (как его называли - "Алгол Николаевич" :) ).

Попков спрашивал у Терехова, когда мы были в Новосибирске на ПСИ-09, про их Алгол, Терехов сказал, что в среднем раз в месяц они до сих пор лицензию на него продают (видимо, буржуям, и видимо, телекоммуникационщикам). Сказал, что недавно у них один из старых клиентов сбежал на С, через два месяца вернулся на Алгол, плюясь.

Автор:  Axcel [ Среда, 22 Декабрь, 2010 18:43 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Alexey Veselovsky писал(а):
А, кстати, расскажите о Алголе-68. Чем он отличается от того же оберона, ады и других современных языков?

Редко встретишь человека который на нем бы писал.

Ну, 20 лет уже прошло ..., но если Вас интересует впечатления ...
На фоне Паскаля очень выйгрышно смотрелся синтаксис: вместо лишних begin - операторные скобки if - fi, case - esac, do - od., elif (elseif), Не нужно объявлять переменную цикла.
Из собственно алгольных фишек часто пользовался тем, что там все выдает значение, например c:= if a then b else c; Иногда удобно при задании параметров при вызове процедур.
На практике очень мешал строгий ";", например нельзя ставить перед end. Чуть где код изменишь - дурацкие ошибки (основной поток при компиляции).
Но ощущение "этакого всемогущества" было.
Но Оберон лучше, все лучшее взято, а все "этакое" убрано. Меньше соблазнов.
Кстати когда А-68 нам (комплексникам) "втюхивали" рекламировали его примерно также как сейчас Оберон, безопасный с строгим статическим контролем :) Мы прониклись.

Автор:  Пётр Кушнир [ Среда, 22 Декабрь, 2010 18:59 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

ilovb писал(а):
1. Прикладуха (Сервисы, Прокси)
2. Сервисы (Прокси, Драйверы)
3. Прокси (Драйверы) - вспомогательный, для декомпозиции сервисов
4. Драйверы(HAL)
5. HAL (интерфейс среды (Железо, DLL и т.д.))
модулей не наблюдаю тут. возможно "подсистемы"

Автор:  ilovb [ Четверг, 23 Декабрь, 2010 12:15 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Пётр Кушнир писал(а):
модулей не наблюдаю тут. возможно "подсистемы"

Вы будете в ужасе.... но... это даже не подсистемы, а уровни в модульной иерархии... :)

Автор:  Пётр Кушнир [ Четверг, 23 Декабрь, 2010 15:21 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

ilovb писал(а):
Пётр Кушнир писал(а):
модулей не наблюдаю тут. возможно "подсистемы"

Вы будете в ужасе.... но... это даже не подсистемы, а уровни в модульной иерархии... :)
я не случайно взял слово в кавычки. дабы не смешивать понятия из разных областей(слой импортирует, но в топике модули, и вообще не подсистемы)

Автор:  id_ler [ Воскресенье, 26 Декабрь, 2010 10:38 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Axcel писал(а):
Так, что сетевая организация - это от практики.
Тут другой момент...

А какой возможен интерфейс между процессами, кроме сокет?

Предположим, что в начале загружается ВВ со всеми обычными интерфейсными модулями для системных(и не только) библиотек. Это один процесс. Далее, загружается ВВ, который имеет интерфейс только с первым процессом и берет из него все необходимые процедуры.

Автор:  Axcel [ Воскресенье, 26 Декабрь, 2010 12:46 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Если Вы имеете ввиду мою фразу о "другом моменте", то речь идет о серверной установке. На мой взгляд это и есть еще один уровень иерархии. Насколько я знаю при серверной установке ББ, процесс один (для одного пользователя ). Просто обеспечивается еще видимость рабочего каталога. В моем понимании это и есть Проект. Так вот на мой взгляд не хватает возможности видеть один каталог для библиотек. Т.е. разделить стандартный ББ, библиотеки и рабочий каталог. Что то по поводу возможности этого писал Е. Темиргалеев, только не помню где.

Автор:  id_ler [ Воскресенье, 26 Декабрь, 2010 15:30 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Если нужно добавить только библиотечный каталог, тогда можно попробовать DevPacker. Но как это будет работать с dll-ками не проверял.

Автор:  Info21 [ Воскресенье, 26 Декабрь, 2010 18:04 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Axcel писал(а):
не хватает возможности видеть один каталог для библиотек. Т.е. разделить стандартный ББ, библиотеки и рабочий каталог.
Можно уточнить для статистики:

нужен еще один уровень -- чтобы воткнуть библиотеки между ББ и рабочим каталогом? и сохранить схему (если не нашли у себя, идем на уровень библиотеки; если там нет, ищем в ББ)?

Автор:  Иван Кузьмицкий [ Воскресенье, 26 Декабрь, 2010 20:42 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Info21 писал(а):
нужен еще один уровень -- чтобы воткнуть библиотеки между ББ и рабочим каталогом? и сохранить схему (если не нашли у себя, идем на уровень библиотеки; если там нет, ищем в ББ)?


Да, мне тоже кажется, что это нужно. Получается очень удобно: ядро ББ + сторонние библиотеки + свой проект.

Автор:  Axcel [ Воскресенье, 26 Декабрь, 2010 21:50 ]
Заголовок сообщения:  Re: Иерархия модулей - Возможно ли?

Info21 писал(а):
Axcel писал(а):
не хватает возможности видеть один каталог для библиотек. Т.е. разделить стандартный ББ, библиотеки и рабочий каталог.
Можно уточнить для статистики:

нужен еще один уровень -- чтобы воткнуть библиотеки между ББ и рабочим каталогом? и сохранить схему (если не нашли у себя, идем на уровень библиотеки; если там нет, ищем в ББ)?

Да где-то так.

Страница 1 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/