Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 00:36

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: GO TO, Дейсктра и все-все-все
СообщениеДобавлено: Ср июн 13, 2012 23:04 
Хищник писал(а):
Удобнее выводить текст порциями, при этом перед PRINT можно позиционировать курсор с помощью GOTOXY.

Одно лишь это предложение напрочь лишило меня желания знакомиться с Кварком. Возможно я глубоко ошибаюсь, но мне представляется, что ортодоксальный Форт не поощряет использования слов вроде print и goto, более того, у нас, канонических фортеров, их употребление вызывает нескрываемое омерзение. Между прочим, вероятно, тот факт, что в классическом Форте, по умолчанию, отсутствуют print и goto, заставляет неофитов усмотреть его связь с ФЯП, где также всё реализуется посредством функций.
Эх, Хищник, видать и ты, брат, в отрочестве не избежал дурного влияния еретических наречий. Только не надо вот упирать на то, что времена меняются, что то, что вчера считалось моветоном, сегодня - насущная необходимость и пр., к счастью, не все из нас прогнулись под изменчивый мир!


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Ср июн 13, 2012 23:08 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Zinger писал(а):
Одно лишь это предложение напрочь лишило меня желания знакомиться с Кварком. Возможно я глубоко ошибаюсь, но мне представляется, что ортодоксальный Форт не поощряет использования слов вроде print и goto, более того, у нас, канонических фортеров, их употребление вызывает нескрываемое омерзение. Между прочим, вероятно, тот факт, что в классическом Форте, по умолчанию, отсутствуют print и goto, заставляет неофитов усмотреть его связь с ФЯП, где также всё реализуется посредством функций.

Если посмотреть внимательнее, то еретический goto превращается в милый и безобидный GOTOXY (см. Турбо Паскаль, например), который всего-то навсего устанавливает позицию курсора для последующего вывода символов :) Слово PRINT есть комбинация COUNT и TYPE, введенная когда-то в незапамятные времени ДОС-программирования, да так и прижившаяся.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Чт июн 14, 2012 04:44 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Zinger писал(а):
Возможно я глубоко ошибаюсь, но мне представляется, что ортодоксальный Форт не поощряет использования слов вроде print и goto,


Ой... Когда-то ортодоксы ввели в язык Форт цензуру? Чой-та не замечал...

Zinger писал(а):
более того, у нас, канонических фортеров, их употребление вызывает нескрываемое омерзение.


что-то мне это "канонических фортеров" напоминает "сферо-коне-вакуумных фортеров".

чем вам не угодила печать, ума не приложу.

Хотя, с безусловными переходами понятно - натуральный дейкстримизм...

Дейсктра весело все устроил... охаял безусловный переход, а то, что он принципиально используется внутри операторов управляющих потоком исполнения программ оставил "за бортом"...
Дык, еще бы! Он же "программист высокого уровня!" Ему недосуг что там делается внутри if и case, это же дело "низкоуровневых чернорабочих"...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Пт июн 15, 2012 00:28 
WingLion

Вы не так поняли, и, что показательно, как меня, так и Дейкстру. Во-первых, нет, конечно, Отцы Форта не вводили никаких запретов и ограничений, наоборот, всячески старались их избежать, что у них с блеском и получилось. Но дело совсем не в этом, а в том, что, исходя из своеобразия базовых принципов, конструкции, природы и фундаментальной идеи лежащей в основании Форта, следует вывести ясные представления о том, что такое хорошо и плохо применительно к Форту. Как ни странно, но философия Форта проста и гениальна, сводится же она к тому, что Форт будет тем, чем ты захочешь, в соответствии с этим предоставляется законченный набор неделимых элементов (атомов, генов, назовите как хотите), позволяющий за счёт их комбинирования развернуть систему любой степени сложности. Принимая это во внимание, несложно догадаться, что предопределение всякой сущности (слова), не являющейся краеугольной составной единицей для эволюции системы, то есть такой, которой можно пренебречь, или, другими словами, реализовать впоследствии, - нами, дзэн-фортерами, воспринимается как святотатство и недопустимая избыточность.

Касаемо goto, смею вас заверить, ни я, ни Дейкстра, мы ни в коем случае не призываем к тотальному упразднению этого оператора как такового везде и всюду. Заметьте что пишет сам Гуру:
Цитата:
За многие годы я утвердился во мнении о том, что квалификация программистов - функция, обратно зависящая от частоты появления операторов go to в их программах. Позже я открыл, почему оператор go to производит такой пагубный эффект, и я убежден в том, что оператор go to должен быть отменен в языках программирования "высокого уровня" (т.е. отовсюду, кроме, возможно, простого машинного кода). В то время я не счел это открытие слишком важным. Теперь же я отправляю свои соображения для публикации, потому что меня подтолкнула к этому развернувшаяся сейчас дискуссия на эту тему.

