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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт апр 04, 2017 17:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6043
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
Victor__v писал(а):
Интересно узнать мнение форумчан по поводу реализации стека исключений?
Нужно ли оно вообще?
Если да, то какие предложения будут по дизайну данного механизма?
Catch Throw может быть недостаточно

Вообще - не нужно. Исключения в текущем виде были реализованы в основном по принципу "чтобы как у других языков". Ошибка в Форте возвращает управление в консоль. Ошибка в скомпилированной программе вызывает ее аварийный останов. Надо чтобы и в Форте был аварийный останов? Механизм TRY (CATCH .. THROW) нужен, чтобы устанавливать особые, определенные программистом, точки обработки исключений в определенных ситуациях. А вот в таких языках как Tcl, да или просто консольная оболочка, разве используют исключения? Нет, не используют - за пренебрежительной малостью неприятностей от неправильно набранной команды. Если набрали имя файла с ошибкой, можно просто перенабрать. Поэтому если Форт впихивать в рамки чуждого ему подхода, то придется писать тот же Си, только с постфиксом. Тут и исключения пригодятся, просто для комплекта. Если же программу изначально основывать на интерактивности, то исключения будут лишними.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт апр 04, 2017 18:04 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4828
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
Victor__v писал(а):
Список скорее или цепочка.

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 110
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Victor__v, почему тема "Наработки от victor__v для СПФ" находится в разделе "Форт Системы/Quark", когда есть раздел " Форт Системы/SP-Forth"?


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

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

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


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 281
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://cloud.mail.ru/public/6YKW/vSo4f3zYL
Что нового?
Подправлена вторая версия строковой библиотеки.
Данная либа портирована в препроцессор, совместима с лок.переменными.
Добавлен стек с плавающей точкой в роли стека потока-управления.

Написал несколько файлов-скриптов для облегчения скрытия деталей.
Что-то вроде мысли зачем каждый раз писать ALSO CONTEXT ! если можно создать файл с этим действием.

Свой аналог СПФ-ским N>R NR>

также в архиве есть мои записки по написанию форт-системы.
Там пока мало чего,
структура слов.статей, несколько примитивов с ещё не написанными флагами и пр.
Моя версия CREATE-CODE
.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Чт апр 27, 2017 20:18 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 281
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://cloud.mail.ru/public/9BYq/Wt35zCJkZ

Добавлена хеш-фунуция LY написана на ассемблере.
Давно не смотрел исходники ( где-то на хабре видел ) не помню там знаковое или беззнаковое умножение.

Улучшен мини-ассемблер. Переходы, в основном.
Сейчас пишется дизассемблер.

Также формирую свою форт систему. Все текущие исходники оной в папке src2

Написано слово для экранирования пробелов в строке, нужно ежели HTTP-запрос делать

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


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 281
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://cloud.mail.ru/public/3GPg/McfL7HJnd
Слегка улучшен ассемблер. Пара кодов всего
Стековый комбинатор ~er\stacker\stacks3.f
Позволяет манипулировать стеком произвольным образом, а также минимизировать его участие в процессе.
Есть 5 переменных ( их роль выполняют регистры ) 0 это eax.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Чт июн 08, 2017 16:32 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 417
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Hishnik писал(а):
Ошибка в Форте возвращает управление в консоль. Ошибка в скомпилированной программе вызывает ее аварийный останов. Надо чтобы и в Форте был аварийный останов?
Аварийный останов в задницу не нужен. Но CATCH THROW чрезвычайно удобны и сильно упрощают программу, когда нужно проделать сложную и сильно вложенную последовательность действий, которая может быть успешна или нет. И в случае неуспеха на любом этапе и на любом уровне вложенности, эту последовательность нужно прервать, сняв сразу все ставшие ненужными параметры со стека данных, но завершать программу не нужно. Потому-что это не ошибка была, а факт не успеха.
А без CATCH THROW нужно будет из каждого вложенного этапа последовательности возвращать код завершения, потом проверять его и выбираться из глубоких уровней через кучу таких проверок. А эти проверки просто захламляют исходный текст.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Чт июн 08, 2017 22:50 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 281
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
А без CATCH THROW нужно будет из каждого вложенного этапа последовательности возвращать код завершения, потом проверять его и выбираться из глубоких уровней через кучу таких проверок. А эти проверки просто захламляют исходный текст.


Тут ещё возможен бектрекинг как вариант.
Простые откатные действия выполняли многие, наверно

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Сб июн 24, 2017 18:32 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 281
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
пишу второй форт-ассемблер под интел .
Так-как много похожих кусков решил генерировать их автоматически.
Слово принимает ( думается, через входной поток) имя слова, его требуемую конфигурацию ( регистр, регистр-регистр и пр. ) и опкоды на все случаи жизни.
После этого в шаблон подставляется всё вышеперечисленное на выходе нас встречает уже готовая строка, которая скармливается вектору ( распарсить, записать в файл ещё что-то ).

Как сделать?
Делается всё элементарно ( в моём случае )
у меня как-раз библиотека для работы со строками имеется. Надо её только дополнить парой слов и всё.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Сб июл 15, 2017 16:45 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 281
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://vk.com/doc189457568_449351224

Небольшой рабочий вариант ассемблера, сгенерированного автоматически.
Там несколько инструкций
ADD
AND
SUB
CMP
и пр.
Особенно стоит обратить внимание на функцию LEA
Т.к. это слово лишь частично подпадает под шаблон задействованных опкодов
К примеру,
CELL [EAX] EBX LEAsm-r-r
сгенерирует
MOV EBX, CELL [EAX]

Ибо LEA для другого предназначена.

Сделал поддержку и для работы с 8- и 16-битными регистрами.

Что дальше?
Переименовать часть слов.
Сделать шаблоны под другие случаи. т.е. команды с 1-м регистром или 3-мя.
И под более массивные опкоды ( умножение, к примеру )

В архиве код для получения ассемблера-библиотеки, а также сама библиотека.
Библиотека: ~ER\ASM\ASMr-r.F
Строитель: ~ER\ASM\NEW-ASM-LIBRARY.F
Все остальные папки с исходниками как раз для Строителя.

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


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

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


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

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


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

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