Илья Ермаков писал(а):
Сейчас вот бьюсь над дидактической задачей, как лучше всего научить понимать вообще устройство памяти и структур данных в ней. Нужен исполнитель. Визуальный. Иначе НЕ ВИДЯТ они, как там всё это связывается. Как с указателями работать. То же ООП понять до конца можно, только "руками" почувствовав эти идеи сначала (как оно технически там). Времени ждать, пока дойдёт "инсайтом" в процессе, нет - и неэффективно это; методика нужна.
Была идея - использовать схемы типов. Имея в виду, что были уже среды частично визуального исполнения - тот же ПЕКАН:
viewtopic.php?p=68848#p68848. Но там как раз до схем связывания типов не дошли...
Имеется в виду язык с алфавитом как в
этом определении. И схемами такого вида, как
здесь. Но не всё так очевидно, как в в приведённом примере, ясное дело. Поэтому суть в том, что указатели представлены как разъёмы на концах связей, "прошивающих" дерево типов. А реальные "сшивки" показываются для конкретных состояний исполнения. В принципе правильно связывать с положением на "варианте использования" (ну, ветке "древесной развёртки" кода, как
здесь).
Т.е., выполнили эту вершину на импер-схеме - схема типов стала такой-то. Выполнили следующую (ну или там через несколько малосущественных перескочили) - уже другой.
Разумеется, к этому можно добавить и "устройство памяти" поячеечное. Как в том же ПЕКАНЕ - или у
Рембольда - в Гл. 8, когда он размещение в памяти объясняет. Но и тут, мне кажется, надо наложить именно схемные представления на метафору "ленты памяти". Проще говоря - показать как "укладку" схем на ленте. Считая ячейку местом для одной вершины (для простоты).
О реализации сего дела. Ясно, что полноценная - это некий редактор.
![Smile :)](./images/smilies/icon_smile.gif)
Но для дидактики можно просто разобрать по такому принципу одну-две задачи. И составить методу. И даже запрограммировать - но в режиме визуализатора ("перелистывателя страниц", то бишь
![Smile :)](./images/smilies/icon_smile.gif)
)... "Гетерогенная очередь" Свердлова подошла бы. Кстати, думал сам отрисовать - но работа немаленькая... без удобного редактора...
![Wink ;)](./images/smilies/icon_wink.gif)