Русские вычислители

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русские вычислители » О языках программирования » О языке Оберон


О языке Оберон

Сообщений 1 страница 21 из 21

1

Чтобы не мешать все темы в кучу, сделал новую ветку. Тема берёт начало отсюда.

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

Если остановиться на первом толковании понятия «синтаксический сахар», то можно сказать, что в Обероне нет анонимных функций, поэтому написать так же, как в статье по приведённой ссылке

Код:
map( function(x){return x*2;}, a );

не получится. Можно использовать именованные функции, но они 1) будут описаны в другом месте 2) не будут скрытыми. Т.е. добиться ровно того же не получится. Значит, это не «то же самое, только другим способом». Значит, это не синтаксический сахар в первом понимании.

Если брать второе толкование, то приведённый пример как раз то лишён всех «излишеств». А если добиваться того же именованными функциями, то код удлиняется и появляется синтаксический сахар. Поэтому желание писать программы как в вышеприведённом примере – это требование синтаксический сахар убрать.

Опять же обращу Ваше внимание, что в Обероне нет чистых функций. А они позволяют уменьшить количество состояний программы. Т.е. уменьшить её логическую сложность. А это, в принципе, повышает её надёжность. Между тем, последнее время языки активно дополняются функциональными возможностями: C++11, D, Nemerle и другие. Функциональная парадигма в чистом виде не оправдала себя, как универсальная и пригодная на все случаи жизни. Но в гибридных языках она приживается как некое подмножество и может найти применение в оправданных случаях.

В языке D есть контактное программирование. Это проверка значений на входе и выходе функций. Этого можно добиться обычными «if». Но в D эти проверки можно отключить при компиляции, когда код хорошо проверен. А в обычных языках «if» - это обычная конструкция. Как компилятор отличит проверочное «if» от обычных «if», чтобы отключить эту проверку, которая стала ненужной?

Или взять оператор «break  n» из PHP. С одной стороны, без него можно обойтись, используя обычный «break». С другой – он делает код проще и короче.

Конечно, что функциональные, что контрактные добавки в язык этот язык утяжеляют. Растёт количество правил в БНФ, растёт число страниц в учебниках. Но это ускоряет разработку программ и увеличивает их надёжность. Значит, это оправдано.

Оберон же, остановившись на минимальном, но достаточно мощном императивном подмножестве, остановился вообще. Не желает выйти из этих рамок. Может, именно поэтому он не востребован? И в мировых, и в российском рейтингах языков программирования он вообще не наблюдаем. Можно, конечно, на зеркало попенять. Но можно просто задуматься: а почему? Автор языка имеет право на своё видение. Плохо получилось у него или хорошо – это уже голосуют пользователи языка.

0

2

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

Лично мне не нравится в Обероне синтаксис. Эти эстетические соображения лишают желания вникать в семантику. Это как с женщинами: желание познакомиться с глубоким внутренним миром какой-то дамы возникает тогда, когда он облачен в привлекательные формы :) Поэтому не знаток Оберона, отнюдь :) А вполне себе профан.

JavaScript функциональный ЯП в отличии от императивного Оберона, и тем хорош.

Он не чисто фунциональный, он гибридный; в нём как императивное, так и функциональное.

0

3

Юрий написал(а):

Растёт количество правил в БНФ, растёт число страниц в учебниках. Но это ускоряет разработку программ и увеличивает их надёжность. Значит, это оправдано.


К вопросу о надёжности: это как раз уменьшает надёжность ПО, никто и никогда не станет писать ПО для космических кораблей и спутников на Си или Си++, Ди или ещё на чём-нибудь. В России чаще всего используют ту же Модулу-2 для этих целей. Слышал, что пишут на Си (вроде решетнёвцы), но исходники на Си всё равно сначала переводятся в исходники на Модуле-2.
И вот, познакомьтесь со статьёй: ОБЕРОН — воплощение мечты Никлауса Вирта. Сергей Свердлов

0

4

С возвращением Вас! Что-то давно Вас тут не было. Не пропадайте так надолго...

никто и никогда не станет писать ПО для космических кораблей и спутников на Си или Си++

