| Blackbox.Metasystems.ru: Материалы семинара "Языки программирования и технологии "Оберон": перспективы для индустрии и образования" |  На сайте Blackbox.Metasystems.ru размещен давно обещанный сборник материалов семинара "Языки программирования и технологии "Оберон": перспективы для индустрии и образования", прошедшего 30 марта на физико-математическом факультете Орловского государственного университета. | 
 Комментарии |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Почитал я про Оберон немного. Первое впечатление: зоопарк! Как то много всяких оберонов и все они какие то разные... Надеюсь я ошибаюсь. | 
 |
 | Комментарии: 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. | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Капитану: Какая у тебя ОС на домашнем компе, на рабочем? Какую ось ты используешь для написание емейлов, ползанья по инету, прослушивания музыки, для работы в конце концов?
 К какой оси привязана твоя повседневная компутерная жизнь?
 | 
 |
 | Комментарии: 952 
 
 
 | fedukoff, при том, что Bluebottle, к сожалению, действительно сейчас мало приспособолена для всего описанного, особенно на первом попавшемся железе, это прекрасный образец системной архитектуры и вообще пример того, как надо решать проблемы. Не хватает всего пары пустяков - драйверов да приложений... 
 Правда, я не совсем в восторге от Active Oberon. Он, конечно, на уровень выше массовых "попсовых" языков, однако ж, параллельность требующая ручного дерганья семафоров, осознания потоков и самой проблемы параллельности, ИМХО, не то, что нужно для массового программиста. Думать параллельно, к сожалению, из них могут совсем немногие.
 | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Ну вот. Что делать чтобы параллельность была прозрачна? Конечно! Еще один диалект! И все будут счастливы   Имхо, такие вещи должны закладываться в язык изначально (ну или в к.н. из его веток, но изначально)
 | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Вообщето "пример, как надо решать проблемы" это, конечно, хороший пример, но лучше все таки стараться эти проблемы не допускать...  | 
 |
 | Комментарии: 952 
 
 
 | Она и была заложена изначально в Active Oberon. И лучших реализаций надо еще поискать. Тем не менее, я считаю, что могут быть и лучшие реализации. Собственно, есть желание этим даже заниматься, да вот беда - платят сейчас больше сантехникам (о сантехниках чуть позже), а кушать почему-то хочется. 
 Кстати, может Капитан в курсе, почему же был свернут Juice, а если быть еще точнее, то технология Slim Binaries? Я бродил по сайту Михаэля Франца, что-то из его работ сейчас пересекается со Slim Binaries (SafeTSA?), но не видно прямой связи.
 | 
 |
 | Комментарии: 952 
 
 
 | fedukoff написал(а) ...Вообщето "пример, как надо решать проблемы" это, конечно, хороший пример, но лучше все таки стараться эти проблемы не допускать...
 Под проблемами в данном случае подразумеваются закладываемые в систему требования.
 | 
 |
 | Комментарии: 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. Ну что поделать.
 | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Что это за язык такой? Уж не Java ли? Java хорош, безспорно. Но и он имеет кучу всяких недочетов. Хотя из тех языков, с которыми мне приходилось сталкиваться Жаба самый-самый подходящий для решения стоящих передомной задач. Под словом "сталкиваться" я подразумевал не то чтобы книжку почитать и написать "ХЕЛЛОВОРЛД", а более-менее рабочий проект сделать...
 
 ЗЫ: Не претендую на объективность.
 | 
 |
 | Комментарии: 952 
 
 
 | captain cobalt написал(а) ...На всякий случай уточню, что "попсовые языки" - это "ручное дёргание семафоров". В то время как в Асtive Оberon в большинстве случаев обходится без этого.
 Тем не менее, в самом Active Oberon Language Report философы по прежнему обедают с семафорами на 21 странице. Это наводит на подозрения.
  | 
 |
 | Комментарии: 83 
 Зарегистрирован:  04.07.2004 21:44
 
 | Это не семафоры. Это вилки!   
 Дело в том, что семантика вилки в точности совпадает с семантикой семафора: если один философ схватил вилку, то её уже не сможет схватить другой, пока она не будет возвращена на место.
 
 Семафоры там используются лишь для сокращения программного текста и действительно вызывает некоторую неясность.
 
 Так что это не "просто" семафоры, это вилки - объекты (понятия) моделируемой предметной области. Такое совпадение семантики не совсем случайно - и семафоры и задача Обедающих Философов были придуманы Дейкстрой для вполне определённых целей.
 | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Бугага! Звучит как бред какойто! Вилки обедающих философов! Разьясни пожалуйста, что это значит! Не хочу раньше времени в языке разочаровываться.... 
 | 
 |
 | Комментарии: 952 
 
 
 | ОК, возможно так. Там, правда, еще и опечатка есть в исходнике.  Но это тоже детали. Когда ж будет порт BlackBox под GNU/Linux? Что ли пойти в ИЯФ РАН работать...  | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | ИЯФ РАН? Это что контора сантехников? | 
 |
 | Комментарии: 83 
 Зарегистрирован:  04.07.2004 21:44
 
 | fedukoff написал(а) ...Задача Обедающих Философов - это небольшая модель, придуманная Дейкстрой для демонстрации некоторых проблем параллелизма и способов их решения.Бугага! Звучит как бред какойто! Вилки обедающих философов! Разьясни пожалуйста, что это значит! Не хочу раньше времени в языке разочаровываться....
 
 Придумана задолго до появления Оберонов.
   
 Формулировка задачи есть почти в любом учебнике по операционным системам. Также её очень просто нагуглить.
 
 Несмотря на забавную формулировку, задача далеко не так проста.
 
 Но для Асtive Оberon никаких проблем. Полное решение занимает десяток-другой строк кода.
 | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Сорри... Как то с детства не силен в классике... ЧИЧАЗПОЧИТАЮ | 
 |
 | Комментарии: 952 
 
 
 | ИЯФ РАН - Институт Ядерной Физики Российской Академии Наук.  Если я правильно понимаю, то это та же организация, что и Институт ядерных исследований. Или родственная, но это не так важно, как важно то, что там программируют на Обероне. Там все-таки не носки штопать, надо бы считать правильно. И много. И быстро. | 
 |
 | Комментарии: 40 
 Зарегистрирован:  05.11.2005 00:07
 
 | Да уж, это наверное интересно , осцилляции нейтрино обсчитывать в реальном времени.... блин. Где мои 17 лет? | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Значит чего я скажу про философов. Не знаю, какую вам там в учебных заведениях лапшу вешуют, но тут самая главная задача, как эти философы между собой договариваться будут в конфликтных ситуациях (когда все хотят жрать). Я бы сделал очень просто: далбы каждому философу некое свойство - "сила голода". Это свойство влияло бы на выбор, какому из филосовов отдавать предпочтение в конфликтных ситуациях. А если оно одинаковое у всех, то тогда случайным образом (или первого попавшегося). Это на ура решило бы ситуацию, когда двое морят голодом одного, сидящего между ними. А на случай, когда все проголодались одновременно и одинаково, то выбирается первый попавшийся как приоритетный. | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | К тому же... Почему это в обероне семафор называется вилкой? | 
 |
 | Комментарии: 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
 
 Я в трех соснах запутался или во втором случае ошибка?
 | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 |  написал(а) ...fedukoff, ты только что усложнил модель философов и не создал решение, а изменил постановку задачи.  Хотя, возможно, и приблизил ее к условной реальности. В задаче все одинаково голодны, когда голодны. Но иногда они думают.
 
 Я почитал различные решения этой задачки в инете... Там у некоторых философы еще до кучи гуляли, а в столовую пускали максимум 4 штуки, чтобы от конфликтов избавиться, для чего ввели понятие "слуга" который закрывал дверь и не пускал одного философа, если в столовой уже четыре... А ты усложнил...
  | 
 |
 | Комментарии: 558 
 
 
 | помоему в оригинале философов было пять.   Или это у Танненбаума пять.
  | 
 |
 | Комментарии: 558 
 
 
 | Кстати я тоже думаю, что усложнять не нужно, достаточно ввести понятие уровня голодности, или времени ожидания вилки, что почти то же самое... и все будет честно.  | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Гыгы... Ты говоришь, подтверждая слова Романа, что усложнять не нужно, но вводишь "уровень голодности" (пару постов выше я назвал "силой голода"), что Роман назвал усложнением... | 
 |
 | Комментарии: 952 
 
 
 | Не пускать философа - нормальный ход, приоритетов от этого не появляется. А вот с силой голода появляется приоритетность и от этого все усложняется. Впрочем, тут есть момент того, откуда она берется - либо она является свойством философа (когда он орет "жрать хочу"), либо же это пытается вычислить сама наша система, дабы предотвратить длительное голодание отдельных особей. Во втором случае в постановке появляется некое требование о "справедливости" распределения вилок-спагетти. 
 Решение есть у Таненбаума, действительно, на 150 и далее страницах.
 
 Решение из Active Oberon, кстати, корректное. Ну, кто б сомневался... Фишка в порядке взятия вилок, все берут сначала левую, а потом правую, а один сначала правую, а потом левую:
 
 IF id # NofPhilo-1 THEN
 first := id; second := (id+1)
 ELSE
 first := 0; second := NofPhilo-1
 END
 
 Сосны-то аж три штуки, надо бы и поплутать.
  | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Если честно, я предполагал, что не важно, правша или левша философ... Они даже могут менять свою полярность переодически. Они могут насыщаться различное время, они могут отдыхать не обязательно строго определенное время... В общем, нам, их, философов не понять и не систематизировать. Но, мы можем предположить, что они гуманные существа, и если один занял вилку, а второй попросил его освободить, то силой они этот вопрос решать не станут.
 А "сила голода" это свойство именно философа, ибо макаронам  пофиг, на сколько голодная тварь их будет поедать.
 Мне кажется, "ОСЛОЖНЯТЬ" это как раз вводить новые объекты (слуги, двери) и действия с ними связанные, что влечет за собой реакцию на эти действия у связаных объектов. А это уже цепная реакция, что чревато.
 Добавление одного свойства и одного действия объекту "философ", тянут за собой гораздо меньше кода, а следовательно ошибок и времени...
 | 
 |
 | Комментарии: 558 
 
 
 | Можно даже упрощать! А нехай все едять одной вилкой!
   пусть медленнее, зато проблем нету.
   к тому же есть чужой вилкой - негегеенично.
  | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | НА самом деле если расставить все на свои места, то нужно рядом с каждой вилкой по одной ложке положить. Дело в том, что, на сколько я знаю, спагетти едят именно вилкой и ложкой, а не двумя вилками... Так что задача изначально не верная   Ну и проблема тогда сама собой отпадает....
 Правда, мне кажется, что таки их отпускать погулять переодически надо, а то от такой диеты они вскоре за столом не помястятся.
 | 
 |
 | Комментарии: 952 
 
 
 | fedukoff написал(а) ...Если честно, я предполагал, что не важно, правша или левша философ...
 А оно и так все равно, ведь нужны обе вилки. Просто если все сначала схватят левую вилку, то далеко они не продвинутся... А так один пытается овладеть правой. И все работает.
  | 
 |
 | Комментарии: 178 
 Зарегистрирован:  24.03.2005 17:32
 
 | Было бы большой ошибкой расчитывать что именно так и должно происходить (все берут левую, а один правую). Ведь всем известно о цикле жизни ПО. И вдруг, в один момент окажется так что по какой то логике все должны брать в первую очередь только левую вилку. Так что лучше уж стразу заложить им способноть выходить из конфликтных ситуаций. | 
 |
 | Комментарии: 2 
 Зарегистрирован:  30.05.2005 10:28
 
 | Тоже мнение http://www.delphikingdom.com/asp/talktopic.asp?ID=339
 (N 703)
 | 
 
 Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь  
 |