Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  21:37[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 4286—4277 | 4276—4267 | 4266—4257 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 199


№ 4276   22-04-2007 04:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4274« (ASU)
___________________________

Ответ на »сообщение 4252« (MS)
___________________________
Список экспорта это контракт.
Контракт с кем? Контракт (договор) предусматривает более одной стороны...

Хорошо :-) Не контракт. Бланк контракта, который модуль затем подписывает с каждым, кто хочет его использовать :-)


№ 4275   22-04-2007 04:44 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4257« (AVC)
___________________________

Ответ на »сообщение 4241« (Geniepro)
___________________________
Я имею в виду старую работу Роу и Шиперски о легковесном параметрическом полиморфизме для Оберона (примерно 1997).

Насчет дженериков обсуждали много раз уже...
Легковесный полиморфизм не очень интересен, так как не шибко шире, чем обычное ООП, к тому же в том же КП с использованием ANYREC и метаинформации можно наворотить аналогичного...
Полноценный параметрический полиморфизм полезен как раз для самых ценных штук - обобщенных алгоритмов, контейнеров и т.п., где он дает и обобщенность, и сохраняет высокое быстродействие (а в этом случае я бы не стал забывать про быстродействие. Как только появляется общая библиотека, ее начинают использовать все и во всех местах кода - и при этом даже 5% ускорения на отдельно взятой функции весьма значимы).

А полноценная параметризация в настоящий момент технически не вяжется с динамической модульностью. И "вязаться" она начнет только после одного события - перехода какой-либо из магистральных реализаций Оберонов (Ящика али Бутылки) на промежуточное представление Франца и JIT. Но пока до этого руки не доходят ни у них, ни у нас...
Кстати, к радости Сергея Перовского отмечу, что после введения JIT спектр изменений, допустимых без перекомпиляции, весьма расширится. В частности, можно будет ввести в базовый тип дополнительные методы, не нарушая работу клиентов...


№ 4274   22-04-2007 04:39 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4252« (MS)
___________________________
Список экспорта это контракт.
Контракт с кем? Контракт (договор) предусматривает более одной стороны...

Ну ... вобщемнто .... вы описали модули Оберона ...
:)


№ 4273   22-04-2007 04:33 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4270« (Сергей Перовский)
___________________________

Вот я и задумался о применимости модульного подхода с прямым именованием одного модуля из другого.
С одной стороны модульность хороша именно для систем, там она проявляет свои лучшие качества. С другой стороны невозможность заменить модуль на другой (ПО ДРУГОМУ НАЗВАННЫЙ) подрывает идеологию систем возвращая нас к монолитным программам.


Модульный подход, реализованный в языке Оберон/КП, предсматривает обращение из модуля к интерфейсу (давайте это где-нибудь напишем большими буквами и повесим плакат). Реализации Оберона/КП (Oberon System, BlackBox) наглядно демонстрируют, что добиться динамической подмены реализации под заданный и зафиксированный интерфейс, это не только не проблема -- это основа упомянутых расширяемых систем. Но для этого нет надобности вводить динамику соответствия "интерфейс-реализация" на уровне языка. Достаточно их просто разделить, что и сделано в языке (DEFINITION -- отдельно, MODULE -- отдельно).

Когда есть интерфейс и реализация, возможны четыре варианта отношений:
1. один-к-одному (один интерфейс -- одна реализация)
2. один-ко-многим
3. многие-к-одному
4. многие-ко-многим

Вирт (Модула-2, Оберон) пошел по первому пути. Этот путь позволяет называть интерфейс так же, как и реализацию (одинаковым именем), но не запрещает подменять реализации в динамике выполнения.

По-другому названный модуль -- это следствие двух вещей:
1. модуль создавался без учета интерфейса (т.е. случайно подошел) -- криминал в чистом виде (интерфейс первичен)
2. разработчику лень использовать средства управления версиями и он для имитации этого применяет файловую систему или даже (еще хуже!) имена модулей в языке -- это вопрос желания/хотения.



№ 4272   22-04-2007 04:32 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4251« (MS)
___________________________
Реализацию данной схемы на ассемблере я вижу следующим образом:
1) реализуем на ассемблере конструкции, соответствующие операторам цикла, присваивания, проверки условия, создаём механизмы рамещения в памяти переменных различных типов

Эти «конструкции» давно есть в практически любом ассемблере для x86, например, (цикл – loop, присваивание – mov, проверка (сравнение) – cmp).

2) создаём механизмы объединения операторов и ограничения области видимости переменных а также обеспечивающий интерфейс с другими элементами. Назавём это ... ну... например процедуры.
Угу... "proc"... называется в ассемблере.

3) создаём механизм, позволяющий объеденить несколько процедур, и обеспечивающий жесткий контроль общения своих внутренних процедур с различными внешними элементами. Скажем это будет модуль.
Объединение процедур – библиотека, «библиотекари», как правило, входят в поставку ассемблера (но, не всегда).

4) создаём элемент, позволяющий на базе модулей дингамечески формировать системы. Назавём его системобразующим элементом.
Элементы 1-3 реализованы в Обероне и их достаточно (ИМХО) для реализации 4.

Элементы 1-3 реализованы в ассемблерах и с их помощью можно реализовать 4. :)

СЭ берётся не из воздуха а строится на базе ранее существующих элементов.
Плюс некие доплнительные возможности.