А вот и заблуждаетесь. Дело в том, что там высокие требования по радиационной стойкости. Чтобы тяжёлые заряженные частицы не оказывали большого влияния на электронику, транзисторы в ней должны быть крупными. По этой причине используются старинные процессоры со старинной памятью. Поэтому очень жёсткие требования к программам по скорости и памяти. И выбирается как раз таки Си, как наиболее близкий к машинному. Используется чуть ли не Borland Turbo C. Операции умножения в таких программах нередко заменяется операцией сдвига. Код становится трудночитаемым, но всё подчинено задаче добиться максимальной эффективности... На Хабре было несколько статей на эту тему.

0

5

Юрий написал(а):

И выбирается как раз таки Си, как наиболее близкий к машинному. Используется чуть ли не Borland Turbo C.


Везде пишут, что у нас используют Модулу-2. Да и я общался с одним из бывших решетнёвцев (это они делают Глонассы).

0

6

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

Чтобы узнать все подробности, надо работать в этой отрасли. А зарплаты там для программистов - увы не высоки, например, в Пилюгинском центре - 30 тыс. Сравните это с бабаяновским МЦСТ - 120 тыс.

0

7

Юрий написал(а):

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

Чтобы узнать все подробности, надо работать в этой отрасли. А зарплаты там для программистов - увы не высоки, например, в Пилюгинском центре - 30 тыс. Сравните это с бабаяновским МЦСТ - 120 тыс.


Там не дураки сидят. Это к вопросу о смерти космонавтов. Раз наши собираются лететь на Марс, значит есть возможности защитить людей от опасного излучения.

0

8

Раз наши собираются лететь на Марс, значит есть возможности защитить людей от опасного излучения.

Так это только недавно до космических агентств "дошло". Установили на каком-то аппарате, летевшем к Марсу, регистратор радиации. Узнали её величину. Умножили на 2 (для обратного пути) и поняли, что это - смертельная доза. Многометровая по толщине защита уменьшит уровень, но масса марсианской миссии многократно увеличивается и становится невозможной для современных ракет-носителей. Выход один - уменьшить время в пути. Поэтому работают над ядерными двигателями - и наши, и американцы. Тогда туда и обратно можно будет обернуться за 2-3 месяца, а не за 1,5 года.

0

9

Юрий написал(а):

Так это только недавно до космических агентств "дошло". Установили на каком-то аппарате, летевшем к Марсу, регистратор радиации. Узнали её величину. Умножили на 2 (для обратного пути) и поняли, что это - смертельная доза. Многометровая по толщине защита уменьшит уровень, но масса марсианской миссии многократно увеличивается и становится невозможной для современных ракет-носителей. Выход один - уменьшить время в пути. Поэтому работают над ядерными двигателями - и наши, и американцы. Тогда туда и обратно можно будет обернуться за 2-3 месяца, а не за 1,5 года.


Есть ещё один способ: собирать корабль на орбите.  А недавно газете "Завтра" советник главы РКК "Энергия" Александр Железняков рассказал, что наши хотят использовать Луну как космодром подскока для полётов в том числе и на Марс: http://zavtra.ru/content/view/postroim-bazu-na-lune

0

10

газете "Завтра"

Никогда не читал :) Везде продаётся, но... Что-то мешает мне её читать. Наверно от того, что она из той прессы, где много места уделяется раскрытию заговоров, козней недругов. Не верю вчерашним коммунистам, которые игнорируют то, чему их учили в институтах и университетах. А их (как и меня, впрочем) учили марксистско-ленинской философии, которая почти отрицает субъективные факторы в истории и политике. Исторические процессы, по этой науке, объективны. Роль личностей в истории почти равна нулю. Она не равна нулю в том случае, когда действия отдельных людей лежат в русле объективных исторических процессов.

Гитлер оказал некоторое влияние на историю, но если бы его не было, то нашёлся бы другой, на которого был бы спрос среди немецкого населения, недовольного итогами 1 мировой войны. Ленин возглавил большевистский переворот, потому что его идеи и лозунги были востребованы. Случившуюся революцию нельзя объяснить только тем, что Ленин был немецким шпионом. Наполеон тоже не на пустом месте появился.

А эти "писатели" пытаются дать  историческим поворотам очень простые объяснения. "Собрались 3 плохих человека и изменили судьбу миллионов, развалили СССР" - примерно так пишут. Но СССР распался не потому, что Ельцин, Кравчук и Шушкевич много выпили накануне. И Варшавский договор распался не потому, что Горбачёв был предатель. Надо просто видеть объективность исторических процессов.

собирать корабль на орбите

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

Ну мы отвлеклись. Эта ветка - про Оберон!

0

11

Юрий написал(а):

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


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

Юрий написал(а):

А эти "писатели" пытаются дать  историческим поворотам очень простые объяснения. "Собрались 3 плохих человека и изменили судьбу миллионов, развалили СССР" - примерно так пишут. Но СССР распался не потому, что Ельцин, Кравчук и Шушкевич много выпили накануне. И Варшавский договор распался не потому, что Горбачёв был предатель. Надо просто видеть объективность исторических процессов.


Неверно. Горбачёв очень много усилий приложил к тому, чтобы развалить СССР. Собственно, с него всё и началось. Что касается т.н. "объективных исторических процессов", то это сродни так называемой "невидимой руке рынка" — очень удобно, чтобы оправдывать виновных. Но я не спорю, предатели всегда учитывали особенности сложившейся обстановки, создавшиеся условия в стране и использовали их в своих целях. Да, Ленин бы не пришёл к власти, если бы не плохое положение рабочих и крестьян, другие трудности в стране, но он использовал их, чтобы к власти прийти, а не они его за ручку вели. А Гитлера так вообще Запад к власти привёл. И, конечно же, они тоже использовал сложившиеся в Германии условия. Более того, они даже их искусственно меняли. Почитайте книгу Старикова "Кто заставил Гитлера напасть на Сталина?"

0

12

Юрий написал(а):

Никогда не читал  Везде продаётся, но... Что-то мешает мне её читать.


Статья-то стоящая. Беседа с представителем "Энергии" как-никак.

0

13

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

Я думаю, они разберутся. Главное, чтобы не "пилили". А то ведь почему последний "Протон" упал при старте? Говорят, что из 3 "Глонассов" были исправны только 2, а третий в виде "отката" Сердюков взял себе. Авария должна была скрыть последующий позор.

Горбачёв очень много усилий приложил к тому, чтобы развалить СССР

Знаете, в обществе был большой спрос на перемены. "Перемен требуют наши глаза, перемен требуют наши сердца". В газетах писали одно, а правда жизни была другой. ЦК КПСС рапортовал об успехах, а вот о пустых полках магазинов никто не говорил - в телевизоре всё было хорошо. Первую правду о Чернобыле узнали от "вражьих голосов". Люди хотели жить в правде. Другое дело, что они были обмануты в ожиданиях.

Что касается т.н. "объективных исторических процессов", то это сродни так называемой "невидимой руке рынка" — очень удобно, чтобы оправдывать виновных

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

Как-то один молодой человек попросил совета у древнегреческого философа Сократа. Он спросил: "Я хочу жениться. Как Вы считаете, нужно мне жениться или нет?". Мудрец ему ответил: "Как бы ты сейчас не поступил, ты всё равно пожалеешь об этом".

Так же и в отношении СССР. С одной стороны - жаль, что нашей Родины больше нет. А с другой... Однажды утром, в воскресение, я спустился в метро. По воскресением оно малолюдно. А тут... Мама родная! Метро забито от края до края, а лица все - не наши! Наших лиц почти нет! Куда я попал?! Оказывается - Курбан Байрам. Такое ощущение, что попал в оккупированный город. Сейчас они тут гастарбайтеры, на птичьих правах. А будь жив СССР, они бы были полноправными гражданами, имели бы те же права, в том числе командовать парадом... Может, и правильно, что они теперь отдельно от нас? Вот такие мысли...

Хочу ещё раз заметить, что эта ветка - про Оберон :)

0

14

Юрий написал(а):

Я думаю, они разберутся. Главное, чтобы не "пилили". А то ведь почему последний "Протон" упал при старте? Говорят, что из 3 "Глонассов" были исправны только 2, а третий в виде "отката" Сердюков взял себе. Авария должна была скрыть последующий позор.


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

Юрий написал(а):

