Роман М. писал(а):
Вот, пришла мне одна идея насчёт ошибок при компиляции.
Допустим, компилируем модуль, а компилятор сообщает о некотором количестве ошибок. В текущих версиях БлэкБокса у места ошибки ставится маркер с пояснением ошибки.
Всё хорошо, НО:
- почему бы не подсказать программисту как можно исправить ошибку (насколько это возможно)
- почему бы не показать программисту ссылки на источники для дополнительного прочтения (например, к соответствующему параграфу определения языка или внешним источникам)
Тем более, в такой среде, которая имеет все средства для работы с составными документами ...
Пример:
фразу "неверное значение константы" заменить на "неверное значение константы (
подробнее)"
Нажатие на ссылку
подробнее откроет документ с предлагаемыми решениями проблемы и также ссылки на эл. документы и литературу.
Подаю эту идею авторам следующей сборки BlackBox.
Году эдак в 1998 один мой студент по моему заданию слепил небольшую программуулину, которую назвали мы "Помощник программиста". Тогда мы работали на английской версии ТурбоПаскаля 7 и начинающим программистам было сложно переводить английские сообщения об ошибках, и тем более разбираться в кодах Runtime error.
Первое: пацан проанализировал все синтаксические ошибки и все ошибки выполнения.
На каждую ошибку (а они все имели код) было написано довольно развернутое русское сообщение с пояснениями. Поэтому начинающий программер просто вводил в программе код и получал пояснения на русском.
Но этого мало. Были проанализированы причины возникновения ошибок и состряпано что-то вроде простой экспертной системы. Например, в программе авария при чтении из файла (а турбопаскаль не сообщал об ошибках открытия). Тогда начинали задаваться вопросы: файл имеется в наличии? имя файла совпадает с именем в функции assign()? а нет ли в имени русских букв, совпадающих с англискими? И т.п.
Это я к чему? можно написать модулечек (или два-три-четыре), который вот так же будет давать пояснения на вопросы пользователя. Или пользователю будет задавать вопросы, чтобы его натолкнуть на обнаружение ошибки.