Oberon space

General Category => Общий раздел => Тема начата: valexey_u от Ноябрь 07, 2013, 09:25:31 pm

Название: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 07, 2013, 09:25:31 pm
Согласно 8.2.4:
Цитировать
Relations are Boolean. The ordering relations <, <=, >, >= apply to the numeric types, CHAR, and character arrays

Нигде не сказано что означают эти операторы для char arrays (скажем вот у нас два этих char array'я, оба разной длины, но в них содержится до терминирующего нуля одни и те же буковки - что должно выдать сравнение?).

Также я нигде не нашел что для relations оба операнда должны быть одного типа.

В общем, ткните меня плиз носом в пункт репорта, где запрещено следующее:
myBoolVar := 3.1415 >= "hello world";
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 03:05:04 am
Запрещены здравым смыслом, - в Оберонах не допускаются операции над операндами разных типов, за исключением явно описанных случаев приведения типа. Очевидно, что использование в логическом выражении операндов разных типов также подпадает под это правило.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: kkkk от Ноябрь 08, 2013, 07:53:09 am
скажем вот у нас два этих char array'я, оба разной длины, но в них содержится до терминирующего нуля одни и те же буковки - что должно выдать сравнение?).
С учётом того, что строки заканчиваются именно нулём - минимальным значением, ответ вполне закономерен и однозначен
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 09:44:19 am
Запрещены здравым смыслом, - в Оберонах не допускаются операции над операндами разных типов, за исключением явно описанных случаев приведения типа. Очевидно, что использование в логическом выражении операндов разных типов также подпадает под это правило.
На самом деле это не так. Однотипность операндов явно прописана только для арифметических операторов. (а вот в Oberon rev 1990 и этого не было, там были другие условия).
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 12:20:34 pm
Я и говорю - есть здравый смысл, о котором не стоит забывать, следую букве сообщения о языке.
Но я теперь понимаю, почему импортные инструкции к разным бытовым девайсам такие тупые, словно пишутся для идиотов, повторы одного и того же под разным соусом в разных абзацах, разжевано до состояния слизи, и эта слизь размазана по всем страницам.
Ты же не хочешь, чтобы Вирт писал подобным стилем )). Не для домохозяек же пишет
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 12:26:27 pm
Я и говорю - есть здравый смысл, о котором не стоит забывать, следую букве сообщения о языке.
Но я теперь понимаю, почему импортные инструкции к разным бытовым девайсам такие тупые, словно пишутся для идиотов, повторы одного и того же под разным соусом в разных абзацах, разжевано до состояния слизи, и эта слизь размазана по всем страницам.
Ты же не хочешь, чтобы Вирт писал подобным стилем )). Не для домохозяек же пишет
Все описания языков, их стандарты, пишутся максимально формально и подробно. Не оставляя лазеек для неверного понимания, и уж точно не рассчитывая на "здравый смысл", ибо у каждого он свой и зависит от того чем человек занимался, на каких языках писал и к чему привык.

Ну, скажем выражение 3.1415 < "Hello world" не вызовет и тени сомнения у тех кто пишет на js например. С их точки зрения тут все отлично, правильно и корректно. И ясно как реализовывать. А с точки зрения какого-нибудь паскалиста - это полная ересь. А с точки зрения хаскелиста полной ересью является невозможность определить самостоятельно смысл оператора < для данной ситуации, а также невозможность определения собственных инфиксных операторов :-)

Так что я хочу максимально полное и формальное описание языка. Чтобы у реализаторов не возникало разночтений, и реализации были таки совместимы друг с другом, а не как сейчас.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 12:47:53 pm
Мне кажется, что когда говорят от здравом смысле, всегда подразумевают некий конкретный контекст. Таким образом, говорить о здравом смысле и Обероне в контексте Хаскеля или жабаскрипта не имеет смысла.
Вирт создал целое направление в ЯП и компиляторостроении, и у тех, кто в этот контекст погружен и уверенно плавает, не возникает разночтений или недопониманий. Другое дело, что мы в этом контексте мало ориентируемся, мы чужие на этом празднике жизни, и тащим туда свои шары, бантЫ и клоунские колпаки, которые не всегда вписываются в окружающую обстановку, а потом удивляемся ...
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Geniepro от Ноябрь 08, 2013, 12:59:28 pm
Я и говорю - есть здравый смысл, о котором не стоит забывать, следую букве сообщения о языке.

Цитата: Альберт Эйнштейн
Здравый смысл — это собрание предрассудков, приобретенных до восемнадцатилетнего возраста.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 01:02:28 pm
Мне кажется, что когда говорят от здравом смысле, всегда подразумевают некий конкретный контекст. Таким образом, говорить о здравом смысле и Обероне в контексте Хаскеля или жабаскрипта не имеет смысла.
Вирт создал целое направление в ЯП и компиляторостроении, и у тех, кто в этот контекст погружен и уверенно плавает, не возникает разночтений или недопониманий. Другое дело, что мы в этом контексте мало ориентируемся, мы чужие на этом празднике жизни, и тащим туда свои шары, бантЫ и клоунские колпаки, которые не всегда вписываются в окружающую обстановку, а потом удивляемся ...
Тогда открывается широкое поле для последующих сокращений репорта языка - ведь все и так знают, и все в теме, в контексте. Так что следующий репорт может быть просто диффом для этого контекста :-) Думаю реально уложиться в одну страничку.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 01:19:04 pm
Тогда открывается широкое поле для последующих сокращений репорта языка - ведь все и так знают, и все в теме, в контексте. Так что следующий репорт может быть просто диффом для этого контекста :-) Думаю реально уложиться в одну страничку.
Oberon-SA уместился в 7 страниц.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 01:27:43 pm
Тогда открывается широкое поле для последующих сокращений репорта языка - ведь все и так знают, и все в теме, в контексте. Так что следующий репорт может быть просто диффом для этого контекста :-) Думаю реально уложиться в одну страничку.
Oberon-SA уместился в 7 страниц.
При этом Oberon rev 2007 можно было бы уместить в пару страниц :-)
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: vlad от Ноябрь 08, 2013, 02:48:06 pm
Я и говорю - есть здравый смысл, о котором не стоит забывать, следую букве сообщения о языке.

Кроме шуток и передергиваний. Вот представь, что я не писал на паскалях. Но писал много на чем, так что общие представления имею. Откуда мне из репорта узнать, что операция '/' не применима к целым числам? При том, что "из здравого смысла и общего духа языка" я еще могу предположить, что результат этой операции будет целочисленный. Ну так что ж с того - в куче языков '/' применима к целым числам и дает целочисленный результат, без всяких ненужных DIV.

Т.е., я не предлагаю оформить репорт так, что даже программист, который ничего, кроме жабаскрипта не видел, все поймет. Но замыкаться на обероне самом, игнорируя "здравый смысл" по больнице в целом - тоже неправильно.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 02:54:37 pm
Я и говорю - есть здравый смысл, о котором не стоит забывать, следую букве сообщения о языке.

Кроме шуток и передергиваний. Вот представь, что я не писал на паскалях. Но писал много на чем, так что общие представления имею. Откуда мне из репорта узнать, что операция '/' не применима к целым числам? При том, что "из здравого смысла и общего духа языка" я еще могу предположить, что результат этой операции будет целочисленный. Ну так что ж с того - в куче языков '/' применима к целым числам и дает целочисленный результат, без всяких ненужных DIV.

Т.е., я не предлагаю оформить репорт так, что даже программист, который ничего, кроме жабаскрипта не видел, все поймет. Но замыкаться на обероне самом, игнорируя "здравый смысл" по больнице в целом - тоже неправильно.
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: vlad от Ноябрь 08, 2013, 03:01:03 pm
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.

