OberonCore
https://forum.oberoncore.ru/

Фантастика как жанр проектирования
https://forum.oberoncore.ru/viewtopic.php?f=93&t=2661
Страница 2 из 3

Автор:  Виктор О [ Понедельник, 31 Май, 2010 13:19 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Сергей Прохоренко писал(а):
...

  • Вам нравятся - Нет.
  • У Вас плохая - Нет. Да. Нет.
  • Вы профессиональная - Нет.
  • Вы считаете - Нет.
  • Вы любите - Нет.
  • Вы любите - Нет.
  • Вам нравится - Нет.
  • Вы наизусть - Нет.
  • Вы считаете - Нет.
  • Чем по-Вашему - Зависит от интерфейса.
  • Вы считаете - Нет.
  • Вы вообще - Да.
  • Вы считаете корректными - Да.
[/quote]
Да и хрен с ним, с редактором, если это вызывает столько проблем.

Автор:  Виктор О [ Понедельник, 31 Май, 2010 13:39 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Валерий Лаптев писал(а):
Писать выражения - весьма полезная для начинающего программера упражнение...

Поддерживаю. И не только программера. И не только начинающего. Как говорил классик, "математика - язык".

Подозреваю, что сами по себе "манипуляторные" методы работы с информацией сегодня паразитируют на "писательских".
1. Человек, не освоивший написания выражений, не сможет их сконструировать мышкой.
2. В голове у человека паттерн выражений ближе к написанному, а не к последовательности маханий мышкой.
3. Человеку легче усвоить, если то, что делает, равно тому, что он потом видит, а не чему-то совсем на его действия непохожему.
4. Меньше телодвижений и они более диверсифицированы при работе с клавиатурой, а не с мышкой.

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

Поэтому я считаю, что семантический редактор должен быть умеренно консервативным. Внедрять новшества можно последовательно.

Автор:  Виктор О [ Понедельник, 31 Май, 2010 14:31 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Возвращаясь к теме.

Вот, допустим, решил я что-то программное написать. Например, задали мне написать программу для вычисления квадратного корня.

1. Открываю иду и вижу три блока:
а) заголовок, б) модель в) вьюха.
2. Но доступен только заголовок, куда я и пишу и полям:
заглавие=вычисление квадратного корня; обозначение=sqrt; дата=сегодня; версия=0.0
3. После заголовка доступна модель
результат: тип=real; обозначение=Q входные данные: тип=real; обозначение=P; способ=текстовое поле; (разумеется, часть этих сведений вводится путем выбора мышкой из соответствующих меню и тулбаров)
4. код: предусловие: P>=0.0; постусловие: Q*Q=P (приближенно)
создаю блок Q:=0.5*(Q0+P/Q0)
5. Ида сообщает мне, что Q0 недоописана. Включаю в таблицу локальных данных Q0 тип=real
и добавляю перед блоком Q0:=1.0; даю описание Q0 - значение корня на предыдущей итерации
6. В блоке записано первое приближение. Делаю блок циклом с проверкой на выходе. Вписываю проверку ABS(Q-Q0)<EPS
7. Получаю от иды кляузу про EPS, вписываю глобальный EPS - кроме типа даю описание: точность вычисления квадратного корня, значение по умолчанию =0.05
8. Так, а где же изменение Q0? меняю перед входом в блок Q0:=1.0 на Q:=1.0
а в начале блока задаю Q0:=Q
ну и так далее. потом перехожу к вьюхе и задаю ввод данных и вывод
9. пробный запуск - включается база по тестам, заношу 1. Q=3 P=9 и т.д.

Автор:  igor [ Понедельник, 31 Май, 2010 16:04 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Это называется "сценарий". Очень полезная вещь на этапе проектирования программ. :)

Автор:  Валерий Лаптев [ Вторник, 01 Июнь, 2010 01:48 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

А.П. писал(а):
Валерий Лаптев писал(а):
У нас даже есть небольшая обучалка, в которой выражение нарисовано в привычном математическом виде, а студню надо написать его в строчечку - как в программе.

А для школьников она может быть полезна? В смысле, не слишком ли нагружена высшей математикой? Надеюсь, она написана на КП в ББ?! :)

Не знаю, на чем написано, я не писал, а кроме меня у нас - некому. Откуда-то из инета содрана. Поэтому количество упражнений там фиксировано. Я вот задал тут одному - генерировать арифметические выражения. Теперь думаем, как из изображать в привычном математическом виде... :) В смысле - автоматически изображать...