Из вышесказанного ясно, что речь прежде всего идёт о ЯП высокого уровня, впрочем, как часто случается с великими умами, Дейкстру слегка заносит, не возбраняется использовать goto и в таких языках, как ассемблер и Си (как говорится, уже не модно, но многие привыкли, без goto и жизнь не мила), а не в одном лишь машинном коде. К тому же, есть класс весьма специфических задач, в которых goto приходится очень кстати, так что если очень хочется и, главное, наблюдается острая необходимость, то можно снизойти и до goto (даже на Форте). Единственное, на чём мы с Дейкстрой настаиваем и стремимся подчеркнуть во избежание пагубного пристрастия многих начинающих, да и не очень, программистов, так это то, что злоупотребление оператором goto первый признак того, что необходимо пересмотреть свои взгляды на программирование, ибо это свидетельство чрезвычайно низкой культуры программирования.

Надеюсь теперь понятно, почему print и goto прямо противоречат эстетике Форта?


Хищник

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


зы
Я буду вне себя от счастья, если хоть один из тех, кто прочтёт это сообщение, наконец осознает, до чего же нам, фортерам, смешно, когда мы слышим о том, что в Форте по умолчанию должны быть реализованы типы, строки и т.п. К сожалению, такие предложения может вносить только человек, напрочь лишённый понимания Духа Форта, либо же его сознание покалечено третьесортным ширпотребом. Нужны строки - делай, какие-либо препятствия отсутствуют; не нужны - тогда зачем?
Стакан наполовину полон...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Пт июн 15, 2012 00:33 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Zinger писал(а):
Надеюсь теперь понятно, почему print и goto прямо противоречат эстетике Форта?

Мне, например, все равно непонятно :) Все про goto, конечно, хорошо, но речь-то идет не об операторе перехода, а о команде установке позиции курсора. Просто пара буковок совпала.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Пт июн 15, 2012 00:47 
Хищник писал(а):
Zinger писал(а):
Надеюсь теперь понятно, почему print и goto прямо противоречат эстетике Форта?

Мне, например, все равно непонятно :) Все про goto, конечно, хорошо, но речь-то идет не об операторе перехода, а о команде установке позиции курсора. Просто пара буковок совпала.

В таком случае примем, что мои замечания относились к следующим словам Винглиона:
WingLion писал(а):
Дейсктра весело все устроил... охаял безусловный переход, а то, что он принципиально используется внутри операторов управляющих потоком исполнения программ оставил "за бортом"...

Полагаю, если так, то недоразумений, вроде бы, возникнуть не должно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Пт июн 15, 2012 07:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Я вот чего не пойму, в чем проблема goto? Чего это вокруг него столько шума?
Википедия писал(а):
оператор безусловного перехода (перехода к определённой точке программы, обозначенной номером строки либо меткой). В более широком смысле, под «GOTO» подразумевают любой такой оператор, даже если в рассматриваемом языке он называется по-другому

Рассуждаем логически: CALL - безусловный вызов слова в форте, название слова - метка. Это переход "назад", еще есть вектора - это переход вперед. Да, в словах обычно в конце есть RET. Ну и что - стек возвратов полностью открыт. Тот же самый goto. Получается, весь форт только из одних goto и состоит. Следуя логике Дейкстры, качество кода форта обратно пропорционально количеству слов этого форта. Выводы: форт плохой и программировать на нем нельзя, а написанный на нем код самый низкокачественный в мире. И чё? Это что, мне теперь надо срочно переходить на С#(A, B и т.д.)? Простите, а кто это вообще такой, этот Дейкстра? Какая мне разница, что написал в какой-то там статье неизвестный мне мужик аж в марте 1968 года? А то, что сегодня как бы 2012 никто не заметил, да? На заборе тоже написано &%#, а там - дрова. Я как бы намекаю, что стоило бы идти вперед, а не ходить кругами назад.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс июн 17, 2012 00:37 
Сократ - человек, следовательно всякий человек - Сократ. Что же, подобная логика хорошо известна.

Однако при рациональном подходе выяснится, что классический инвариант goto в Форте всё-таки отсутствует, о чём прямо говорит та же самая статья из Википедии:
Цитата:
GOTO отсутствует в некоторых языках высокого уровня, например в Forth (но может быть реализовано средствами самого языка).


