OberonCore
https://forum.oberoncore.ru/

О парадоксе Блаба и макросах
https://forum.oberoncore.ru/viewtopic.php?f=61&t=1914
Страница 7 из 8

Автор:  kreol [ Понедельник, 05 Октябрь, 2009 12:22 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Иван Кузьмицкий писал(а):
Наблюдаю острую некогерентность в Вашем высказывании. Сначала говорите о конкретном "Gnu's not Unix", потом говорите, что рекурсия - абстрактное понятие. Я понимаю, Вам хочется элитности, но её тут нет.

Как сотворяющее само себя, отражение в зеркале - бытовая рекурсия. Уроборос - древнейший символ рекурсии. Я уже не говорю о Библии, где человек - тоже рекурсия.

Это считается здесь правилом хорошего тона - видеть то, чего нет и спорить о пустом? В n-ный раз повторю: суть высказывания была в том, что рекурсия не является простой для изучения темой, во-всяком случае, не проще концепции макросов. Вы же непонятно зачем начинаете спор о том, что рекурсия есть в повседневной жизни. Да нету её там. Пример с уроборосом - бред, иначе собака бегающая за своим хвостом по кругу, тоже была бы рекурсивной. Попробуйте на таком примере хоть одному человеку объяснить рекурсию. Отражение в зеркале - цикл, перечитайте ещё раз статью про рекурсивное определение на Википедии - где здесь базовые случаи? Где конечное стоп-значение? Про библию - то же самое, судя по всему то, что Вы хотите назвать рекурсией, 99% населения назовут наследованием, максимум, циклом перерождения. У всех вещей в природе, которые могут показаться Вам, именно Вам, рекурсивными, у подавляющего большинства не-программистов есть другой, не рекурсивный и более простой способ определения.
И если Вам всё ещё хочется спорить о пустом, непонятно зачем выискивая примеры "рекурсии" в природе, то для начала перечитайте Сассмана и Абельсона про рекурсивные процессы и процессы, на самом деле являющиеся циклическими, и в дальнейшем по крайней мере приводите примеры рекурсивных процессов в природе.

Автор:  Иван Кузьмицкий [ Понедельник, 05 Октябрь, 2009 13:02 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

И причём здесь рекурсивные процессы и итерации в формулировках Сассмана и Абельсона? Вы утверждаете, что "рекурсии ни в природе, ни в обиходе нет", я возразил, что есть. И был неправ, ибо формулировок Сассмана и Абельсона в природе нет, действительно - а только в книжке.

А вот рекурсия в природе и быту встречается часто, рекомендую почитать Анисимова "Мифы. Алгоритмы. Язык": http://lib.web-malina.com/getbook.php?bid=570

И вполне понятное явление. Также понятно желание выдать простое за элитное.

P.S. Уроборос - это не собака с хвостом. Он порождает сам себя, по Сассману и Абельсону это и есть рекурсия.

Автор:  Borg [ Понедельник, 05 Октябрь, 2009 13:06 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Sergey Oborotov писал(а):
Илья Ермаков писал(а):
Но всё равно нужно накладывать поверх лексику, морфологию, грамматику?
Вы предлагаете вообще ими не пользоваться? Или в данном случае они отсутствуют?

Это какой то глупый спор. Есть предметная область и для нее можно разработать адекватный, естественный инструмент - нет конечно гланды можно и через анус оперировать, но зачем?! Если брать уровень букв - инструмент один, если уровень предложений - инструмент другой. Утверждать, что для любого уровня есть универсальный адекватный инструмент - господа, вы вспомните математику. В алгебре свои методы, в матанализе свои, а в логике третие. Они могут смешиваться давая новые результаты недоступные стандартным методам, но для большинства стандартных задач в каждой предметной области есть свой стандартный набор методов.

Автор:  Сергей Оборотов [ Понедельник, 05 Октябрь, 2009 18:38 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Уровень букв в качестве примера только. Речь вообще-то о макросах. В каждой предметной области они могут быть свои тоже.

Автор:  kreol [ Понедельник, 05 Октябрь, 2009 22:58 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Иван Кузьмицкий писал(а):
А вот рекурсия в природе и быту встречается часто, рекомендую почитать Анисимова "Мифы. Алгоритмы. Язык": http://lib.web-malina.com/getbook.php?bid=570

Наверное, я слишком чопорный, но представление жизни и сна в виде рекурсивных процедур мне кажется бредом и ужасным сравненим. Ну да ладно, это не интересно, гораздо интереснее другое - где вообще, по-вашему, граница между циклом и рекурсией? Не, я ж не спорю, что любой циклический процесс можно представить через рекурсию, однако думать о нём (процессе) в рекурсивном виде, как правило, гораздо сложнее, чем в итерационном. Хотите пример первоклассной рекурсии? Описание целых чисел в терминах лямбда-исчисления:
Код:
0 - ноль
S(0) - один
S(S(0)) - два
S(S(S(0))) - три

где S - функция увеличения на единицу. Накопление видите? Отложенные вычисления видите? Такое описание невозможно переписать в цикл, оно является рекурсивным. Именно об этом пишут Абельсон и Сассман. Так же есть одно базовое состояние (ноль), и это делает данное описание рекурсивным по Википедии. (Ваш уроборос, кстати говоря, ну никак не вписывается ни в одно, ни в другое правило, и визуально изображается как круг, то есть цикл. )
И Вы считаете такое определение чисел простым?

Иван Кузьмицкий писал(а):
И вполне понятное явление. Также понятно желание выдать простое за элитное.

Что значит "элитный" в программировании?

И всё-таки ответьте на вопрос: зачем мы это обсуждаем? Вы правда считаете рекурсию элементарной темой для обучения, а макросы - сверхсложной? Увы, даже присутствующие здесь преподаватели не смогут нам дать эмпирических данный, т.к. вряд ли обучали студентов писать макросы, поэтому я доверяюсь Спольски и своему опыту, и считаю и рекурсию, и макросы - проблемами одного порядка сложности. Если Вы с этим не согласны, приведите хотя бы пример другого авторитетного мнения, иначе разговор и дальше будет ни о чём.

Автор:  Илья Ермаков [ Понедельник, 05 Октябрь, 2009 23:05 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Макросы для обучения - не сверхсложная, а сверхбесполезная тема.

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

Макрос не является понятием языка программирования.

Макрос - это способ обработки текста. А обрабатывать тексты (и программные) надо уметь вообще. Любым нужным образом. Хоть по типу макросов, хоть не макросов. Понадобился препроцессор - написали. На полчаса делов.

Автор:  Иван Кузьмицкий [ Вторник, 06 Октябрь, 2009 08:39 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

kreol писал(а):
И всё-таки ответьте на вопрос: зачем мы это обсуждаем? Вы правда считаете рекурсию элементарной темой для обучения, а макросы - сверхсложной?


Я вообще не про макросы, если это ещё не заметно. Я про рекурсию, которая известна давным-давно, ещё до программирования. И не про обучение рекурсии. Футбольный мяч - простая штука, а техника игры мячом может быть сложной. Как теперь я вижу, в Вашем утверждении "рекурсии нет ни в природе, ни в быту", слились как рекурсия вообще, так и тонкости описания и использования по Абельсону и Сассману.

А я про обобщение рекурсии. Кстати, в Вашем первоначальном высказывании шла вовсе не про обучение программистов рекурсии, а про понимание рекурсии вообще.

Так вот, рекурсия для понимания вообще - крайне простая штука. Она простая настолько, что это трудно осознать. Поэтому и уроборос, и другие примеры Вам кажутся бредом. А выдавание рекурсии за сложную вещь - это признак элитарности. Мол, "это сложно, но я-то знаю и вам объясню".

Что там с границами между рекурсией и итерацией - это чисто технические вещи, которые надо просто применять. И Абельсон с Сассманом применяют, не выпадая в схоластику.

Что касается обучения макросам, то я считаю это вредным занятием для подготовки кадров. На производстве д.б. стандарты, и им надо следовать. Если каждый будет фигачить свой макроязык, то это будет крайне неудобно поддерживать. В этом отношении, максимально простой, ёмкий и жёстко фиксированный язык типа оберона является наилучшим решением.

Автор:  Geniepro [ Вторник, 06 Октябрь, 2009 09:13 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Но всё равно останется проблема "Если каждый будет фигачить свою библиотеку процедур/классов, то это будет крайне неудобно поддерживать.".
Или Вы считаете, что одна проблема -- лучше чем две? :roll:

Автор:  Валерий Лаптев [ Вторник, 06 Октябрь, 2009 09:21 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Иван Кузьмицкий писал(а):
А вот рекурсия в природе и быту встречается часто, рекомендую почитать Анисимова "Мифы. Алгоритмы. Язык": http://lib.web-malina.com/getbook.php?bid=570

Данный адрес вызвал у моего Касперского панику и кучу мата. Типа этот сайт крадет пароли, пин-=коды и прочее...

Автор:  Info21 [ Вторник, 06 Октябрь, 2009 10:09 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Иван Кузьмицкий писал(а):
Футбольный мяч - простая штука, а техника игры мячом может быть сложной.
Буду цитировать :)

Автор:  Valery Solovey [ Вторник, 06 Октябрь, 2009 11:30 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Илья Ермаков писал(а):
Макрос - это способ обработки текста.
Насколько мне известно: macros -> macro -> macrocommand. И в общем случае макросы к обработке текста отношения не имеют.

Автор:  Valery Solovey [ Вторник, 06 Октябрь, 2009 11:33 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

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

Автор:  Максим Андреев [ Вторник, 06 Октябрь, 2009 16:45 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Valery Solovey писал(а):
Илья Ермаков писал(а):
Макрос - это способ обработки текста.
Насколько мне известно: macros -> macro -> macrocommand. И в общем случае макросы к обработке текста отношения не имеют.


Википедия писал(а):
Макрос (от англ. macros, мн.ч. от macro) — программный объект, при обработке «развёртывающийся» в последовательность действий или команд.

Макросы в Лиспе
...
Итак, макрос - это форма, которая во время вычисления заменяется на новую, обычно более сложную форму, которая затем вычисляется, но вычисления на втором этапе производится вне контекста макровызова, и поэтому статические связи из макроса не действуют. В заключение следует отметить, что написание макросов (как любых функций из области метапрограммирования) является существенно более сложной задачей, чем определение обычных функций, поскольку нужно точно представлять, что вычисляется на этапе расширения, а что на втором этапе.
...

Автор:  Borg [ Вторник, 06 Октябрь, 2009 17:14 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Да, именно так. Не стоит путать макрокоманды С с макросами в том же Лиспе.

Автор:  kreol [ Среда, 07 Октябрь, 2009 03:19 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Иван Кузьмицкий писал(а):
Я вообще не про макросы, если это ещё не заметно.

А, то есть цель последних n постов - помусолить тему, кто прав, кто виноват? А я то думал, мы тут о чём-то дельном говорим. Если Вы считаете, что в программировании есть некий "элитный" уровень, и тем более, что кто-то из нас уже достиг его, то Вы уже остановились в своём развитии. Рекурсия обладает своей степенью сложности, достаточной, чтобы меня о ней спрашивали на собеседовании, а 28-летний переученный программист затруднялся написать рекурсивный обход дерева. Это далеко не самая сложная вещь (скорее наоборот - базовая для многих областей) однако чтобы её правильно применять (читайте успешно создавать и использовать рекурсивные алгоритмы), не помешало бы понимать различия между циклическими и рекурсивными объектами (процессами, структурами), а также рекурсивным определением циклических процессов.
Однако всё это не имеет отношения к обсуждению. Рекурсию я привёл как пример темы, не менее сложной, чем макросы (читайте, макросы объявил не более сложными, чем рекурсию). И, не может быть (!), со мной наконец согласились, перестав обвинять макросы в сложности. Вместо этого, правда, назвали её вредной и сверхбесполезной при обучении, но с этим я спорить уже не собираюсь - не хочется ещё раз писать столько бесполезного текста.

Иван Кузьмицкий писал(а):
А я про обобщение рекурсии. Кстати, в Вашем первоначальном высказывании шла вовсе не про обучение программистов рекурсии, а про понимание рекурсии вообще.

Вот это вообще не понял. А как Вы собираетесь понять что-то, если не будете это изучать? Или Вы про разные формы оценки сложности понятия? Ну так я Вам предложил несколько вариантов, от колмогоровской сложности до обучения студентов, Вы не выбрали ни одного, я взял последний, раз уж тут много преподавателей.

Автор:  Илья Ермаков [ Среда, 07 Октябрь, 2009 07:31 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Сама идея рекурсии проста.

Но вот научиться видеть, во что она развёртывается конкретно - действительно новичкам непросто. Могут писать "почти правильно", но недопонимать, как это выполняется; потестили - вроде работает, но ищет не первый, а, например, последний элемент в дереве...

Автор:  Иван Кузьмицкий [ Среда, 07 Октябрь, 2009 08:14 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

kreol писал(а):
Иван Кузьмицкий писал(а):
А я про обобщение рекурсии. Кстати, в Вашем первоначальном высказывании шла вовсе не про обучение программистов рекурсии, а про понимание рекурсии вообще.

Вот это вообще не понял. А как Вы собираетесь понять что-то, если не будете это изучать?


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


Пояснение сложности понимания макросов с помощью рекурсии как аналогии - неверное, потому что рекурсия в своей сути проста и природно/обиходно наличествует. Вот и всё.

P.S. Рекомендую всё же всерьез воспринимать Анисимова, который у Кнута учился...

Geniepro писал(а):
Но всё равно останется проблема "Если каждый будет фигачить свою библиотеку процедур/классов, то это будет крайне неудобно поддерживать.".
Или Вы считаете, что одна проблема -- лучше чем две? :roll:


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

Автор:  kreol [ Четверг, 08 Октябрь, 2009 01:45 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Иван Кузьмицкий писал(а):
Язык - формальная нотация и библиотека/класс - нечто, выраженное с помощью этой нотации. Достаточно знать нотацию, чтобы понять написанное. А макросы, в понимании меняющейся нотации, уже усложнят дело.

В Лиспе нотация - это скобки. Отличие от других языков только в том, что там все конструкции имеют одинаковую форму вместо того, чтобы резервировать специальный синтаксис для каждого нового понятия.

Автор:  Илья Ермаков [ Четверг, 08 Октябрь, 2009 08:40 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Как уже отмечалось, сия красивая рафинированная математическая идея может быть довольно скользкой, из соображений реального мира.

Автор:  Geniepro [ Четверг, 08 Октябрь, 2009 10:46 ]
Заголовок сообщения:  Re: О парадоксе Блаба и макросах

Не очень конкретно и конструктивно. Так вообще можно заявить, что "Жизнь -- штука вредная, от неё умирают"...

Страница 7 из 8 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/