Обсуждение участника:Sergey feo (KQvr';yuny rcgvmuntg&Sergey feo)

Перейти к навигации Перейти к поиску

Добро пожаловать

[править код]

Здравствуйте! От имени участников Википедии — приветствую Вас в её разделе на русском языке. Надеемся, Вы получите большое удовольствие от участия в проекте.

Ниже приведены некоторые полезные для начинающих ссылки:

Обратите внимание на основные принципы участия: правьте смело и предполагайте добрые намерения.

Вы можете подписываться на страницах обсуждения, используя четыре идущих подряд знака тильды (~~~~), или нажав на соответствующую кнопку на панели инструментов. Если у Вас возникли вопросы, воспользуйтесь системой помощи. Если Вы не нашли в ней ответа на Ваш вопрос, задайте его на форуме проекта.
И ещё раз, добро пожаловать!  :-) // vh16 (обс.) 18:14, 28 апреля 2006 (UTC)[ответить]

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

Во-вторых, Вы там в тексте оставили несколько вопросительных знаков, наверное это были какие-то ваши пометки себе. Думаю, они больше не нужны.

В-третьих, предлагаю Вам получить флаг автопатрулируемого. Флаг означает, что Вы - добросовестный участник и Ваши правки не нужно перепроверять. От Вас требуется не нарушать основные правила википедии: не вандалить, не копировать материалы, нарушающие авторские права, не спамить. Rasim 10:52, 23 мая 2010 (UTC)[ответить]

О ловушках для программистов

[править код]

Раз уж мы с Вами дискутируем о ловушках для программистов, расскажу я Вам в приватном порядке одну историю о подобных ловушках. Эту историю я услышал где-то в 1983 или 1984 году, а относится она к 70-м или даже 60-м годам.

Один программист писал программу на языке Fortran-IV и написал в ней такую строку:

 DO 10 K=1,4

Согласно описанию языка, это должно интерпретироваться как «повторить в цикле строки от следующей за данной и до строки с меткой 10 включительно, присваивая переменной K значения от 1 до 4»

Далее наложились друг на друга следующие факторы:

  1. В языке Фортран объявление переменных не обязательно. Транслятор сам обнаруживает переменные в тексте программы, причем их тип определяется по первой букве имени переменной: I, J, K, L, M, N — целые, остальные — вещественные.
  2. Текст программы на Фортране, если можно так выразиться, строчно-ориентированный. То есть любой оператор может занимать только 1 строку, в крайнем случае следующие строки специально помечаются как «дополнительные к предыдущей». Соответственно, анализируется и транслируется все построчно.
  3. Транслятор языка был написан так, что игнорировал все пробелы в строке и оставлял для трансляции только значимые символы. (Тонкость: этот момент ни в какой документации никогда не описывался)
  4. Человек, который готовил программу к запуску, ошибся и вместо запятой набрал точку.

В результате транслятор прочитал эту строку как:

 DO10K=1.4

Что означает «вещественной переменной с именем DO10K присвоить вещественное значение 1 целая и 4 десятых».

В результате при запуске программы строки, составляющие тело цикла, выполнились только 1 раз, причем какое значение при этом имела переменная K — хрен его знает.

И все бы ничего, но это был рассчет траектории полета американского космического аппарата на Луну. И аппарат в результате пролетел мимо Луны и пропал в глубинах космоса.

Вот это действительно была ловушка. Которая, кстати говоря, сильно повлияла на дальнейшее развитие языков программирования. --Grig_siren 07:51, 1 апреля 2011 (UTC)[ответить]