Пренебрежение большими авторитетами иногда может быть весьма полезно, действительно, есть масса сомнительных имён, чьё отношение к computer scince надлежит рассматривать с высокой долей скепсиса, взять хотя бы столь затрапезных персон, как Тьюринг и фон Нейман, непонятно чем таким особенно выдающимся прославившихся. Но должен предупредить, всякое нелицеприятное выражение в адрес сэнсея я расцениваю как личное оскорбление, что не оставляет мне ничего иного, кроме как обнажить катану - понимаю, кому-то может показаться слишком сурово, но, простите, не в моей власти игнорировать кодекс самурая!

В любом случае, нравится или нет, но именно Дейкстра существенно повлиял на ситуацию вокруг оператора goto. Ему, больше чем кому бы то ни было, мы обязаны тем, что в современных ЯП чаще всего накладываются жёсткие ограничения на использование goto. К тому же, среди высококлассных программистов неспособность обойтись без goto считается признаком низкой квалификации. Вообще, да будет вам известно, Бёма и Якопини доказали, что в природе не существует такой задачи, которой нельзя бы было решить, не пользуясь при этом оператором безусловного перехода, другое дело, что при решении некоторых, их абсолютное меньшинство, проблем, goto смотрится вполне органично.

Вопрос реализации Форта, то есть, его ВМ, мы оставляем за бортом, на совести отдельных разработчиков. Внутри правильных Фортов злоупотребления goto не наблюдается, от кустарных же поделок изыска ожидать сложно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Багрепорты Quark
СообщениеДобавлено: Вс июн 17, 2012 00:54 
Не в сети

Зарегистрирован: Вс апр 25, 2010 11:14
Сообщения: 200
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Zinger писал(а):
Сократ - человек, следовательно всякий человек - Сократ. Что же, подобная логика хорошо известна.

Однако при рациональном подходе выяснится, что классический инвариант goto в Форте всё-таки отсутствует, о чём прямо говорит та же самая статья из Википедии:
Цитата:
GOTO отсутствует в некоторых языках высокого уровня, например в Forth (но может быть реализовано средствами самого языка).


Пренебрежение большими авторитетами иногда может быть весьма полезно, действительно, есть масса сомнительных имён, чьё отношение к computer scince надлежит рассматривать с высокой долей скепсиса, взять хотя бы столь затрапезных персон, как Тьюринг и фон Нейман, непонятно чем таким особенно выдающимся прославившихся. Но должен предупредить, всякое нелицеприятное выражение в адрес сэнсея я расцениваю как личное оскорбление, что не оставляет мне ничего иного, кроме как обнажить катану - понимаю, кому-то может показаться слишком сурово, но, простите, не в моей власти игнорировать кодекс самурая!

В любом случае, нравится или нет, но именно Дейкстра существенно повлиял на ситуацию вокруг оператора goto. Ему, больше чем кому бы то ни было, мы обязаны тем, что в современных ЯП чаще всего накладываются жёсткие ограничения на использование goto. К тому же, среди высококлассных программистов неспособность обойтись без goto считается признаком низкой квалификации. Вообще, да будет вам известно, Бёма и Якопини доказали, что в природе не существует такой задачи, которой нельзя бы было решить, не пользуясь при этом оператором безусловного перехода, другое дело, что при решении некоторых, их абсолютное меньшинство, проблем, goto смотрится вполне органично.

Вопрос реализации Форта, то есть, его ВМ, мы оставляем за бортом, на совести отдельных разработчиков. Внутри правильных Фортов злоупотребления goto не наблюдается, от кустарных же поделок изыска ожидать сложно.


Столько слов ни о чём.


M И зачем было все их цитировать?
(Флуд про go to и Дейкстру вынесен из темы Кварка, как не относящийся к делу.)



Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: GO TO, Дейсктра и все-все-все
СообщениеДобавлено: Вс июн 17, 2012 04:33 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Zinger писал(а):
что классический инвариант goto в Форте всё-таки отсутствует



Потому что Форт - не Бейсик.

A классический безусловный переход в Форте есть (BRANCH) и без него Форт станет одноногим, одноглазым и одноухим.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: GO TO, Дейсктра и все-все-все
СообщениеДобавлено: Пн июн 18, 2012 10:58 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Zinger писал(а):
при решении некоторых, их абсолютное меньшинство, проблем, goto смотрится вполне органично.

goto в Форте реализовать не проблема. Однако, вместо goto вполне подойдет другой набор структурных операторов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: GO TO, Дейсктра и все-все-все
СообщениеДобавлено: Пн авг 06, 2012 19:00 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Впечатление от прочтения топика :
Пророк Дейкстра поклал запрет на прямое позиционирование курсора.
Изыди gotoxy ! Позиционируйте структурно ! :))

Изображение


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB