Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 2196 23-01-2007 15:22 | |
Ответ на »сообщение 2190« (Jack Of Shadows)
___________________________
>>Он мог бы быть и чисто императивным и объектным, если без этого нельзя обойтись.
А вот это неверно. Возможность легкой работы с процессами дается не просто так, а отказом от присваивания. Нет присваивания, нет проблем с синхронизацией, дедлоками, race conditions.
Если бы это можно было сделать лехко и просто на обычно ОО языке, давно бы уже сподобились. Не первый десяток лет такие задачи решаются. Не от хорошей жизни в Erricson выбрали модель чистого ФЯ.
Опять же, особой связи с ФП здесь нет (ИМХО).
Вот простой "императивный" пример с буфером.
Один поток пишет в буфер, затем изменяет значение переменной in.
Другой поток читает, затем меняет значение переменной out.
Никаких особых примитивов синхронизации не требуется.
С другой стороны, независимость разных "функциональных" потоков друг от друга относительна.
Например, у них есть общий ресурс "память".
№ 2195 23-01-2007 15:18 | |
Ответ на »сообщение 2193« (AVC)
___________________________
Ответ на »сообщение 2187« (Jack Of Shadows)
___________________________
Оберонщикам (хотя бы в душе, как я :) ) кажется существенной деталью, можно ли все ПО написать на данном языке. (Не обязательно так делать, но возможность существенна.)
Например, ББ целиком, включая сборщик мусора, написан на КП.
Это как бы показатель качества языка.
Продолжение виртовской традиции писать компиляторы Паскаля, Модулы и Оберона на них же самих.
Но, справедливости ради, надо сказать, что ББ не в "вакууме" работает. Да и операется на многие виндузовые "фичи" (не знаю, как в варианте для Линуха). "Снизу доверху" операционки были написаны на предыдущих версиях этого семейства языков (по-моему, кроме начального загрузчика)...
№ 2194 23-01-2007 15:15 | |
№ 2193 23-01-2007 14:57 | |
Ответ на »сообщение 2187« (Jack Of Shadows)
___________________________
Оберонщикам (хотя бы в душ е, как я :) ) кажется существенной деталью, можно ли все ПО написать на данном языке. (Не обязательно так делать, но возможность существенна.)
Например, ББ целиком, включая сборщик мусора, написан на КП.
Это как бы показатель качества языка.
Продолжение виртовской традиции писать компиляторы Паскаля, Модулы и Оберона на них же самих.
№ 2192 23-01-2007 14:53 | |
Ответ на »сообщение 2166« (Сергей Губанов)
___________________________
>>>- КАКИМ образом это имеет к теме дискуссии (о состояниях)?
Вы же усомнились в существовании состояний. Вот Вам и сообщили, что нет причин сомневаться в том, что состояния как отдельного компьютера так и всего физического мира реально существуют.
Что касается «всего физического мира», я не просто усомнился – я утверждаю, что их в нём просто не существует. Даже не просто «не существует» (как чего-то «постоянного» или «не изменяющегося»), а – НЕ МОЖЕТ СУЩЕСТВОВАТЬ. То, что мы называем «состояниями» - суть игра и условности, принимаемые нашим мышлением в ходе построения моделей. Случай с компьютером – ярчайшее тому подтверждение. Ну ладно, штащ21 – может, в силу возраста или переутомления, нести глупости, подобные высказанным им, но от вас - не ожидал... Или это - «корпоративная солидарность»? :о)
Случай с системами управления – не совсем очевидный и не может легко приниматься за иллюстрацию «состоянщиками». Конкретно – случай управления ракетами. Там «многошаговость» алгоритма управления – плата за неполное знание всех физических процессов в атмосфере (модель атмосферы) + в камере сгорания самой ракеты (преобразование внутренней энергии продуктов в кинетическую в процессе «работы» сопла) + «не совсем точный» закон управления сам по себе + разного рода погрешности, накапливающиеся в ходе реализации последнего исполнительными механизмами + дань традиции со времён Ньютона и начала дифуров. Вполне возможно сделать и «безшаговый» алгоритм управления – на аналоговой ВМ – «чисто функциональное» выражение «алгоритма управления»: на входе будут постоянно действующие аналоговые величины от соответствующих датчиков (надо признать СИЛЬНО зашумлённые и с низкой определённостью), а на выходе – «постоянно действующие» значения напряжений для (например) рулевых машинок и дросселя двигателя... Иллюстрацией качества работы такой системы наведения, для меня лично, часто служили кадры из учебных фильмов по использованию ПТУР-ов и ПРЗК ранних выпусков: там система управления обеспечивала «встречу» с целью по довольно «раболтанной» траектории... Но какова бы ни была «разболтанность», на тот момент времени, она была неизмеримо лучше первых цифровых «пошаговых» алгоритмов, работавших с «состояниями» из «совокупности значений набора переменных». Потом, когда dt периода управления постепенно минимизировали, и цифровые системы стали давать удовлетворительные результаты.
Ещё раз повторюсь: в природе «состояний» нет, они - в наших моделях, описывающих её. Для того, что бы вы воспринимали компьютер, как «сущность, данную в ощущениях» :о), да ещё и подпадающую под ваше восприятие о нём, как о чём-то «имеющим состояния», по крайней мере два поколения инженеров математиков, материаловедов и электронщиков мозги себе «скрутили»... Тока, шо б ваше восприятие согласовывалось с той моделью, которую вам преподали в вузе на курсе программирования... :о)
Более того, тому кто отрицает существование состояний компьютера прямая дорога к психиатру.
А тому, кто строит на родном языке фразы, приводящие к неоднозначному восприятию закладываемого в высказывания смысла, – сначала - в детский сад.
№ 2191 23-01-2007 14:53 | |
Ответ на »сообщение 2187« (Jack Of Shadows)
___________________________
Jack, в том и дело, что Вы находитесь в ветке по Оберонам. Если Вы не знали - то для виртовских языков закон - рантайм и компилятор пишутся на самом языке. Это одно из доказательств их мощи для системного программирования - возможность выполнить эффективную раскрутку.
Если некий язык не может похвастать тем же, то придется признать, что он не столь же эффективен для системного программирования.
Да, насколько я понимаю, софт для телефонных станций характеризуется некоторыми специфическими требованиями - однородность операций при массовом параллелизме и т.п., за счет чего охотно верю, что Ерланг оказался столь успешен.
№ 2190 23-01-2007 14:52 | |
Ответ на »сообщение 2188« (AVC)
___________________________
Все это не имеет никакого отношения к "преимуществу ФЯ в распараллеливании программ"
Простите а я и не упоминал Ерланг ни где в контексте преимущества ФЯ при распараллеливании.
Он мог бы быть и чисто императивным и объектным, если без этого нельзя обойтись.
А вот это неверно. Возможность легкой работы с процессами дается не просто так, а отказом от присваивания. Нет присваивания, нет проблем с синхронизацией, дедлоками, race conditions.
Если бы это можно было сделать лехко и просто на обычно ОО языке, давно бы уже сподобились. Не первый десяток лет такие задачи решаются. Не от хорошей жизни в Erricson выбрали модель чистого ФЯ.
№ 2189 23-01-2007 14:43 | |
Ответ на »сообщение 2187« (Jack Of Shadows)
___________________________
Я действительно все еще нахожусь на ветке по оберону на форуме дельфи ?
Я же давеча Вам любезно так говорила, следуя Вашему совету: "Вам в соседнюю дверь". С номером на два меньше местного, по коридору налево.
№ 2188 23-01-2007 14:41 | |
Еще по поводу Эрланга.
Процессы в Эрланге не связаны с функциональным подходом.
http://ru.wikipedia.org/wiki/Erlang
Особенность Erlang не в его синтаксисе. Он мог бы быть и чисто императивным и объектным, если без этого нельзя обойтись.
Все это не имеет никакого отношения к "преимуществу ФЯ в распараллеливании программ", разбиение на процессы осуществляется вручную:
Процесс проектирования заключается в итеративном разбиении системы на иерархии конкурентно взаимодействующих подсистем, пока составляющие не станут достаточно просты для реализации.
Сама модель легковесных процессов, видимо, удачна для ряда приложений (насколько я понял, блокировки не требуются).
Но далеко не для всех.
Нигде не читал о пригодности Эрланга для жесткого real-time.
Судя по тому, что читал, он и непригоден для этого.
№ 2187 23-01-2007 14:38 | |
Ответ на »сообщение 2186« (AVC)
___________________________
А почему же не на языке Erlang, столь убедительно превосходящем все императивные языки? ;)
Я надеюсь это была шутка и вам не надо обьяснять на самом деле почему.
Тем же кому ЭТО надо обьяснять...хм ну что ж, here goes.
Эрланг (да и вообще любой язык) не превосходит ассемблер по свои возможностям. Но он (да и практически любой язык) превосходят ассемблер по своей понятности и близости к человеку.
Понятно да ? На пальцах - когда говорят что язык превосходит ассемблер и си, это значит лучше для человека но хреновее для железа.
Лучше для железа (ассемблер и си) хуже для человека, С ростом программы очень быстро накапливается очень много ЧЕЛОВЕЧЕСКИХ ошибок.
Когда вы пользуетесь калькулятором вы туда забиваете циферки в 10-значной системе, хотя калькулятор работает с ними в двух-значной. Почему ? Потому что 10-значная система ПРЕВОСХОДИТ двух-значную. О нет, не по своим возможностям конечно, просто по удобству для нас - двуногих прямоходящих существ без перьев.
А двухзначная система ЭФФЕКТИВНЕЕ, о нет, не в плане возможностей вычисления конечно. Просто железки так сделаны.
Таким образом тот факт что калькулятор вычисляет в двухзначной системе не означает что вы вычисляете в двухзначной. И тот факт что эрланг, java, лисп да и вообще что угодно написаны на си или ассемблере, не означает что вы на эрланге вызываете ассемблерные процедуры :))
Работая с калькулятором вы все равно остаетесь на своем уровне, в своей УДОБНОЙ ДЛЯ ВАС, десятизначной системе.
Работая с эрлангом (обероном, java) вы остаетесь на уровне этого языка, несмотря на то что там ниже происходит.
Поэтому когда я увидел такие вот аргументы от Снегурочки, я чуть со стула не упал.
Я действительно все еще нахожусь на ветке по оберону на форуме дельфи ?
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|