Я тоже слышал об этой легенде. Красивая история. Нам её рассказывали в ВУЗе, когда преподавали Фортран. Причём у этого рассказа уже много вариантов. Меняются цифры в легендарной строке, меняется цель полёта: Луна, Меркурий, Венера. Но главное остаётся - перепутанная точка с запятой :-) Вот тут есть кое-что на эту тему: Маринер-1. Была даже книжка "Ошибки-ловушки при программировании на Фортране" (Боровин, Комаров, Ярошевский, М.: Наука, 1987). Там эта легенда в начале книги. Вот здесь пытаются раскопать, откуда пошла легенда в варианте с Маринером-1, и действительно ли там была проблема в запятой: http://www.aldragon.net/lj_archive/127814.html . Наверное, данная ловушка сильно повлияла на создание Ады. У Ады тоже есть своя легенда, про Ариан-5. Но там дело было вроде бы не в ловушке языка (http://www.osp.ru/os/1998/06/179592/). --sergey_feo 16:05, 1 апреля 2011 (UTC)[ответить]

  • (Посмотрел на Вашу личную страницу) Опс... А что, в МИЭМе до сих пор преподают фортран? Очень интересно. Я думал, что его уже нигде не используют. Уж на что я там учился давным давно (с 1985 по 1993 год с перерывом на армию) - так и то фортран был только на 1-м курсе (потому что в те времена ничего более серьезного просто не было в доступных пределах). А потом - только Си и Паскаль. А на старших курсах программировать уже не учили - там речь шла больше об алгоритмах как таковых.
  • Около 10 лет назад Фортран ещё преподавали. Мне кажется, что Вы ошибаетесь: Фортран используют в научных вычислениях. Широко известны старые фортрановские библиотеки типа BLAS, LAPACK. Наверняка есть много других. Фортран продолжают использовать и при написании новых алгоритмов (наряду с Си): [1]. Не спроста в Scilab предусмотрена возможность вызова процедур на Фортране. Интел наряду с сишным компиллятором до сих пор делает фортрановский: [2]. Насколько я понимаю, Фортран наряду с Си используется на суперкомпьютерах. Вот, например, один из Cray: [3]. Статья в Википедии: Фортран. Язык развивается, выходят новые стандарты: [4]. Новый Фортран - это уже далеко не Фортран-77. Если есть свободное время - попробуйте найти в Интернете описание современного Фортрана (95, 2003, 2008). Можно взять хотя бы учебник Немнюгина и Стесик, на который есть ссылка в удаляемой статье. Мне кажется, Вам будет интересно, какие там масштабы нововведений.--sergey_feo 21:39, 1 апреля 2011 (UTC)[ответить]
  • P.S. Хотя у меня создаётся впечатление, что Фортраном пользуются "по инерции": есть старые библиотеки, есть опыт учёных. Новые же поколения учёных и программистов больше привыкли к Си и пытаются использовать в научных расчётах привычный инструмент. За повышением спроса на Си следует повышение предложения, и Си постепенно перевешивает Фортран. Про то, что удобнее для научных расчётов, можно много спорить :-) --sergey_feo 09:18, 3 апреля 2011 (UTC)[ответить]
  • А за ссылки спасибо. Некоторые истории я первый раз вижу. Очень познавательно оказалось. И с "Ариан" получается, что действительно дело не в ловушке языка, а в том, что программеры лопухнулись. Впрочем, я в них камнями кидаться не буду - у самого на совести несколько подобных грехов, хотя и с меньшими финансовыми потерями. --Grig_siren 18:09, 1 апреля 2011 (UTC)[ответить]

На странице про удаление спор у нас почти уже свёлся к тому, надо читать документацию или не надо, и как много. В общем, вы убедили меня в том, что надо побольше читать документацию.

P.S. Тут можно привести 2 примера крайностей. Чтобы использовать лампочку накаливания, ТУ на неё читать не надо, достаточно знать напряжение и мощность. А вот управлять автомобилем можно только если знаешь ПДД.

  • Ошибка. Чтобы управлять автомобилем нужно в первую очередь знать, где у него органы управления и какой орган на что влияет, причем для "аналоговых" органов управления (вроде педалей газа и тормоза) надо также иметь представление о том, как связаны между собой "вход" и "выход" соответствующего органа. Без этого знания и без опыта практического применения этих знаний даже идеальное знание ПДД окажется бесполезным. --Grig_siren 18:09, 1 апреля 2011 (UTC)[ответить]

Кстати, в случае с лампочкой ловушка могла бы быть в том, что если вкручивать её, взявшись немного не так - она раскалывалась бы и резала руки. Браться за неё можно было бы строго определённым образом. И это было бы задокументировано в ТУ :-) --sergey_feo 17:14, 1 апреля 2011 (UTC)[ответить]

Заброшенные личные подстраницы

[править код]

Уважаемый участник! По причине вашей неактивности следующие страницы были сочтены заброшенными и были удалены. Когда вы вернётесь в проект, любой администратор сможет восстановить эти страницы по вашему запросу.

-- QBA-bot (обс.) 13:22, 28 сентября 2019 (UTC)[ответить]

Заброшенные личные подстраницы

[править код]

Уважаемый участник! По причине вашей неактивности следующие страницы были сочтены заброшенными и были удалены. Когда вы вернётесь в проект, любой администратор сможет восстановить эти страницы по вашему запросу.

-- QBA-bot (обс.) 03:27, 3 декабря 2019 (UTC)[ответить]