Информатика-21. Форум проекта |
Форум открыт по просьбам читателей сайта проекта для обсуждения Оберона/Компонентного
Паскаля/Блэкбокса как технологической платформы для современной общей системы преподавания программирования,
параллельной и дополняющей систему преподавания математики. Мнения за и против, вопросы как и почему, и т.п.
Характер форума предполагает максимальную корректность высказываний: модераторы удалят без предупреждения
любые сообщения с вульгарным или неуместным контентом, переходом на личности и т.п.
Всего в теме 1147 сообщений
Добавить свое сообщение
- Проект «Информатика—21»
- Обсуждение темы "Мысли об Обероне" на Королевстве
Уважаемые участники форума! Обращаем ваше внимание на тот факт, что данная
тема никоим образом не допускает offtopic и предполагает максимальную корректность высказываний:
модераторы удалят без предупреждения любые сообщения с вульгарным или неуместным контентом, переходом на личности и т.п.
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 987 28-05-2006 04:42 | |
Ответ на »сообщение 967« (info21)
Это деление на два уровня (первый -- комбинаторный; второй -- "критический")
Позавчера мой коллега по работе обратил внимание на такое явление как "синтаксическое мышление" http://alexeychen.livejournal.com/11868.html
То есть пока не объяснишь некую идею программы конкретно на уровне синтаксиса языка - до некоторых эта идея вообще не дойдёт.
№ 986 27-05-2006 14:26 | |
Ответ на »сообщение 979« (Sergei)
___________________________
Что же касается сроков публикации системы, то тут еще большая засада. Система была предложена госорганам, но результат был настолько неожиданным (даже парадоксальным), что теперь руководство опять в раздумьях. Но нет худа без добра - сейчас пишем концепцию обработки языков с записью справа-налево.
Это наводит на мысль, что системой заинтересовались на Ближнем Востоке...
№ 985 27-05-2006 14:05 | |
Ответ на »сообщение 984« (AVC)
___________________________
Эта история вызвала у меня забавные воспоминания о том, как я боролся с нехваткой памяти еще на XT.
Задача была связана с русским языком, обязательной частью задачи был большой словарь, который в память, конечно, не лез и не хотел.
Я использовал "кэш" в виде двоичного дерева (сначала берем словарную статью аккурат в середине файла, затем, в зависимости от результатов сопоставления ключа, идем влево или вправо).
Эта схема работала весьма эффективно, но в какой-то момент все начинало страшно "тормозить".
Причина оказалась в том, что используемая для перемещения по файлу функция fseek() была реализована в библиотеке Zortech C++ с жутким глюком. А именно: она обнуляля указатель на файловый буфер. Из-за этого при следующем чтении из файла выделялся новый буфер, который, в свою очередь, так же терялся.
В конце концов, память "кончалась" (типичный memory leak) и файл читался без буфера, по одному байту. С соответствующей скоростью. :)
Оффтоп, конечно. Но вот навеяло... :)
№ 984 27-05-2006 13:39 | |
Ответ на »сообщение 981« (info21)
___________________________
А "новый уровень", на котором он загнулся -- это как раз когда система вместе с промежуточным решением и проч. перестает в память влезать. У меня на паре (обероновских) паттернов всё выстроено -- нужно было только добавить один небольшой модуль с конкректной (дисковой) реализацией ридеров-райтеров (такой вариант изначально в проекте предусматривался), основной алгоритм ничего и не заметил. А у него наверняка какие-то "супер-быстрые" хеш-алгоритмы для сортировки, которые слишком много знают про представление данных, и т.п. и т.д.
<...>
Так что тут снова целостность картины важна.
Очень интересно!
У меня, конечно, вызывает огромное любопытство эта "пара обероновских паттернов" и модуль с дисковой реализацией ридеров-райтеров.
(Особенно потому, что я еще не сталкивался с решением этой проблемы на Обероне.)
Не совсем понятно, почему "конкурент" в свою очередь не прибег к какой-нибудь вариации "умных" указателей, чтобы тоже бороться с переполнением оперативки, не "задевая" основной алгоритм.
Я помню, в свое время тема "умных указателей" была очень популярна, цыплюсисты посвящали ей целые книги. Достаточно вспомнить с какой важностью Джеф Элджер написал свою книгу (кажется, "C++ for real programmers" :)). Чувство собственной значимости было у Элджера столь велико, что Барбару Лисков он называл не иначе как "некто Лисков". :)
№ 983 27-05-2006 12:46 | |
Уважаемый info21. Мне, как физику по образованию, крайне любопытно и полезно было бы изучить Ваши курсы по программированию. Можно ли где-нибудь их скачать? Если нельзя скачать, то сбросьте, пож-та, их на этот ящик: fish-for собака rambler.ru. Буду очень признателен.
№ 982 27-05-2006 10:34 | |
Ответ на »сообщение 980« (AVC)
И еще раз мораль из этой истории:
важен интегральный эффект, когда о "программировании" и "отладке" можно (благодаря языку -- или Вирту) почти не думать, -- зато можно хорошо сосредоточиться на проектировании.
В большой задаче организация бьет алгоритмические хитрости (тот же ASU подтвердил бы).
Собственно и при построении курса я пытаюсь как можно раньше начать давать стандартные схемы-паттерны (речь не только об объектных), чтобы у людей программы структурировались из стандартных блоков типа той же пресловутой схемы линейного поиска. Т.е. чтобы они не приучались к заковыристым циклам из олимпиадных задачек (все равно 99% циклов в жизни это либо "полный проход", либо "линейный поиск"), а как можно раньше начинали думать об организационно-проектном уровне.
№ 981 27-05-2006 10:02 | |
Ответ на »сообщение 980« (AVC)
___________________________
Ответ на »сообщение 977« (info21)
___________________________
... и офигенно быстрая (конкуренты с С++ отстают в 8 раз на задачах уровня искусства 3-летней давности, и вообще не могут справиться с тем, что у нас сделано в прошлом году).
Все-таки такое (огромное!) преимущество удивляет...
Я, скорее, ожидал бы сопоставимой эффективности программ на C++ и Обероне, при существенно меньших сроках разработки программ на Обероне.
Дык. По сравнению с бесконечностью любой конечный срок "существенно меньше" :-)
Речь идет о довольно громоздкой задаче символической алгебры. (Машинное представление системы ур-й порядка гигабайта -- в каком-нить Maple было бы на порядок больше, и он бы совершенно дико свопил.)
Хотя по-грубому алгоритм решения -- гауссовский, но возникает масса нюансов: как данные представлять, как их на диск свопить, какие алгоритмы (алгебраической) сортировки применять и т.п. Плюс некие особенности в структуре системы ур-й. Все это вместе завязывается: например, как сортировать и как на диск свопить. Промахнешься с одним -- в других местах сильно скажется.
Ну и ясно, структуры данных сильно динамические: точная арифметика, рациональные функции ...
Соответственно, я делал в чистом виде 3 месяца, конкурент (типичный цыплюсист, постдок из Польши) -- 3 года. Ясное дело, чем он три года занимался -- в основном указатели отлавливал, об алгоритме ему и думать особо некогда было.
А "новый уровень", на котором он загнулся -- это как раз когда система вместе с промежуточным решением и проч. перестает в память влезать. У меня на паре (обероновских) паттернов всё выстроено -- нужно было только добавить один небольшой модуль с конкректной (дисковой) реализацией ридеров-райтеров (такой вариант изначально в проекте предусматривался), основной алгоритм ничего и не заметил. А у него наверняка какие-то "супер-быстрые" хеш-алгоритмы для сортировки, которые слишком много знают про представление данных, и т.п. и т.д.
Если он возьмет мои окончательные программы и переведет их на С++, то наверняка сравняется по скорости (правда, неизвестно, сколько он будет со сбором мусора возиться).
Только не скоро получит он их (if at all) -- о своих студентах тоже думать надо (увы! теоретик теоретику волк, акула и крокодил; а как международное сообчество россиян третирует, мне 30 лет известно -- пусть-ка сами попробуют математику как следует выучить).
А самому ему допереть -- все равно оооочень не скоро получится -- опять же, из-за указателей и т.п.
Так что тут снова целостность картины важна.
№ 980 27-05-2006 09:25 | |
Ответ на »сообщение 977« (info21)
___________________________
Я все свои научные штуки перевел на ББ -- там, где раньше было 3-4 больших системы, сейчас одна и маленькая -- и офигенно быстрая (конкуренты с С++ отстают в 8 раз на задачах уровня искусства 3-летней давности, и вообще не могут справиться с тем, что у нас сделано в прошлом году).
Все-таки такое (огромное!) преимущество удивляет...
Я, скорее, ожидал бы сопоставимой эффективности программ на C++ и Обероне, при существенно меньших сроках разработки программ на Обероне.
№ 979 27-05-2006 08:55 | |
Ответ на »сообщение 978« (AVC)
___________________________
Тут конечно засада. Сайт был закрыт в сентябре прошлого (2005) года волевым решением и причины закрытия сайта довольно правильно обьяснены в
http://www.sysbin.com/board/viewtopic.php?t=416&view=next&sid=723f3d2cc6484cf4ded757a3a0564e5f
Впрочем, наличие сайта помогло бы мало, так как идеология системы предусматривает для пользователя только онлайновую документацию (да и той немного, так как общение с системой предельно просто и интуитивно). Как ни странно, существует достаточно большой обьем технической документации, так как руководство требовало фиксации на бумаге каждого технического решения и причин по которым было выбрано именно это решение что в конечном счете облегчало работу команды так как пара разработчиков живет в США и Австралии. Но боюсь, что публикация такой документации до публикации самой системы несколько преждевременна.
Что же касается сроков публикации системы, то тут еще большая засада. Система была предложена госорганам, но результат был настолько неожиданным (даже парадоксальным), что теперь руководство опять в раздумьях. Но нет худа без добра - сейчас пишем концепцию обработки языков с записью справа-налево.
№ 978 27-05-2006 08:15 | |
Ответ на »сообщение 974« (Sergei)
___________________________
...об этом следовало бы судить хотя бы посмотрев на Pelican или его документацию.
Сергей, а где можно посмотреть на документацию Pelican?
Насколько я понял, сейчас сайта ОС Pelican нет. :(
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|