![]() |
|
![]() ![]() ![]() |
|
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
Когда-то был даже "базисный Фортран". Насколько помню, нормальных операторов IF (с логическими условиями в нем) в базисном не было вообще -- был только вычисляемый арифметический IF:
IF (выр) метка1, метка2, метка3 => если выр<0, на метку1, если выр=0, на метку2, иначе на метку3. А еще меня совершенно убивали "холлеритовские" строки: 13HHello, world! Это сообщение отредактировал(а) regis - 13.4.2006, 13:34 --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Хорошо, обе конструкции исключены из языка.
![]() ![]() |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
Арифметический IF исключили?! Одна из немногих прелестей, которая нравилась в 77. -------------------- Теперь при чем :P |
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Прелесть, таящая в себе опасности. Давайте не забывать, что метки -- источник лапши в коде. Также компактно и более лаконично эта задача решается через if-then-else. Считаю, что метки нужно вообще убрать из языка. Для индустриальных технологий создания программного обеспечения такое вооружение вообще не подходит, я глубоко убежден. |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
Насчет меток согласен, но можно было бы заменить метки вызовами функций, а не убивать совсем. -------------------- Теперь при чем :P |
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
||||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
IF (F(x)) PROC1, PROC2, PROC3
Т.е. не переход, а вызов процедуры... Как это в нынешнем стандарте выглядит не представляю. Надо попробовать. -------------------- Теперь при чем :P |
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
Так если это очень нужно, это легко реализовать самому (напишите процедуру, которая первым аргументом принимает выражение, а еще тремя -- ссылки на вызываемые функции).
--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
Как два байта... Вот только посмотрев машинный код, мы увидим лишний переход. В принципе это должно решаться inline-функциями, но есть ли они в современном фортране? В 77 не было, как я помню. -------------------- Теперь при чем :P |
|||
|
||||
FatalError |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 11.4.2006 Репутация: нет Всего: 1 |
regis
Не знаю, мне казалось, довольно удобная штука. Но поддержку этого дела вырубили радикально и повсеместно. |
|||
|
||||
Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Да, выглядит практично. В последнем стандарте такой формы if нет ни в каком проявлении. Будет много лишнего времени тратиться на вызов функций. inline-функции -- прерогатива компилятора. Устанавливается это дело директивами или опциями компиляции. Например, в Intel есть т.н. High Level Optimization, который смотрит в том числе, где бы эффективно заinlineить. Удобно? -- нужно же было считать число символов в строке, а если строку потом менять, то повторное использование совсем будет неэффективным. Я за их отмену. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Fortran | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |