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: О парадоксе Блаба и макросах |
Но всё равно останется проблема "Если каждый будет фигачить свою библиотеку процедур/классов, то это будет крайне неудобно поддерживать.". Или Вы считаете, что одна проблема -- лучше чем две? |
Автор: | Валерий Лаптев [ Вторник, 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 писал(а): Но всё равно останется проблема "Если каждый будет фигачить свою библиотеку процедур/классов, то это будет крайне неудобно поддерживать.". Или Вы считаете, что одна проблема -- лучше чем две? На мой взгляд, всё же это разные вещи. Язык - формальная нотация и библиотека/класс - нечто, выраженное с помощью этой нотации. Достаточно знать нотацию, чтобы понять написанное. А макросы, в понимании меняющейся нотации, уже усложнят дело. К тому же, читая текст программы, надо представлять себе, как он выполнится. Ну а макросы, по-моему, только затуманивают это дело. |
Автор: | 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/ |