Автор:  Евгений Темиргалеев [ Вторник, 01 Июнь, 2010 08:39 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Валерий Лаптев писал(а):
Я вот задал тут одному - генерировать арифметические выражения. Теперь думаем, как из изображать в привычном математическом виде... :) В смысле - автоматически изображать...
LaTeX.

Автор:  Валерий Лаптев [ Вторник, 01 Июнь, 2010 09:15 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

В смысле - из нашей проги запускать LaTeX? BV{J? стрельба из пушки по воробьям.
Мы, наверное, проанализируем виды выражений и на каждый вид слепим небольшую функцию визуализации. Собственно, проблемы основных только две: деление и изображение некоторых функций типа корня.

Автор:  Alexey Veselovsky [ Вторник, 01 Июнь, 2010 09:27 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Wlad2 писал(а):
Валерий Лаптев писал(а):
Попробуйте - очень удобно.
Дополнительное удобство было бы, если бы в Си++ можно было вводить переменные, как в Пшоле - дополнительная ясность и "семантика по месту". Ну, и плюс - эстетика с экономией... ;)


А как там?

Автор:  Wlad [ Вторник, 01 Июнь, 2010 18:07 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Alexey Veselovsky писал(а):
А как там?

Также, как в Limbo. ;)

Автор:  Сергей Прохоренко [ Четверг, 17 Июнь, 2010 23:10 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

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


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

Есть и другой аспект: алгоритм как последовательность инструкций в семантическом редакторе имеет НЕТЕКСТОВОЕ внутреннее представление (синтаксическое дерево и таблица символов). Почему же Вы выражения вырываете из этой идеологии и хотите представлять как текст? Это потребует создания парсера, т.е. неоправданно усложнит семантический редактор.

Автор:  Валерий Лаптев [ Пятница, 18 Июнь, 2010 07:35 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

не как текст. Но...
Обычно выражения не сами по себе, а в операторе присваивания. для оператора присваивания должна быть доступна таблица видимости имен переменных и констант. А операции и скобки, и литералы - ручками.

Автор:  Илья Ермаков [ Пятница, 18 Июнь, 2010 08:35 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

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

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

Автор:  Валерий Лаптев [ Пятница, 18 Июнь, 2010 08:42 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Илья Ермаков писал(а):
А чего у него может быть видимо-то особо, если всё ограничено небольшой процедурой и небольшим модулем, а обращение к другим модулям - только квалифицированное?

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

Вообще да. При наличии модуля и таблицы-то особо не требуется - мало видимых имен.
Эт все шоры сишной ветки работают. Не привыкли мозги еще к модульности.

Автор:  igor [ Пятница, 18 Июнь, 2010 08:43 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Илья Ермаков писал(а):
Вон неспроста же для компиляторов хороших языков символьные таблицы делают на простых списках (самоупорядочивающихся максимум), вместо деревьев или хэш-таблиц, нужных для немодульных языков.
Кстати, в компиляторе Блэкбокс используются именно деревья почему-то...
Причём в коде есть ошмётки, которые свидетельствуют о том, что собирались использовать красно-чёрные деревья, но потом видимо передумали или руки не дошли.

Автор:  Илья Ермаков [ Пятница, 18 Июнь, 2010 08:47 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Значит, так ещё с OP2 повелось, ибо ББ-шный компилятор - переделанный OP2 (Portable Oberon-2 Compiler).

Автор:  igor [ Пятница, 18 Июнь, 2010 08:51 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Да. Впечатление такое, что интересы разработчиков переключились на что-то другое. Может потому и код открыли, мол, кто хочет, пусть сам до ума доводит :)

Автор:  Rifat [ Пятница, 18 Июнь, 2010 09:03 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

igor писал(а):
Илья Ермаков писал(а):
Вон неспроста же для компиляторов хороших языков символьные таблицы делают на простых списках (самоупорядочивающихся максимум), вместо деревьев или хэш-таблиц, нужных для немодульных языков.
Кстати, в компиляторе Блэкбокс используются именно деревья почему-то...
Причём в коде есть ошмётки, которые свидетельствуют о том, что собирались использовать красно-чёрные деревья, но потом видимо передумали или руки не дошли.

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

Автор:  Илья Ермаков [ Пятница, 18 Июнь, 2010 09:09 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

igor писал(а):
Да. Впечатление такое, что интересы разработчиков переключились на что-то другое. Может потому и код открыли, мол, кто хочет, пусть сам до ума доводит :)


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

Автор:  igor [ Пятница, 18 Июнь, 2010 09:16 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

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

Автор:  Илья Ермаков [ Пятница, 18 Июнь, 2010 09:21 ]
Заголовок сообщения:  Re: Фантастика как жанр проектирования

Оставьте = "не заморачивайтесь" :)

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