OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 17:19

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: О пошаговой отладке
СообщениеДобавлено: Пятница, 10 Октябрь, 2008 17:33 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Info21 писал(а):
свидетельства про пошаговый отладчик нужно собирать в отдельную веточку (может быть, в Высшем образовании?).


Итак:

viewtopic.php?p=19503#p19503
AVC писал(а):
Евгений, я больше 20 лет пишу на Си/Си++. И пошаговым отладчиком не пользуюсь. Это не связано с Обероном, о котором я узнал лет 5 назад.
Возьмите хотя бы книгу Кернигана и Пайка "Практика программирования". Там Вы тоже прочтете, что они практически не пользуются пошаговым отладчиком (в отличие от посмертного). А ведь они пишут не на Обероне, и выдача необероновских посмертных отладчиков, как правило, куда менее информативна, т.к. не используется метаинформация.


Также ссылки:
viewtopic.php?f=1&t=15
http://www.inr.ac.ru/~info21/blackbox/d ... lcome.html
http://www.inr.ac.ru/~info21/blackbox/d ... _otlad.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Суббота, 11 Октябрь, 2008 22:30 

Зарегистрирован: Вторник, 18 Сентябрь, 2007 08:48
Сообщения: 108
Хмм... Начинал с Turbo Pacscal 6.0 в 1994 году. Времена DOS. Мой учитель (за обучение я ему безмерно благодарен) начинал ёще в 1984, с DEС'овских машин. Так вот, за исключением отладчика, никаких принципов не было в списке, что я упомянул. Дебаггер чем хорош? Тем, что позволяет заглянуть за границу кухни. Особенно (это важно!) для начинающих. К примеру, подсмотреть значение адреса переменной (любят нас сишники упрекать. что не умеем работать с указателями) + ассемблерный код + понятие, как работает программа (и компилятор).
Чем современные IDE хороши? Гибкостью. Не нужна подсветка? Можно отключить. Лишние тулбары - аналогично. Хотите пользуйтесь дебаггером, хотите - нет. Дебаггером пользуюсь редко, и то в случае логических ошибок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Суббота, 11 Октябрь, 2008 22:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
По поводу "подсмотреть значение" - не обсуждаем, т.к. это не касается пошагового отладчика и в ББ поддерживается лучше, чем в других компилирующих средах.

По поводу "границ кухни": а надо ли это начинающим? Пусть немного знают о том, что такой машинный код где-то там снизу есть. И довольно. Потом будут изучать курсы ассемблера. На самом деле, я в предмете "Алгоритмизация и программирование" вынужден наоборот гасить чрезмерный интерес к железке (слишком она "гипнотизирует" сразу учащихся), в стиле высказывания Дейкстры: "Программирование имеет отношение к компьютерам ровно в той же степени, в какой астрономия к телескопам".

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Суббота, 11 Октябрь, 2008 23:53 

Зарегистрирован: Вторник, 18 Сентябрь, 2007 08:48
Сообщения: 108
Илья Ермаков писал(а):
Надо, чтобы учащиеся действительно "пощупали" процесс, инициируемый алгоритмом. Эта задача не решается пошаговым отладчиком.


Не согласен. К примеру. алгоритмы сортировок (перестановки, Шелла или быстрой) с помощью отладчика гораздо нагляднее.
По поводу ассемблерного кода. Да, интересно глянуть, насколько эффективно Паскаль (Delphi) генерирует инструкции, но на первых порах интересует значение переменной (или возможность присвоить значение переменной- на более позднем этапе, с приобретением опыта), либо само значение переменной по известному адресу. Можно воочию поиграться с массивами, записями, указателями, указателями на указатели и т.д. Заметьте - на уровне кода Паскаля (Delphi).
Если вкратце - некоторые вещи для меня оказались открытием с применением дебаггера.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 08:31 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
У меня двойственное ощущение.

С одной стороны, мой начальный опыт развития совпадает с тем, что описал Эдуард. То есть, отладка программ с помощью пошагового исполнения, возможность "видеть" состояние на каждом шаге - ты "вживую" наблюдаешь за поведением вычислителя имени фон Неймана. И на самом деле, такое продвигает в понимании внутренней "кухни", а в тот исторический период (компы были "слабыми" - мало ОЗУ, сегментация памяти, прямой доступ к видео, портам и.т.п.) это было действительно необходимо.

С другой стороны, когда начал делать программы, где останавливать вычислителя просто нельзя было (алгоритмы зависели от dt в реалтайме), то отладчик отпал сам собой (кстати, а как использовать отладчик в параллельных вычислениях, я вапще не представляю!). Потом перешёл на оберон - а тут вообще ситуация интересная! Ход исполнения прекрасно наблюдается по исходнику без применения спец.инструментов типа отладчика. Разница между тем, что ты написал, и тем, как выполняется программа - минимальна. Если возникает надобность в отладчике, то, скорее всего, программа на обероне составлена неправильно.

Я думаю, что если придерживаться виртовской идеологии, когда сознание программиста должно быть отделено от особенностей вычислителя, то отладчик не нужен, и даже вреден, т.к. нарушает картину. А вот в других случаях, когда кишки вычислителя открыты взору, то нужен крайне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 10:19 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Edward Ivanov писал(а):
Не согласен. К примеру. алгоритмы сортировок (перестановки, Шелла или быстрой) с помощью отладчика гораздо нагляднее.

К тому времени, как даются алгоритмы сортировок (второе полугодие ориентировочно, если старшеклассникам - первокурсникам, не раньше), у учащихся уже должны от зубов отлетать схемы циклов и иметься ясное понятие об инварианте. И "нагляднее" должно быть путём записи инварианта ("рельсов", по которым цикл "ездит"). Такого уровня абстрактное мышление должно быть уже в 9-10 кл., не говоря про ВУЗ.

Цитата:
на первых порах интересует значение переменной (или возможность присвоить значение переменной- на более позднем этапе, с приобретением опыта), либо само значение переменной по известному адресу. Можно воочию поиграться с массивами, записями, указателями, указателями на указатели и т.д. Заметьте - на уровне кода Паскаля (Delphi).

Не, мне интересно, Вы ББ в глаза хоть видели? Куда уж нагляднее "поиграццца", чем прямо мышкой по гиперссылкам типизированного дампа стека и памяти?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 10:51 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Иван Кузьмицкий писал(а):
Потом перешёл на оберон - а тут вообще ситуация интересная! Ход исполнения прекрасно наблюдается по исходнику без применения спец.инструментов типа отладчика. Разница между тем, что ты написал, и тем, как выполняется программа - минимальна.


Так Оберон в некотором смысле - это "Си 90-го года". Такое же простое представление обобщённого компьютера. Только С а) представление компьютеров 70-х (PDP); б) проектировался без учёта важных требований к нотациям (отчасти вынужденно, т.к., например, памяти было мало на PDP - был нужен крипто-синтаксис, уж потом стали приплетать какую-то "философию С"). Ну и конечно, Оберон включает в себя герметичную и расширяемую ("ООП") систему типов, автопамять и динамическую модульность.


Цитата:
Я думаю, что если придерживаться виртовской идеологии, когда сознание программиста должно быть отделено от особенностей вычислителя, то отладчик не нужен, и даже вреден, т.к. нарушает картину. А вот в других случаях, когда кишки вычислителя открыты взору, то нужен крайне.

Вообще, значимость обучения этим "особенностям вычислителя" сильно преувеличена. Просто самоучкам нюансы низкоуровневого программирования кажутся обычно чуть ли не "тайным знанием", которое приобщает к "касте посвящённых" (разновидность синдрома "компьютерных гениев"). А самоучки мы тут, наверное, почти все. Я прекрасно помню весь этот ход мыслей по себе самому. Пока в 2005 г. не влился в Обероны и не стал образовываться в программировании основательно - и так же учить. Так вот, могу сказать, что в случае такого основательного обучения все эти технические нюансы выеденного яйца не стоят. Вот один мой ученик сейчас работает у меня же в команде. Никогда особых тонкостей "низкоуровщины" или даже системных API я им не давал. И что он от этого потерял? Успешно решает системные задачи, когда нужно; разбирается мгновенно. (Иногда вот оказывается, что ему приходится провозиться с некими нюансами того же WinAPI, которые я бы разъяснил сразу - но ёлки-палки: тем обиднее тратить время на обучение этим закидонам, которые меняются по сто раз на дню и проектируются часто не понятно каким местом...).

Резюме: неужели кто-то всерьёз думает, что человек с нормальным физмат- или техническим образованием, если ему надо, не разберётся с этими "кишками вычислителя" за день-два? А вот переучить "комп. гения" правильно строить циклы - это вам не одна неделя...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 14:12 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Со многим согласен, но фраза
Иван Кузьмицкий писал(а):
Если возникает надобность в отладчике, то, скорее всего, программа на обероне составлена неправильно.
напомнила мне строки известного стихотворения Алексея Константиновича Толстого:
Цитата:
В часы одинокие ночи
Люблю я усталый прилечь...
Разумеется, надобность в отладчике возникает именно тогда, когда программа составлена неправильно. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Значимость вычислителей.
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 14:24 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Илья Ермаков писал(а):
Вообще, значимость обучения этим "особенностям вычислителя" сильно преувеличена. Просто самоучкам нюансы низкоуровневого программирования кажутся обычно чуть ли не "тайным знанием", которое приобщает к "касте посвящённых" (разновидность синдрома "компьютерных гениев"). А самоучки мы тут, наверное, почти все.
Значимость действительно невелика. Кроме того те кто думает , что отладчики раскрывают все особенности вычислителей - заблуждаются.
Илья Ермаков писал(а):
Резюме: неужели кто-то всерьёз думает, что человек с нормальным физмат- или техническим образованием, если ему надо, не разберётся с этими "кишками вычислителя" за день-два? А вот переучить "комп. гения" правильно строить циклы - это вам не одна неделя...
Вы о ком-то конкретно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 14:49 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Я о распространённом типаже, обсуждавшемся на этом форуме в ветке "Психология и социология ИТ".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:08 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Извиняюсь, но тема в форуме "Высшее образование", соответственно вопрос был о быстром освоении вычислителей, а не о типаже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:22 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
Возможно, работа в интерактивном режиме дает отдых голове и некоторую уверенность, что все под контролем, клавиши щелкают, курсор перемещается.. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:25 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Вот и речь о том, что нужна нормальная "высшая образованность", тогда достойных внимания затруднений с техническими деталями не будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сад камней
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:38 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
AVC писал(а):
Разумеется, надобность в отладчике возникает именно тогда, когда программа составлена неправильно. :)
Если быть до конца определенным то когда программа составлена неправильно возникает потребность в её изменении - отладке. Возможно интерактивной, но это на любителя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:41 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Иногда может создаться впечатление, что оберонщики придерживаются каких-то особых и даже экстремистских взглядов. И то им не нужно, и это. :)
Но если приглядеться внимательнее, не такие уж эти взгляды и особенные.
Возьмем для примера главу об отладке из книги Кернигана и Пайка "Практика программирования".
Вот что можно там вычитать.
Цитата:
Отладчики - не единственные средства нахождения ошибок.
Цитата:
Наш личный выбор - стараться не использовать отладчики, кроме как для просмотра стека вызовов или же значений пары переменных.<...>Мы считаем пошаговый проход по программе менее продуктивным, чем усиленные размышления и код, проверяющий сам себя в критических точках.
Цитата:
Хотя отладчики умеют обращаться с программами и в процессе их работы, все же одним из основных их применений является исследование "посмертного" состояния программы.
Цитата:
Какова роль языка? Основной движущей силой в эволюции языков программирования была попытка предотвратить ошибки с помощью возможностей языка. Некоторые такие возможности уменьшают шанс появления целого класса ошибок: проверка диапазонов индексов, ограничение использования указателей или полный отказ от них, сборка мусора, строковые типы данных, типизированный ввод-вывод, строгая проверка типов. Однако некоторые возможности языка напрашиваются на ошибку, например операторы goto, глобальные переменные, свободно используемые указатели, автоматические преобразования типов.
И т.д. и т.п.
Обратите внимание, что это пишут сишные классики! :mrgreen:


Последний раз редактировалось AVC Воскресенье, 12 Октябрь, 2008 15:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:41 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Илья Ермаков писал(а):
Вот и речь о том, что нужна нормальная "высшая образованность", тогда достойных внимания затруднений с техническими деталями не будет.
По-моему лучше не обсуждать прилагательных. Тогда меньше шума просто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:45 

Зарегистрирован: Вторник, 18 Сентябрь, 2007 08:48
Сообщения: 108
Вы думаете , что дебаггер предназначен исключительно для вылавливания ошибок?
Нет, иногда надо разобраться в хитросплетениях кода. Или хитрые и многократные вызовы функций, нанизанных друг на друга некоторых товарищей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:46 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
AVC писал(а):
Разумеется, надобность в отладчике возникает именно тогда, когда программа составлена неправильно. :)
Ну, я сказанул, конечно - масло масляное, вода мокрая :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 15:53 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Edward Ivanov писал(а):
Вы думаете , что дебаггер предназначен исключительно для вылавливания ошибок?
Нет, иногда надо разобраться в хитросплетениях кода. Или хитрые и многократные вызовы функций, нанизанных друг на друга некоторых товарищей.
Иван Кузьмицкий писал(а):
Пошаговый проход нужен ещё для того, чтобы быстрее понять кем-то отлаженный алгоритм. А это уже не отладка, да.
Это интересная мысль.
Отладчик (именно пошаговый) можно использовать для быстрого понимания чужого кода (при наличии исходников, конечно).
Какой-никакой, но это аргумент.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О пошаговой отладке
СообщениеДобавлено: Воскресенье, 12 Октябрь, 2008 16:06 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Тогда мы имеем проблему понимания исходного текста. Не отладки, не доводки, а просто - понимания.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB