Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
ВнизТрадиции программирования Найти похожие ветки
← →
vasIZmax © (2007-09-08 23:33) [0]Довольно часто в качестве счетчика в цикле мы используем (ну, если что-то пустяковое пишем) переменную "i". А когда к примеру пара вложенных то часто используется в качестве переменных "i" и "j". Или теже символы при работе с a[i,j].
Так вот, сегодня в папке (бумажной) у друга нашел распечатку (потрепанную всю:-)) в которой было написано (цитирование не дословное, а смысловое)"... на языке Фортран имена всех Z-переменных должны были начинаться с букв "i", "j" и еще какие-то символы. Многие программеры, работающие на фортране, часто использовали имя "i" для переменных, выполняющих роль счетчика цикла... традиция сохранилась и до наших дней..."
Интересно было почитать:-)
А теперь собственно вопрос: какие есть еще "традиции"? Может кому что попадалась?
← →
Kerk © (2007-09-08 23:34) [1]А разве это не от слова "итератор"?
← →
palva © (2007-09-08 23:37) [2]Имена классов начинать с буквы T
Имена типов-указателей начинать с буквы P
Имена типов-исключений начинать с буквы Ёоо
← →
Zeqfreed © (2007-09-08 23:37) [3]> Kerk © (08.09.07 23:34) [1]
Это от слова int :)
← →
Инс © (2007-09-08 23:37) [4]
> [2] palva © (08.09.07 23:37)
Интерфейсов - с буквы I, а дескрипторов - H :)
← →
Zeqfreed © (2007-09-08 23:38) [5]> palva © (08.09.07 23:37) [2]
Это не столько традиция сколько негласное соглашение.
← →
Petr V. Abramov © (2007-09-08 23:42) [6]palva © (08.09.07 23:37) [2]
это дельйфийской, например, в .Net это НАСИЛЬНО (ИМХО) отменено.
> теперь собственно вопрос: какие есть еще "традиции"?
"вообще" - см. языки 60-70-х
← →
ANTPro © (2007-09-08 23:49) [7]Посмотри "Венгерская нотация" на вики.
← →
Petr V. Abramov © (2007-09-08 23:52) [8]ANTPro © (08.09.07 23:49) [7]
> Посмотри "Венгерская нотация"
ни при чем
← →
Макс Черных © (2007-09-09 00:12) [9]
> на языке Фортран имена всех Z-переменных должны были начинаться
> с букв "i", "j" и еще какие-то символы
Не знаю, что за Z переменные такие, но Фортран (ЕСовский по крайней мере) не требовал обязательного объявления типа переменных. Однако, переменные начинающиеся с: I, J, K, L, M, N считались, при отсутсвии явного указания, типом INTEGER, а все остальные - типом REAL.
Оттуда все и пошло, учитывая то, что Фортран был (да и есть) самым распространенным языком для различных математических расчетов.
Я, кстати, уже неоднократно тут приводил легендарную историю, про то, как один чел в МВТУ словил 2 балла вот за такую строчку на фортране A = 1 как думаете - почему? :)
← →
Anatoly Podgoretsky © (2007-09-09 00:18) [10]> Макс Черных (09.09.2007 00:12:09) [9]
Если тип был явно указан, то из-за дурости или низких знаний предподователя, а если тип указан, то тем более.
← →
Zeqfreed © (2007-09-09 00:18) [11]> Макс Черных © (09.09.07 00:12) [9]
Неужели все переменные A по умолчанию равны единице?
← →
Marser © (2007-09-09 01:30) [12]Я просто так привык :)
Ещё с Бейсика (кстати, через два-три месяца будет десять лет со дня моего знакомства с программированием :-) )
← →
Германн © (2007-09-09 01:34) [13]
> Marser © (09.09.07 01:30) [12]
>
> Я просто так привык :)
Не. Тебя просто так "привыкли" другие :-)
← →
Marser © (2007-09-09 01:39) [14]
> Германн © (09.09.07 01:34) [13]
>
> > Marser © (09.09.07 01:30) [12]
> >
> > Я просто так привык :)
>
> Не. Тебя просто так "привыкли" другие :-)
После универа i и j это ещё и обозначения воображаемой единицы :-)
← →
Германн © (2007-09-09 02:18) [15]
> Marser © (09.09.07 01:39) [14]
>
В догонку. Я вот наверно внутренне какой-то неформал или придерживаюсь нетрадиционной ориентации :-)
У меня после i идут k, n и m. А j ну никогда не использую :-)
← →
Макс Черных © (2007-09-09 03:51) [16]
> Если тип был явно указан, то из-за дурости или низких знаний
> предподователя, а если тип указан, то тем более.
> Неужели все переменные A по умолчанию равны единице?
Очевидно надо повторить историю. Итак, место действия - МВТУ кафедра П6, 1987 год. Препод - некто Ваулин, "горячо" любимый студентами, которые в знак благодарности нанесли на стены кафедрального сортира надпись " Ваулин - фортран чортов, уе##ще бауманское, чтоб на тебя кафедра П6 обвалилась". У этого Ваулина было всего две оценки на экзамене 5 и 2.
Так один отличник на экзамене предъявил ему прогу, где и была печально знаменитая строчка A = 1 при отсутствии явного задания типа переменной А, на что Ваулин ему заявил, что в Фортране переменная начинающаяся на А имеет по умолчанию тип REAL, а константа 1 имеет тип INEGER (а вот константа 1. то есть с точкой, имеет тип REAL). Сие означает, что в предъявленной проге LinkEditor (линкер тогдашний) тупо прицепит вызов подпрограммы перевода целого числа в число с плавающей точкой. А это есть абсолютно ненужное и излишнее расходование машинного (т.е. процессорного) времени. А значит оценка - 2. Студент в шоке было попытался возразить, что мол это преобразование выполнится за тысячную долю секунды. В ответ Ваулин заявил, что если товарищ считает, что все верно и напишет подобное, скажем, в цикле выполняющемся 100 миллионов раз, то это будет болше суток работы ЭВМ в холостую, что при стоимости машиночаса (в те времена) 120 рублей нанесет Родине офигенный ущерб. :) Ну и прогнал бедолагу с позором. А надо то было всего-то написать не "A = 1" а "A = 1."
Потом студенты горько шутили - злобный Шлоссер вырезал точку (© фильм "Вариант Омега"). Вот такая жесть. :) Хотя, по сути, Ваулин был, в общем то, прав совершенно.
← →
Anatoly Podgoretsky © (2007-09-09 12:50) [17]> Германн (09.09.2007 02:18:15) [15]
Не любишь хвостик снизу?
← →
Германн © (2007-09-09 14:09) [18]
> Anatoly Podgoretsky © (09.09.07 12:50) [17]
Не люблю. Хвост, если он есть, должен стоять трубой! :-)
← →
isasa © (2007-09-09 14:45) [19]Макс Черных © (09.09.07 00:12) [9]
Anatoly Podgoretsky © (09.09.07 00:18) [10]
Это правда. Традиция(правило) начатое Fortrun-ом и продолженная PL1(PL/O). Сколько народу на этом пострадало(необъявленной переменной, начинающейся с i,j,r,l, ... присваивается тип BINARY INTEGER), только Богу ведомо.
Вирт, в этом отношении, абсолютно прав, - это зло.
Было предупреждение, но кто их в листингах читает.
зы. В современных книгах видел циклы с индексом x, сразу настораживает. :)
← →
J_f_S (2007-09-09 17:55) [20]
> isasa © (09.09.07 14:45) [19]
> ....
>В современных книгах видел циклы с индексом x, сразу настораживает.
> :)
Почему? Иногда удобно. Вот прогоняешь картинку, например, по пикселям, так x и y удобней чем i и j. Да и все что связано с координатами.
> Макс Черных © (09.09.07 03:51) [16]
Вот чем меньше в системе образования будет таких воинствующих ушлепков-теоретиков, тем лучше. То, что у нас в большинстве случаев технологии разработки ПО ведут люди, которые программистами не были никогда, и не представляют себе ничего выходящего за рамки синтаксиса языка - это ахтунг. К чему этот дешевый понт перед студентами?
> Германн © (09.09.07 14:09) [18]
> > Anatoly Podgoretsky © (09.09.07 12:50) [17]Не люблю.
> Хвост, если он есть, должен стоять трубой! :-)
;)
← →
isasa © (2007-09-09 18:36) [21]J_f_S (09.09.07 17:55) [20]
Почему? Иногда удобно. Вот прогоняешь картинку, например, по пикселям, так x и y удобней чем i и j.
Элементарно ... :)
В данном случае, можно сказать, что человек плохо различает, как раньше выражались, формальные и фактические параметры ... :)
← →
IOs (2007-09-09 19:27) [22]> кстати, через два-три месяца будет десять лет со дня моего знакомства с программированием :-)
СлавнЫй город Винница будя петь и плясать :-)
← →
Юрий Зотов © (2007-09-09 19:40) [23]> J_f_S (09.09.07 17:55) [20]
> Вот чем меньше в системе образования будет таких воинствующих
> ушлепков-теоретиков, тем лучше. То, что у нас в большинстве случаев
> технологии разработки ПО ведут люди, которые программистами не были
> никогда, и не представляют себе ничего выходящего за рамки синтаксиса
> языка - это ахтунг.
В данном случае Вы глубоко заблуждаетесь. Поскольку в рассказанной Максом истории преподаватель, продемонстрировал, помимо знания теории, еще и четкий практический подход, и знания, за синтаксис языка далеко выходящие. ПРичем еще и с полным пониманием того, как все это работает.
Настоящий же ахтунг же заключается в том, что 90% выпускников IT-специальностей ВУЗов программировать, по сути, не умеют. А уж до понимания того, как это все работает им и вообще как до Луны.
И есть основания полагать, что тех студентов, которым этот, как Вы выразились, воинствующий ушлепок, поставил 5, этот самый ушлепок программировать все же научил. И понимать, как все это работает, научил тоже. По-своему, по жесткой методике - но научил.
В отличие от многих других, которых Вы ушлепками почему-то не назвали - хотя именно для них это слово было бы уместнее.
Хотя и тоже неприменимо.
← →
Denis_ © (2007-09-09 19:47) [24]Сурьёзная отповедь.Походу Вы, Юрий, тоже были когда-то преподом?
← →
Desdechado © (2007-09-09 19:47) [25]Есть подозрение, что i, j, k и т.п. в качестве переменных цикла появились еще в бумажной записи всяких сумм. Поэтому к программированию как к таковому отношение имеют слабое.
← →
isasa © (2007-09-09 19:55) [26]Desdechado © (09.09.07 19:47) [25]
Спецификация Fortrun, PL1, PLO для IBM 360/370 дают ответ.
Кроме этого, насколько вспоминаю, стандарт С(и тем более Паскаля) не предполагает объявлений "по-умолчанию".
Да и строгое соответствие формальных и фактических параметров заявленны в этих-же языках.
← →
Юрий Зотов © (2007-09-09 20:19) [27]> Denis_ © (09.09.07 19:47) [24]
Был (правда, недолго), но дело совсем не в этом.
← →
TUser © (2007-09-09 20:22) [28]i - наверное, от слова Integer
А вторая переменная называется j. Третья - k. Это деклается по аналогии с базисными векторами. Имхо.
← →
Desdechado © (2007-09-09 20:30) [29]> isasa © (09.09.07 19:55) [26]
> Спецификация Fortrun, PL1, PLO для IBM 360/370 дают ответ.
Ответ на что? На то, что эти языки появились раньше записи сумм на бумаге?
Ты жжешь!
← →
Kerk © (2007-09-09 20:32) [30]> [23] Юрий Зотов © (09.09.07 19:40)
В том, что студент не знал упомянутого нюанса, недочет препода в том числе. На экзамене студент этот нюанс узнал, теперь он знает, но двойка уже стоит. Первоочередная задача препода вообще какая: поставить оценку или научить? :)
← →
Галинка © (2007-09-09 20:36) [31]Это очень показательный пример. Спасибо за интересную информацию.
Когда программировала на Дельфи, с моей любовью к циклам, i, j, k были самыми популярными короткими идентификаторами. Доставало только одно, что в спецификации Дельфи эти идентификаторы можно было делать только локальными. Т.е. в каждой процедуре, где предполагалось использовать цикл, было необходимо объявить i,j: integer;. Поэтому считаю хорошей идеей появление foreach в библиотеке платформы .net.
← →
Petr V. Abramov © (2007-09-09 20:37) [32]может, препод каждую лекцию заканчивал словами: "и помните про неявное приведение типов". А может, не заканчивал.
← →
Anatoly Podgoretsky © (2007-09-09 20:39) [33]> Kerk (09.09.2007 20:32:30) [30]
С точки зрения работоспособности код полностью работоспособен. А то что у Фортрана плохой компилятор в этой части, так это факт. У него 1 и 1. разные числа, разного типа.
Но на работоспособность это в данном случае не влияет. Точно также будет и для i = 1.
В следующих языках, почти во всех от этого ушли, как и от определения типа по первой букве.
← →
Kerk © (2007-09-09 20:41) [34]> [33] Anatoly Podgoretsky © (09.09.07 20:39)
Я это понял :)
← →
Desdechado © (2007-09-09 20:47) [35]> У него 1 и 1. разные числа, разного типа.
В Си тоже, и это не удивительно.
← →
Зотов (2007-09-09 20:48) [36]> Kerk © (09.09.07 20:32) [30]
В Фортране (а о нем и идет речь) это никакой не нюанс, а элементарнейшая АЗБУКА, и о нем рассказывают ОБЯЗАТЕЛЬНО, просто потому, что входит в программу курса. Стало быть, но каком недочете препода в данном случае и речи быть не может. Спрашивал он тоже в рамках программы (что и обязан был делать), так что и тут его не упрекнешь.
Другое дело, что у него, как говорит Макс, существовали только 2 оценки, с такой крайностью я тоже не согласен. Но не настолько, чтобы называть человека ушлепком только за то, что у него своя методика преподавания и приема экзаменов. За этими делами следит кафедра и учебный отдел - и если бы они сочли, что преподаватель подходит к студентам слишком жестко, его бы уже давно заставили пересмотреть подход, можно не сомневаться. А раз не заставили - значит, не сочли.
← →
Anatoly Podgoretsky © (2007-09-09 20:51) [37]> Kerk (09.09.2007 20:41:34) [34]
Но фортрану можно простить, все таки или первый язык высокого уровня или один из первых, где то середина 50х
← →
Юрий Зотов © (2007-09-09 21:58) [38][36] - мое. Куки потерлись, а по невнимательности неполный ник набрал. Сорри.
← →
isasa © (2007-09-09 22:33) [39]Anatoly Podgoretsky © (09.09.07 20:39) [33]
А то что у Фортрана плохой компилятор в этой части, так это факт. У него 1 и 1. разные числа, разного типа.
:)
Насколько вспоминается этот компилятор наиболее шустрый в плане арифметики с плавающей точкой(в run-time).
← →
Anatoly Podgoretsky © (2007-09-09 23:02) [40]> isasa (09.09.2007 22:33:39) [39]
Я не про скорость, а про синтактический разбор.
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.039 c