Это как раз типично для людей, которые изучают далеко не первый язык. Ты же не ожидаешь, что они буду читать Виртовские учебники для школьников/студентов и разбирать подробно примеры?
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: ilovb от Ноябрь 08, 2013, 03:06:04 pm
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.
Я изучал и CP и Lua по репортам :-)
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 03:11:30 pm
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.
Я именно так языки и изучаю все новые. И очень огорчаюсь когда внезапно оказывается что вот у этого языка НЕТ ни РБНФ ни репорта нормального (ни тем более стандарта).
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 03:12:26 pm
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.

Это как раз типично для людей, которые изучают далеко не первый язык. Ты же не ожидаешь, что они буду читать Виртовские учебники для школьников/студентов и разбирать подробно примеры?
Зачем учебники, обычно для этого существует какое-то подобие "Руководства программиста", ибо рбнф интересна узким специалистам и семантические тонкости там отсутствуют, а сообщения часто поверхностны.
Конечно, если бы Сообщения представляли собой подробнейшие фолианты, то дело другое. Ты же сам понимаешь, что если бы Сообщения и Стандартны были полны и непротиворечивы, то не появлялось бы несметное количество разных книг и книжиц, разжевывающих и пережевывающих и без того необозримые стандарты и иже с ними.
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: igor от Ноябрь 08, 2013, 03:14:46 pm
По каким-нибудь там "плюсам" репорт (стандарт) можно до самой пенсии зубрить, да так и не успеть.  :D
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: Kemet от Ноябрь 08, 2013, 03:17:30 pm
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.
Я именно так языки и изучаю все новые. И очень огорчаюсь когда внезапно оказывается что вот у этого языка НЕТ ни РБНФ ни репорта нормального (ни тем более стандарта).
Изучаешь или всё-таки ознакомляешься?
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: vlad от Ноябрь 08, 2013, 03:36:17 pm
Зачем учебники, обычно для этого существует какое-то подобие "Руководства программиста", ибо рбнф интересна узким специалистам и семантические тонкости там отсутствуют, а сообщения часто поверхностны.

Хорошо, что ты порекомендуешь кроме PIO? Кстати, еще модно писать "руководство по языку X для программистов Y". Где Y = С, C++ или другой популярный язык :)
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 04:23:58 pm
Ты же сам понимаешь, что если бы Сообщения и Стандартны были полны и непротиворечивы, то не появлялось бы несметное количество разных книг и книжиц, разжевывающих и пережевывающих и без того необозримые стандарты и иже с ними.
Стандарты действительно полны и не противоречивы настолько насколько это вообще возможно. А руководства которые жуют и пережевывают появляются просто потому, что стандарт большой, сложный, и ПОДРОБНЫЙ. Взять стандарт и через день начать промышленно программировать не выйдет. Да даже тетрис через день не ясно будет как писать. Поэтому появляются эти калечные руководства которые не полны и противоречивы, зато просты и создают иллюзию знания языка.

Цитировать
Однако чтение первой же действительно серьезной и подробной книги - перевода авторского определения языка [1], предложенного в качестве начальной версии для его стандартизации, повергло нас в ужас и панику. Казалось, это безумие невозможно реализовать вообще! Тогда мы поняли настоящую цену учебникам типа "Язык XXX за двадцать один день" или "YYY - это просто!".  Подобные тексты (сами по себе, быть может, и неплохо написанные) оставляют за своими рамками настолько обширные области языка, избегают касаться стольких его тонкостей и особенностей, что в голове у читателя-программиста формируется зачастую усеченный и выхолощенный образ инструмента, который он собирается использовать.

http://www.interstron.ru/upload/images/pubs/Redkaya_professiya.pdf
Название: Re: [Oberon rev 2013] operator =,<,>,<=,>=
Отправлено: valexey_u от Ноябрь 08, 2013, 04:27:42 pm
Я никогда не встречал людей, которые изучают язык программирования по РБНФ и Сообщению о языке.
Я именно так языки и изучаю все новые. И очень огорчаюсь когда внезапно оказывается что вот у этого языка НЕТ ни РБНФ ни репорта нормального (ни тем более стандарта).
Изучаешь или всё-таки ознакомляешься?
Вначале прочитываю (первое знакомство), затем использую в качестве справочника при написании и проектировании программы.