> man operating_systems
Blackbox.Metasystems.ru: Материалы семинара "Языки программирования и технологии "Оберон": перспективы для индустрии и образования"
На сайте Blackbox.Metasystems.ru размещен давно обещанный сборник материалов семинара "Языки программирования и технологии "Оберон": перспективы для индустрии и образования", прошедшего 30 марта на физико-математическом факультете Орловского государственного университета.
Roman I Khimov  в  Вторник, 25 Апрель 2006, 10:48  |   Комментарии: 63  |  для печати

Комментарии
fedukoff |25.04.2006 12:23
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Почитал я про Оберон немного. Первое впечатление: зоопарк! Как то много всяких оберонов и все они какие то разные... Надеюсь я ошибаюсь.

captain cobalt |25.04.2006 18:24
Комментарии: 83

Зарегистрирован: 04.07.2004 21:44

А каков зоопарк среди языков c фигурными скобками! Одних только названий языков не перечесть.

И для каждого "языка" по нескольку широко используемых компиляторов, обрабатывающих различные диалекты этого языка и библиотек, привязанных к одной платформе. На уровне "hello world" они ещё совместимы, но каждый сколь-нибудь крупный проект привязан к одному компилятору. Например, Linux - GCC, MFC - Visual, и т. д. Не существует даже реализации STL, которая компилировалась бы на всех С++.

Можно утверждать, что все языки семейства Оберон целиком по объёму менше, чем различия между диалектами, скажем С++. Их пожно все выучить за день. Никаких проблем.

Попробуем немного систематизировать зоопарк.

Названия основных языков семейства Оберон:
-- Оберон
-- Оберон-2
-- Асtive Оberon
-- Соmponent Раscal
-- Zоnnon

Названия некоторых программных продуктов:
-- ВlackBox - это среда разработки на языке Соmponent Раscal под Windows
-- Bluebottle - самая лучшая в мире операционная система на Асtive Оberon.

fedukoff |26.04.2006 11:15
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Капитану:
Какая у тебя ОС на домашнем компе, на рабочем? Какую ось ты используешь для написание емейлов, ползанья по инету, прослушивания музыки, для работы в конце концов?
К какой оси привязана твоя повседневная компутерная жизнь?

Roman I Khimov |26.04.2006 11:35
Комментарии: 952


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

Правда, я не совсем в восторге от Active Oberon. Он, конечно, на уровень выше массовых "попсовых" языков, однако ж, параллельность требующая ручного дерганья семафоров, осознания потоков и самой проблемы параллельности, ИМХО, не то, что нужно для массового программиста. Думать параллельно, к сожалению, из них могут совсем немногие.

fedukoff |26.04.2006 11:38
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Ну вот. Что делать чтобы параллельность была прозрачна? Конечно! Еще один диалект! И все будут счастливы
Имхо, такие вещи должны закладываться в язык изначально (ну или в к.н. из его веток, но изначально)

fedukoff |26.04.2006 11:42
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

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

Roman I Khimov |26.04.2006 11:52
Комментарии: 952


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

Кстати, может Капитан в курсе, почему же был свернут Juice, а если быть еще точнее, то технология Slim Binaries? Я бродил по сайту Михаэля Франца, что-то из его работ сейчас пересекается со Slim Binaries (SafeTSA?), но не видно прямой связи.

Roman I Khimov |26.04.2006 11:54
Комментарии: 952


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

Под проблемами в данном случае подразумеваются закладываемые в систему требования.

captain cobalt |26.04.2006 13:48
Комментарии: 83

Зарегистрирован: 04.07.2004 21:44

fedukoff написал(а) ...
Какая у тебя ОС на домашнем компе, на рабочем? Какую ось ты используешь для написание емейлов, ползанья по инету, прослушивания музыки, для работы в конце концов?
К какой оси привязана твоя повседневная компутерная жизнь?
Любая, оказавшаяся под рукой.
Чаще всего это Windows98.

Впрочем, всё перечисленное имеет лишь отдалённое отношение к понятию "самая лучшая в мире ОС".
Roman I Khimov написал(а) ...
Правда, я не совсем в восторге от Active Oberon. Он, конечно, на уровень выше массовых "попсовых" языков, однако ж, параллельность требующая ручного дерганья семафоров, осознания потоков и самой проблемы параллельности, ИМХО, не то, что нужно для массового программиста. Думать параллельно, к сожалению, из них могут совсем немногие.
Тут непонятно, где сопоставление, а где противопоставление.

На всякий случай уточню, что "попсовые языки" - это "ручное дёргание семафоров". В то время как в Асtive Оberon в большинстве случаев обходится без этого.
fedukoff написал(а) ...
Ну вот. Что делать чтобы параллельность была прозрачна? Конечно! Еще один диалект! И все будут счастливы
Параллельность не может быть абсолютно прозрачна. Она должно быть удобна для использования. Вот в Асtive Оberon она удобна для использования.
fedukoff написал(а) ...
Имхо, такие вещи должны закладываться в язык изначально (ну или в к.н. из его веток, но изначально)
Что это за язык такой? Уж не Java ли?
Roman I Khimov написал(а) ...
Кстати, может Капитан в курсе, почему же был свернут Juice, а если быть еще точнее, то технология Slim Binaries? Я бродил по сайту Михаэля Франца, что-то из его работ сейчас пересекается со Slim Binaries (SafeTSA?), но не видно прямой связи.
Потому что всё это лишь забавные игрушки.

SDЕ, технически на голову превосходящая всякие там "виртуальные стековые машины" - это лишь забавная игрушка. Это мнение самого Франца.

Это с технической точки зрения. А из шкурных интересов Франц предпочитает работать с Java. Ну что поделать.

fedukoff |26.04.2006 14:12
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Что это за язык такой? Уж не Java ли?
Java хорош, безспорно. Но и он имеет кучу всяких недочетов. Хотя из тех языков, с которыми мне приходилось сталкиваться Жаба самый-самый подходящий для решения стоящих передомной задач. Под словом "сталкиваться" я подразумевал не то чтобы книжку почитать и написать "ХЕЛЛОВОРЛД", а более-менее рабочий проект сделать...

ЗЫ: Не претендую на объективность.

Roman I Khimov |26.04.2006 15:20
Комментарии: 952


captain cobalt написал(а) ...
На всякий случай уточню, что "попсовые языки" - это "ручное дёргание семафоров". В то время как в Асtive Оberon в большинстве случаев обходится без этого.

Тем не менее, в самом Active Oberon Language Report философы по прежнему обедают с семафорами на 21 странице. Это наводит на подозрения.

captain cobalt |26.04.2006 16:29
Комментарии: 83

Зарегистрирован: 04.07.2004 21:44

Это не семафоры. Это вилки!

Дело в том, что семантика вилки в точности совпадает с семантикой семафора: если один философ схватил вилку, то её уже не сможет схватить другой, пока она не будет возвращена на место.

Семафоры там используются лишь для сокращения программного текста и действительно вызывает некоторую неясность.

Так что это не "просто" семафоры, это вилки - объекты (понятия) моделируемой предметной области. Такое совпадение семантики не совсем случайно - и семафоры и задача Обедающих Философов были придуманы Дейкстрой для вполне определённых целей.

fedukoff |26.04.2006 16:37
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

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

Roman I Khimov |26.04.2006 16:45
Комментарии: 952


ОК, возможно так. Там, правда, еще и опечатка есть в исходнике. Но это тоже детали. Когда ж будет порт BlackBox под GNU/Linux? Что ли пойти в ИЯФ РАН работать...

fedukoff |26.04.2006 17:21
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

ИЯФ РАН? Это что контора сантехников?

captain cobalt |26.04.2006 18:18
Комментарии: 83

Зарегистрирован: 04.07.2004 21:44

fedukoff написал(а) ...
Бугага! Звучит как бред какойто! Вилки обедающих философов! Разьясни пожалуйста, что это значит! Не хочу раньше времени в языке разочаровываться....
Задача Обедающих Философов - это небольшая модель, придуманная Дейкстрой для демонстрации некоторых проблем параллелизма и способов их решения.

Придумана задолго до появления Оберонов.

Формулировка задачи есть почти в любом учебнике по операционным системам. Также её очень просто нагуглить.

Несмотря на забавную формулировку, задача далеко не так проста.

Но для Асtive Оberon никаких проблем. Полное решение занимает десяток-другой строк кода.

fedukoff |26.04.2006 19:06
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Сорри... Как то с детства не силен в классике... ЧИЧАЗПОЧИТАЮ

Roman I Khimov |26.04.2006 19:15
Комментарии: 952


ИЯФ РАН - Институт Ядерной Физики Российской Академии Наук. Если я правильно понимаю, то это та же организация, что и Институт ядерных исследований. Или родственная, но это не так важно, как важно то, что там программируют на Обероне. Там все-таки не носки штопать, надо бы считать правильно. И много. И быстро.

Thistle |26.04.2006 20:39
Комментарии: 40

Зарегистрирован: 05.11.2005 00:07

Да уж, это наверное интересно , осцилляции нейтрино обсчитывать в реальном времени.... блин. Где мои 17 лет?

fedukoff |26.04.2006 23:35
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

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

fedukoff |26.04.2006 23:37
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

К тому же... Почему это в обероне семафор называется вилкой?

Roman I Khimov |27.04.2006 00:14
Комментарии: 952


fedukoff, ты только что усложнил модель философов и не создал решение, а изменил постановку задачи. Хотя, возможно, и приблизил ее к условной реальности. В задаче все одинаково голодны, когда голодны. Но иногда они думают.

Насчет вилок и семафоров - не называется в Обероне семафор вилкой. Просто в Active Oberon Language Report есть пример решения (BTW, HTML версия тоже с опечаткой) той самой задачи на Active Oberon. И вилки моделируются очень просто - как семафоры (хотя можно и мьютексы было бы взять ). Все остальное пояснил Капитан.

Почему-то чешется попробовать поработать с Active Oberon на чем-то более-менее реальном. Это может быть весна?

Roman I Khimov |27.04.2006 00:48
Комментарии: 952


Хм, а как это вот с таким решением связывать?

Там есть такое:
PROCEDURE TakeForks (i: INTEGER);
BEGIN {EXCLUSIVE} Forks[i].Take; Forks[(i+1)MOD N].Take
END TakeForks;

И это понятно (ибо EXCLUSIVE). В отличие от
LOOP
.... Think....
fork[first].P; fork[second].P;
.... Eat ....
fork[first.V; fork[second].V
END

Я в трех соснах запутался или во втором случае ошибка?

fedukoff |27.04.2006 10:25
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

написал(а) ...
fedukoff, ты только что усложнил модель философов и не создал решение, а изменил постановку задачи. Хотя, возможно, и приблизил ее к условной реальности. В задаче все одинаково голодны, когда голодны. Но иногда они думают.


Я почитал различные решения этой задачки в инете... Там у некоторых философы еще до кучи гуляли, а в столовую пускали максимум 4 штуки, чтобы от конфликтов избавиться, для чего ввели понятие "слуга" который закрывал дверь и не пускал одного философа, если в столовой уже четыре... А ты усложнил...

Dron |27.04.2006 11:28
Комментарии: 558


помоему в оригинале философов было пять.
Или это у Танненбаума пять.

Dron |27.04.2006 11:31
Комментарии: 558


Кстати я тоже думаю, что усложнять не нужно, достаточно ввести понятие уровня голодности, или времени ожидания вилки, что почти то же самое... и все будет честно.

fedukoff |27.04.2006 11:35
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Гыгы... Ты говоришь, подтверждая слова Романа, что усложнять не нужно, но вводишь "уровень голодности" (пару постов выше я назвал "силой голода"), что Роман назвал усложнением...

Roman I Khimov |27.04.2006 12:12
Комментарии: 952


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

Решение есть у Таненбаума, действительно, на 150 и далее страницах.

Решение из Active Oberon, кстати, корректное. Ну, кто б сомневался... Фишка в порядке взятия вилок, все берут сначала левую, а потом правую, а один сначала правую, а потом левую:

IF id # NofPhilo-1 THEN
first := id; second := (id+1)
ELSE
first := 0; second := NofPhilo-1
END

Сосны-то аж три штуки, надо бы и поплутать.

fedukoff |27.04.2006 12:23
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

Если честно, я предполагал, что не важно, правша или левша философ... Они даже могут менять свою полярность переодически. Они могут насыщаться различное время, они могут отдыхать не обязательно строго определенное время... В общем, нам, их, философов не понять и не систематизировать.
Но, мы можем предположить, что они гуманные существа, и если один занял вилку, а второй попросил его освободить, то силой они этот вопрос решать не станут.
А "сила голода" это свойство именно философа, ибо макаронам пофиг, на сколько голодная тварь их будет поедать.
Мне кажется, "ОСЛОЖНЯТЬ" это как раз вводить новые объекты (слуги, двери) и действия с ними связанные, что влечет за собой реакцию на эти действия у связаных объектов. А это уже цепная реакция, что чревато.
Добавление одного свойства и одного действия объекту "философ", тянут за собой гораздо меньше кода, а следовательно ошибок и времени...

Dron |27.04.2006 13:12
Комментарии: 558


Можно даже упрощать!
А нехай все едять одной вилкой!
пусть медленнее, зато проблем нету.
к тому же есть чужой вилкой - негегеенично.

fedukoff |27.04.2006 13:15
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

НА самом деле если расставить все на свои места, то нужно рядом с каждой вилкой по одной ложке положить. Дело в том, что, на сколько я знаю, спагетти едят именно вилкой и ложкой, а не двумя вилками... Так что задача изначально не верная
Ну и проблема тогда сама собой отпадает....
Правда, мне кажется, что таки их отпускать погулять переодически надо, а то от такой диеты они вскоре за столом не помястятся.

Roman I Khimov |27.04.2006 13:51
Комментарии: 952


fedukoff написал(а) ...
Если честно, я предполагал, что не важно, правша или левша философ...

А оно и так все равно, ведь нужны обе вилки. Просто если все сначала схватят левую вилку, то далеко они не продвинутся... А так один пытается овладеть правой. И все работает.

fedukoff |27.04.2006 15:04
Комментарии: 178

Зарегистрирован: 24.03.2005 17:32

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

pumba103 |03.05.2006 11:28
Комментарии: 2

Зарегистрирован: 30.05.2005 10:28

Тоже мнение
http://www.delphikingdom.com/asp/talktopic.asp?ID=339
(N 703)



Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.