СЭ «берется» из элементов или элементы «берутся» из СЭ зависит от того, какого метода проектирования (нисходящий/восходящий) Вы придерживаетесь.

Важнейшим требованием становится наличие поддержки этих новых возможностей средой, в которой создаётся/функционирует система.
Я предложил некий механизм создания систем, основанный на возможностях Оберона.
Если он не вызывает у Вас возражений, то тогда следует вывод, что Оберон обладает средствами для разработки систем.

Да, как видите, и ассемблер ему в этом ничуть не уступает... следовательно, и ассемблер обладает средствами разработки систем... :)
Ну, и... что далее... :)


№ 4271   22-04-2007 04:22 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4250« (AVC)
___________________________
Однако, отдельные вопросы (разбор модульности и т.п.) неплохо бы оставить здесь, т.к. они достаточно близки обероновской тематике.
Вроде бы уже все разобрали... «по косточкам»... :)

Как бы то ни было, IMHO, вырисовываются два дефекта обероновской модульной структуры:
IMHO... дефект всего один... экспорт-импорт вместо продуманных интерфейсов...

1) пространство имен модулей -- плоское (всего один уровень); в ББ с этим борются с помощью специального соглашения об именовании модулей, но, возможно, требуется лучшее решение;
Очень знакомая картина... Сначала создаем проблемы, потом с ними боремся... Вместо того, чтобы содержать дороги в порядке, ремонтируем автомобили... :)

2) все модули имеют одинаковый статус, в т.ч. модули "для внутреннего пользования" какой-нибудь подсистемы (см. »сообщение 4244«); возможно, неплохо бы разделить модули на public и private :) и ввести особый вид экспорта -- только в рамках подсистемы-кластера (отдаленный аналог protected в Си++).
Не совсем так... (если желаете, обсудим это в отдельной теме).


№ 4270   22-04-2007 04:20 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4266« (Руслан Богатырев)
___________________________
>>>Для этого бедному крестьянину стоит призадуматься о применимости обоих подходов, выявляя контекст применения инструмента
Вот я и задумался о применимости модульного подхода с прямым именованием одного модуля из другого.
С одной стороны модульность хороша именно для систем, там она проявляет свои лучшие качества. С другой стороны невозможность заменить модуль на другой (ПО ДРУГОМУ НАЗВАННЫЙ) подрывает идеологию систем возвращая нас к монолитным программам.
Раз речь о системах, я и сравниваю с существующими системами. Когда я вызываю в своей программе кодек XviD, я понятия не имею (и не хочу), кодек чьей разработки и с каким названием будет подключен, это вопрос администратора системы. Я обращаюсь по имени интерфейса, а не по имени модуля. Поскольку это принципиально разные сущности, требовать совпадения их имен странно - это запутывает программиста в сложных случаях (в простых экономит некоторое время на написание).


№ 4269   22-04-2007 04:17 Ответить на это сообщение Ответить на это сообщение с цитированием
сообщение от модератора

Ответ на »сообщение 4249« (ASU)
___________________________

Зато я в восторге от модератора!.. От столь беспристрастной пристрастности... :)))

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

Значит, так: эта ветка не предназначена для обсуждений действий модератора, поэтому любые последующие сообщения, в которых это обсуждение будет присутствовать хотя бы вскользь, будут удаляться. Если вас не устраивют действия модератора, вы вольны высказать всё, что считаете нужным, здесь: »тема на БП №70«, а в данной ветке это - злостный оффтопик. И если не хотите переворошить архивы и убедиться в этом лично, то поверьте мне на слово - тут нет никакой пристрастности, я всех с подобными вопросами отправляю туда же.

Только прежде чем писать там что-то, рекомендую поразмышлять вот о чём: практически на любом другом форуме за один-едиснтвенный выпад против модератора вы были бы жестоко забанены, независимо от справедливости претензий. А здесь - ничего, пишете, ваши сообщения не удаляются (за исключением одного, в котором вы сделали совсем уж недопустимый личный выпад в адрес Руслана Богатырёва). Есть повод задуматься, не правда ли? Только ещё раз напоминаю: все результаты размышлений на эту тему писать только здесь: »тема на БП №70«


№ 4268   22-04-2007 04:17 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4265« (Сергей Перовский)
___________________________

Процедура реализует алгоритм ввода символа.
А система поддерживает ввод с клавиатуры.


Другими словами, программная система предусматривает взаимодействие (операционных) элементов, а программа -- исполнение предписаний (не обязательно императивных). Одну и ту же программную реализацию можно рассматривать и как программу, и как систему: зависит от взгляда (уровня рассматриваемых сущностей и отношений между ними). Т.е. зависит от уровня абстракции. Конкретика же программной системы (подчеркиваю, программной) -- это уровень машинных инструкций (вне зависимости от того универсальный процессор, или специализированный). Пресловутые биты и машинные слова.


№ 4267   22-04-2007 04:11 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4262« (Сергей Перовский)
___________________________

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

А вот мне, в принципе, нравится. :)
Простой критерий: алгоритм должен завершаться за конечное число шагов, в основе (реактивной) системы -- бесконечный цикл.
Наверное, эта мысль неточна во многих отношениях, но она проста и может быть полезной "провокацией".
 AVC


<<<... | 4286—4277 | 4276—4267 | 4266—4257 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 199


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования