Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб июн 24, 2017 19:42

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 15:03 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 244
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Как известно в форте можно всё, и в тоже время шаг вправо и влево есть расстрел ОСью.

Итак отладкостойкость форта в режиме интерпретации
5 >R
Кварк вылетает
СПФ ругается
Форк ругается

0 @
Кварк вылетает
СПФ ругается
Форк вылетает на windows 10, на остальных не тестил

MOVE или CMOVE
Кварк не реагирует
СПФ вылетает
Форк ругается

Ещё отладочные примеры? или форт-системы обитателей форума?

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 15:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5996
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Victor__v писал(а):
0 @
Кварк вылетает

HERE . - 110280160. Это у него примерно там данные. Адресация абсолютная в пределах выделенного задаче адресного пространства, потому что альтернатива - постоянные команды mov eax, [base +offset], а это, во-первых, больше вычислений с постоянными обращениями к base, во-вторых, не решает проблему, потому что за пределами доступного адресного пространства окажется просто какой-то другой диапазон смещений. -1 @ тоже ведь даст ошибку.

Ну и на стек возвратов класть числа можно только на свой страх и риск. Какой-то контроль баланса здесь практически сводит на нет всю ценность. С моей точки зрения, стек возвратов - исключительно для организации работы подпрограмм, а не для использования в качестве временной свалки данных, которые не помещаются на основном стеке. Само по себе наличие слов >R R> - от общего подхода Форта предоставлять доступ ко всему, к чему возможно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 15:34 
В сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1884
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 31 раз.
<mOleg явился>

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Последний раз редактировалось gudleifr Вт апр 11, 2017 19:16, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 15:50 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 244
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Ну и на стек возвратов класть числа можно только на свой страх и риск.

Ну, так это ещё при мамонтах было :)

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 15:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5996
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Victor__v писал(а):
Ну, так это ещё при мамонтах было

Так а зачем тогда Форту класть 5 в качестве адреса возврата? Он же потом по нему вернется :) Тут вопрос принципиального назначения программы - если она делается для максимальной живучести, в ней просто по законам жанра будет много проверок в рантайме. А пока что если кварк (и в целом любой Форт) вылетает, то исправляем то место, из-за которого он вылетает. Методы создания безопасных систем несколько ортогональны Форту и в некоторой степени вообще языкам.


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 244
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Ну, так тема про отладку :)
Не сбалансировали мы стек, и что нам за это будет?
Лучше пусть форт-система выкидывает в консоль, чем в ось.
Цитата:
Методы создания безопасных систем несколько ортогональны Форту

Так речь и не стоит о безопасной разработке форт-системы. Сам фортер на этой безопасности и спотыкнётся.

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 19:30 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 74
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Цитата:
Ну, так тема про отладку :)
Не сбалансировали мы стек, и что нам за это будет?
Лучше пусть форт-система выкидывает в консоль, чем в ось.

Наверно к этому привыкнуть надо.. какая разница в консоль или в ось... править код надо все равно.. Я в СПФ пишу, в таких ситуациях смотрю spf.log, там причину понять можно


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 20:46 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5996
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Victor__v писал(а):
Не сбалансировали мы стек, и что нам за это будет?
Лучше пусть форт-система выкидывает в консоль, чем в ось.

Так ведь стек возвратов. Это где угодно проблема. Выкидывание в консоль мало поможет. Можно, конечно, сделать эмулятор со своим ip и образами памяти. Это надежнее, но медленнее. Такой вариант тоже есть, и используется внутри проекта на С++. Там действительно получается безопасная "песочница", но это не избавляет от необходимости исправлять ошибку. Иначе получается keyboard not found, press any key.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 21:10 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 244
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Эм, описывается проблема переход по недопустимому адресу, при таком исключении в СПФ печатается стек возвратов в консоль, отладку упрощает

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 21:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5996
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Victor__v писал(а):
Эм, описывается проблема переход по недопустимому адресу, при таком исключении в СПФ печатается стек возвратов в консоль, отладку упрощает

Если честно, просто не обращал внимания. Оно не так сильно требовалось, и обходные пути есть. По списку адресов в стеке возврата все равно сложно с ходу что-то определить, а частое слово, вызывающее исключение - обычно @. Так что надо еще понять, как этот адрес вычисляется.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 21:37 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 244
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
обычно @

Я не самый сильный программист, поэтому признаюсь кой-в-чём :)
Иногда надо выстроить смещение от адреса
Забудешь плюсик поставить словишь недопустимый адрес.
Редко, но бывает :)

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Вс апр 09, 2017 21:53 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 74
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Цитата:
Иногда надо выстроить смещение от адреса

Вот тут много проблем, как адрес определен?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Пн апр 10, 2017 12:23 
В сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1884
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 31 раз.
<mOleg явился>

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Последний раз редактировалось gudleifr Вт апр 11, 2017 19:16, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Пн апр 10, 2017 15:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5996
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
F-MAP писал(а):
Вот тут много проблем, как адрес определен?

Видимо, имеются в виду смещения от массива. Если сделать

CREATE X[] 1000 ALLOT

то X[] будет давать корректный адрес где-то в пределах области данных. Но теперь посчитаем адрес элемента массива

... DO
X[] I + @ - тут все хорошо
X[] I + 2 + @ - тут тоже все хорошо
X[] I 2 + + @ - тут просто переставлены местами сложения

X[] I 2 + @ - а вот тут уже проблема из-за забытого второго плюса, вместо чего-то вроде 100000002 получилось просто 2

Видимо, это больше вопрос стиля кодирования. Или же проблема решаема в форт-машине с "песочницей", в которой есть контроль адресов на каждую операцию. Тогда адресный интерпретатор будет вызывать не просто mov eax, [addr], а функцию, которая сначала проверит диапазон addr. Тут производительность будет уже заметно ниже.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Отладкостойкость форт-систем
СообщениеДобавлено: Пн апр 10, 2017 16:14 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 74
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Я придерживаюсь мысли, ни когда не хранить адрес в константе или в переменной.. его надо вычислять.. как к тому есть предупреждения, к примеру в библиотеке str5 в spf.
Не знаю, кто еще создает массивы внутри кода? а если нужно 10-ки тысяч или неопределенное кол-во?, наверняка выделяют внешне память тем или иным способом, адрес начала этой области весьма плавающий..


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

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


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

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


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

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