OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Понедельник, 31 Май, 2010 13:19 

Зарегистрирован: Среда, 30 Сентябрь, 2009 14:45
Сообщения: 147
Сергей Прохоренко писал(а):
...

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Май, 2010 13:39 

Зарегистрирован: Среда, 30 Сентябрь, 2009 14:45
Сообщения: 147
Валерий Лаптев писал(а):
Писать выражения - весьма полезная для начинающего программера упражнение...

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Май, 2010 14:31 

Зарегистрирован: Среда, 30 Сентябрь, 2009 14:45
Сообщения: 147
Возвращаясь к теме.

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

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 и т.д.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Май, 2010 16:04 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Это называется "сценарий". Очень полезная вещь на этапе проектирования программ. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Июнь, 2010 01:48 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
А.П. писал(а):
Валерий Лаптев писал(а):
У нас даже есть небольшая обучалка, в которой выражение нарисовано в привычном математическом виде, а студню надо написать его в строчечку - как в программе.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Июнь, 2010 08:39 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
Я вот задал тут одному - генерировать арифметические выражения. Теперь думаем, как из изображать в привычном математическом виде... :) В смысле - автоматически изображать...
LaTeX.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Июнь, 2010 09:15 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Июнь, 2010 09:27 

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


А как там?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Июнь, 2010 18:07 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Alexey Veselovsky писал(а):
А как там?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Июнь, 2010 23:10 
Аватара пользователя

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


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 07:35 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
не как текст. Но...
Обычно выражения не сами по себе, а в операторе присваивания. для оператора присваивания должна быть доступна таблица видимости имен переменных и констант. А операции и скобки, и литералы - ручками.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 08:35 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
А чего у него может быть видимо-то особо, если всё ограничено небольшой процедурой и небольшим модулем, а обращение к другим модулям - только квалифицированное?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 08:42 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Илья Ермаков писал(а):
А чего у него может быть видимо-то особо, если всё ограничено небольшой процедурой и небольшим модулем, а обращение к другим модулям - только квалифицированное?

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 08:43 

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


Последний раз редактировалось igor Пятница, 18 Июнь, 2010 08:49, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 08:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Значит, так ещё с OP2 повелось, ибо ББ-шный компилятор - переделанный OP2 (Portable Oberon-2 Compiler).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 08:51 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Да. Впечатление такое, что интересы разработчиков переключились на что-то другое. Может потому и код открыли, мол, кто хочет, пусть сам до ума доводит :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 09:03 

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 09:09 
Модератор
Аватара пользователя

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


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 09:16 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Июнь, 2010 09:21 
Модератор
Аватара пользователя

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


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

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


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

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


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

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