Знаете, в обществе был большой спрос на перемены. "Перемен требуют наши глаза, перемен требуют наши сердца". В газетах писали одно, а правда жизни была другой. ЦК КПСС рапортовал об успехах, а вот о пустых полках магазинов никто не говорил - в телевизоре всё было хорошо. Первую правду о Чернобыле узнали от "вражьих голосов". Люди хотели жить в правде. Другое дело, что они были обмануты в ожиданиях.


Полностью согласен. Недовольство людей и их желание перемен использовали как раз для того, чтобы уничтожить СССР. Я вам даже больше скажу: я уверен, что 92-й год (в смысле ужасающего обесценивания рубля) устроили намеренно, чтобы уничтожить все накопления советских граждан как источник средств для приватизации с целью впоследствии провести т.н. ваучеризацию под предлогом отсутствия у населения таких средств и прочие афёры и отыметь таким образом всю страну, присвоя всё себе и своим. И дефицит товаров был устроен искусственно (открыли границы на вывоз, после чего все предприятия стали работать на внешние рынки, лишая своих граждан возможности покупать даже самые необходимые товары), чтобы накопить денежную массу на руках у населения (и в виде сбережений), чтобы впоследствии после отпуска цен до приватизации она хлынула в народное хозяйство, устроя взрывную инфляцию, а также для усиления у населения недовольства властью, которое впоследствии использовали для приведения к власти т.н. демократов. Все тогдашние события выглядят так, как-будто были очень хорошо продуманы и осуществлены искусственно. Ход примерно такой: дефицит > рост денежной массы, которую людям некуда потратить, и их недовольства > приведение к власти либералов и демократов > отпуск цен до приватизации > взрывная инфляция > ... Было ещё много причин, в том числе и таких же искусственных.

Юрий написал(а):

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


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

Юрий написал(а):

Так же и в отношении СССР. С одной стороны - жаль, что нашей Родины больше нет. А с другой... Однажды утром, в воскресение, я спустился в метро. По воскресением оно малолюдно. А тут... Мама родная! Метро забито от края до края, а лица все - не наши! Наших лиц почти нет! Куда я попал?! Оказывается - Курбан Байрам. Такое ощущение, что попал в оккупированный город. Сейчас они тут гастарбайтеры, на птичьих правах. А будь жив СССР, они бы были полноправными гражданами, имели бы те же права, в том числе командовать парадом... Может, и правильно, что они теперь отдельно от нас? Вот такие мысли...


Юрий, при СССР они бы жили у себя не хуже нас и никуда не поехали бы. А если бы и поехали, то их проводили бы назад. А не захотели бы возвращаться, вернули бы силой. Это сейчас государство занимается этническим мазохизмом. Кстати, то, что они на птичьих правах, рано или поздно приведёт к тому, что они устроят бунт и прав полных добьются, но у современного государства духу не хватит поставить их на место, утопив этот бунт в крови. А вот у советского хватало. Так что ещё неизвестно, к чему это всё приведёт. Возможно, скоро не Кавказ отделится от России, а сама Москва, когда в ней какой-нибудь Абдула к власти придёт со своей "Партией московских мусульман". Тем более не хочу туда ехать :-)

Юрий написал(а):

Хочу ещё раз заметить, что эта ветка - про Оберон


Так я не против. Просто не смог не ответить.

0

15

Юрий написал(а):

не получится. Можно использовать именованные функции, но они 1) будут описаны в другом месте 2) не будут скрытыми. Т.е. добиться ровно того же не получится.


Юрий, а что значит "не будут скрытыми"? Скрытыми от других отделов (модулей) или вообще? От других отделов скрыть можно.

0

16

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

Я там свечку не держал. Просто такую версию уже озвучивали. На мой взгляд, не очень вероятно.

что значит "не будут скрытыми"? Скрытыми от других отделов (модулей) или вообще?

Код:
function F1(arg1)
{
    // внутри - определение ещё одной функции - F2
    function F2(arg2)
    {
    }

    // здесь, внутри F1, мы можем вызвать F2:
    F2 (123);
}
// а здесь уже не можем:
   F2 (123);  // ошибка, здесь функция не видна
}

0

17

Юрий написал(а):

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

Юрий написал(а):

Это будет ненадёжная техника.


А вы у нас специалист по космическим кораблям?
Да и с чего вы взяли, что такой корабль нельзя будет сначала собрать на земле, испытать в сборе, а потом уже разобрать и частями вывести в околоземье, после чего собрать уже испытанный корабль?
Мысль вроде бы очевидная.

0

18

На Северном флоте ВМФ было такое происшествие. Ракеты загружались в подлодку, но их не просто размещали там, их ещё подключали через кабели к самой подлодке. Ведь управление ими должно быть. Мичман, который подключал кабели, перепутал полярность. Короткое замыкание, мичман сгорает в ракетной струе, сама ракета улетает хрен знает куда. Это я о проблемах сборки.

Будет ли на орбите возможность проверить правильность всех соединений? А ещё в космосе бывает такой эффект: металлические поверхности «прилипают» друг к другу. Вы уверены, что всё будет хорошо? Вы гарантируете, что сборка в космосе будет такая же, как и на земле?

Ещё раз напомню – эта ветка про Оберон.

0

19

Юрий написал(а):

На Северном флоте ВМФ было такое происшествие. Ракеты загружались в подлодку, но их не просто размещали там, их ещё подключали через кабели к самой подлодке. Ведь управление ими должно быть. Мичман, который подключал кабели, перепутал полярность. Короткое замыкание, мичман сгорает в ракетной струе, сама ракета улетает хрен знает куда. Это я о проблемах сборки.


У американцев тоже происшествий хватало. И что, теперь после каждого происшествия отказываться от всего? Например, на орбитальной станции Мир один раз загорелась кислородная шашка, устроив пожар. Чудом все остались в живых. Но это ведь не значит, что нужно отказаться от выработки кислорода на станции или вообще от станций? Так что нужно после таких происшествий работать над тем, чтобы подобного более не случалось, а не сворачивать все и вся.

Юрий написал(а):

Будет ли на орбите возможность проверить правильность всех соединений?


Рано или поздно, космонавтика подойдёт вплотную к необходимости сборки кораблей и орбитальных станций на орбите. Уже подошла, ведь орбитальные станции Мир и МКС и так собирали на орбите, так как целиком их не выведешь туда, слишком тяжёлые и громоздкие. Так что опыт уже есть. А собирать можно готовыми испытанными частями (отсеками, блоками; вы ведь не думаете, что их там сварщики и слесари на орбите будут болтаться и изготавливать :D), а проверять должны умные электронные системы, благо научно-технический уровень уже позволяет это делать — проводить самопроверку всех систем и узлов.

Юрий написал(а):

А ещё в космосе бывает такой эффект: металлические поверхности «прилипают» друг к другу.


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

Юрий написал(а):

Вы уверены, что всё будет хорошо? Вы гарантируете, что сборка в космосе будет такая же, как и на земле?


Никто ничего не гарантирует, а если и гарантирует, то Роскосмос и Росгосстрах — выплаты в случае неудачи.

Гляньте, какие большие и сложные станции:

http://upload.wikimedia.org/wikipedia/commons/0/09/Mir_Space_Station_viewed_from_Endeavour_during_STS-89.jpg?uselang=ru

http://upload.wikimedia.org/wikipedia/commons/c/c9/STS-134_International_Space_Station_after_undocking.jpg?uselang=ru

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

Юрий написал(а):

Ещё раз напомню – эта ветка про Оберон.


Я знаю, но видите, как получается :-)

0

20

Кстати, собранный из испытанных частей корабль можно будет испытать и на орбите. Это будет даже лучше, чем наземные испытания. Стойте! Так ведь и собираемые на Земле корабли тоже проходят испытания в космосе! Так что, наоборот, это будет такая же надёжная техника.

0

21

Не хочу больше спорить. Давайте вернёмся к Оберону, т.е. к теме этой ветки.

Есть статья Сергея Свердлова Арифметика синтаксиса, которая воспевает подход Н.Вирта. Но есть ещё вполне обоснованная критика методов механического подсчёта правил языка, статья Евгения Зуева Арифметика синтаксиса-2.

0


Вы здесь » Русские вычислители » О языках программирования » О языке Оберон


форум на 24bb Создать форум бесплатно