Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 20:03

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 30, 2008 23:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Геннадий писал(а):
Только у меня вызов отладчика компилирутся до вызова call, чтобы можно было вывести хотя бы имя выполняемого
слова и состояние стека (ов).

Кстати да, интересно. Действительно, так и надо.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 00:58 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
вопрос писал(а):
вообще, редактор встроен в протон, достаточно сделать подсветку строк, т.к. я это не пробовал, но протон должен работать построчно

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

Вообще, тут есть над чем поразмыслить, Хищник не возражает? Не может быть, чтобы не нашлось сравнительно простое и целесообразное решение

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 01:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Вообще, тут есть над чем поразмыслить, Хищник не возражает? Не может быть, чтобы не нашлось сравнительно простое и целесообразное решение

Я только "за".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 08:44 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
существует, мне кажется, возможность, которую предоставляет disforth, если такоой возможен в кварке.
борландовский файл с "отладочной информацией" может возрасти в разы, а для форта достаточен disforth
конечно, не обычный

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

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

достигнув точки с запятой, курсор возвращается к строке, с которой прыгнул к двоеточию (нужен небольшой стек номеров строк)

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 09:18 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
где размещать доп. информацию? - может быть в поле параметров слова?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 09:33 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
остаётся только вопрос с управляющими конструкциями.
это, пожалуй, сложнее. Возникает желание дополнить информацию о вызываемых словах номерами строк внутри кода слова

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

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 10:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Все это в целом доступно и из внешней оболочки, которая может быть надстроена над dll (как протон). Настолько навороченный дебаггер "для особо ленивых" - вещь достаточно своеобразная. Стоит задача научить людей программировать? Достаточно и интерактивной работы в консоли. Пошаговая визуальная отладка в действительности есть некий жест отчаяния, когда "ничего не работает, и непонятно, почему". Доказательством работоспособности или составной частью отчета скриншоты пошаговой отладки служить никак не могут. Только assert-ы, самодиагностика в словах и прочие элементы self-testing.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 11:24 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
Все это в целом доступно и из внешней оболочки, которая может быть надстроена над dll (как протон). Настолько навороченный дебаггер "для особо ленивых" - вещь достаточно своеобразная. Стоит задача научить людей программировать? Достаточно и интерактивной работы в консоли. Пошаговая визуальная отладка в действительности есть некий жест отчаяния, когда "ничего не работает, и непонятно, почему". Доказательством работоспособности или составной частью отчета скриншоты пошаговой отладки служить никак не могут. Только assert-ы, самодиагностика в словах и прочие элементы self-testing.


Как бы нетрудно сделать алгоритм ( не впервой), только исходники недоступны ...

А вот насчёт пошаговой визуальной отладки - я не понял о чём. Почему "жест отчаяния"?
Хищник не пользовался стандартными уже отладчиками С или подобными? Искал ошибки в уме?

Визуальная отладка - средство ускорения разработки, т.к. можно и self-testing

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 11:26 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хороший визуальный отладчик с модифицируемыми брейк-поинтами ускоряет работу квалифицированного программиста
до 2.5-3 раз, а для неквалифицированного может ... замедлить

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 12:00 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
А вот насчёт пошаговой визуальной отладки - я не понял о чём. Почему "жест отчаяния"?
Хищник не пользовался стандартными уже отладчиками С или подобными? Искал ошибки в уме?

Это другой процесс, который влияет на работу программиста в том же стиле, что и, к примеру, большой монитор. Конечно, удобнее видеть весь код и еще вспомогательные панели. Точно так же удобнее иметь возможность пройти программу по шагам прямо в редакторе. Но это не означает, что только так и можно, в конце концов, при отсутствии IDE пользуются отладочной печатью, и это просто медленнее и не так наглядно, а не принципиально иначе.
вопрос писал(а):
Визуальная отладка - средство ускорения разработки, т.к. можно и self-testing

Не можно, а нужно. С отладчиком программист понажимал кнопочки, полюбовался на мелькание циферок... и что? Он просто для себя понял (или не очень понял), как работает программа. Возможно, избавился от проблем с конкретным частным случаем. Но при сдаче программы он что, усадит заказчика рядом с собой и будет ему нажимать на Step Over и Trace Into? Так что только selftesting.

вопрос писал(а):
Хороший визуальный отладчик с модифицируемыми брейк-поинтами ускоряет работу квалифицированного программиста
до 2.5-3 раз, а для неквалифицированного может ... замедлить

Сколько активных фортеров? Сколько они выиграют времени с визуальным отладчиком? А сколько будет потрачено на его написание? И вот когда фортеров станет столько, что им будет очень-очень актуален красивый отладчик, который существенно ускорит "общий выход" программных продуктов, можно будет говорить о разработке отладчика, интегрированного в IDE для Форта. Сейчас, кстати, вполне можно пользоваться отладчиками кода, показывающими состояние регистров, никто же не мешает. Так что в любом случае в основу положено соотношение затраченных усилий и получаемого результата. Для кварка наилучшее соотношение получается, если дать возможность перемежать вызовы слов вызовами векторного отладчика, заполняемого программистом. Прочее уже не требует вмешательства в движок.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 12:29 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
моё дело - пожелать.

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 13:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
моё дело - пожелать.

Гм... спасибо, конечно. Только мне теперь что - все бросить и срочно делать отладчик?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 20:21 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Нет, ну я поделился мнением, даже прикинул, как проще сделать алгоритм - он ведь несложный для форта, для С, я могу запостить тут распечатку ассемблерного кода простой программы с информацией отладчика и без - но кто угодно может сделать то же самое даже с любым ассемблером. Там сложно, тут нет. По предложенному алгоритму нужно 4 процедуры (даже в 3 можно уложиться)
и 3 ячейки зарезервированных у каждого слова на поле параметров (или дополнительное поле) и всё

3 ячейки -
1 - поле флагов - компилировалось ли слово с отладкой или без и тут же, есть ли на него брейкпоинт и является слово ветвлением или словом цикла и приходится ли на него конец (начало) строки в исходнике - 6 бит
2,3 - адреса перехода (номера строк) для ветвлений или циклов

процедуры:
1 - получение адреса зарезервированных ячеек в поле параметров и чтение
2 - запись по адресу
3 - переход по строкам вперёд

ВСЁ

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

Кстати, в документации Хищник даёт подробные примеры, могу возвратить это:
Стоит задача научить людей программировать? :)

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 20:31 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Сколько они выиграют времени с визуальным отладчиком?
очень много

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 31, 2008 23:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Нет, ну я поделился мнением, даже прикинул, как проще сделать алгоритм - он ведь несложный для форта, для С, я могу запостить тут распечатку ассемблерного кода простой программы с информацией отладчика и без - но кто угодно может сделать то же самое даже с любым ассемблером. Там сложно, тут нет. По предложенному алгоритму нужно 4 процедуры (даже в 3 можно уложиться)
и 3 ячейки зарезервированных у каждого слова на поле параметров (или дополнительное поле) и всё

Несложный-то несложный, но зачем столько всего? Отладочную информацию ведь можно генерировать и на стороне IDE, контролируя строки, посылаемые транслятору. А тут получается много, навороченно, и на первый взгляд значительно. Хотя сразу вижу подводный камень - а если будут другие управляющие структуры, то их уже по описанному алгоритму отладить не получится. "Ветвление и слово цикла" упомянуты... а кто гарантирует, что фантазия этим ограничится?
вопрос писал(а):
Стоит задача научить людей программировать?

whiteTigr уже написал форт-машину, совместимую с кварком, на Дельфи. Там же и отладчик :)


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

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB