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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 536 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 36  След.
Автор Сообщение
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс июн 11, 2017 21:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ethereal писал(а):
Освоения чего - интерфейса Форт-системы или ее исходного текста ?

Освоения Форта как такового. На большее не стоит пока рассчитывать.
Ethereal писал(а):
Разве выше разговор шел про эксплуатацию ? Человек пока баги пачками исправляет, какая тут эксплуатация ?
И выражение "при прочих равных условиях" знакомо ? Оптимизировать по скорости можно даже программы на интерпретируемом Бейсике. Ну а уж то, что системное, а не прикладное, должно оптимизироваться всегда.


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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс июн 11, 2017 21:54 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
Ошибки исправлены(вроде :]).

CREATE ARRAY 100 ALLOT ARRAY 100 ERASE
и все капец твоему Форту.
Hishnik писал(а):
Для рабочей системы оптимизация по неосновному параметру заставляет тратить дополнительные ресурсы.
Ethereal писал(а):
- оптимизируется все, пока оно не за счет чего-то
Что бы ты ни говорил Хищнику он не слышит ничего кроме собственных мыслей.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Чт июн 15, 2017 18:25 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
...Я смотрю не всем нравятся мои эксперименты ;)
Сегодня я тщательно изучал шитый код, и сделал вывод:
надо попробовать смешать прямой и подпрограмный шитый код, с возможностью их дальнейшего переключения.
Подпрограмный, например, можно использовать во время созданий рекурсивных слов, а прямой - когда захочется!
Прямой, как я давно уже понял, может быть с АИ и без него.
Короче говоря: с АИ - оптимизация по размеру (если мнОго слов), без АИ - по быстродействию.

:idea: Смешать прямой код без АИ(для низкоуровневых слов) и попдпрограмный шитый код(для слов на Форте)!
Правда это будет очень странно, особенно в переходах... :shock:


Вложения:
Комментарий к файлу: Хотел протестить на скорость, но потом понял, что у меня не 386!
THC_TEST.ZIP [81.45 Кб]
Скачиваний: 575
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Чт июн 15, 2017 22:04 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
После долгого раздумья...
Код:
; Примеры связи слов с различными типами ШК
A:
call B ; подпрограммный вызов
; подпрограммный ШК -> прямой ШК
mov si,@f ;} (адрес относителен!)
lodsw     ;} весь этот код - один и тот-же набор байт(как константа)!
  jmp AX   ;}
@@:
dw C,...,@f
@@:
call B
ret

B:
...
ret

C:
...
lodsw
  jmp AX

Всё ОК, только:
1)Реализовать немного тяжело (доп. структура уравления компилирования слова для нужного ШК. Особенно, я думаю, это отразиться на осноном цикле...)
2)На счёт скорости не уверен.
А что об этом думаете вы, профессионалы? ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Пн июн 19, 2017 22:23 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
...Пока пишу на прямом ШК без АИ...
Люди, подскажите пожалуйста для чего DROP в коде:

: CATCH SP@ HANDLER @ 2>R ( R: SP HANDLER )
RP@ HANDLER ! EXECUTE ( HANDLER=RP R: [retAddr] SP HANDLER )
R> HANDLER ! RDROP FALSE ; ( HANDLER=oldHANDLER R: S: FALSE )

: THROW ?DUP ?EXIT ( S: code )
HANDLER @ RP! ( RP=HANDLER )
( S: code R: [retAddr] SP HANDLER )
2R> HANDLER ! ( HANDLER=oldHANDLER S: code SP R: [retAddr] )
SWAP >R ( HANDLER=oldHANDLER S: SP R: [retAddr],code )
SP! DROP R> ; ( HANDLER=oldHANDLER S: code R: [retAddr] )


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Пт июн 23, 2017 23:17 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
+
_KROL писал(а):
...Я смотрю не всем нравятся мои эксперименты ;)

Дык попытка написать простейшую программу на твоем Форте натыкается на ...
Например мне надо массив в 100 байт, изначально нулевых.
Если я пишу
CREATE ARRAY 100 ALLOT ARRAY 100 ERASE
твой Форт валится.
Ну хорошо, в древнем Фиг-Форте CREATE работало не так. Сделаем как было в нем
CREATE ARRAY 100 ALLOT ' ARRAY 100 ERASE
вроде бы прокатило. Но попытка исполнить теперь хотя бы
BYE
приводит к тому, что все вешается.
Ну и как на нем программы то писать ? Ты бы хотя бы краткие комментарии в свой исходник втыкал, чтобы твои замыслы были понятны без полного его разбора до косточек. Ну или пример программы на нем какой-нибудь не банальной, ну там Тетриса что-ли, к нему приложил.


Последний раз редактировалось Ethereal Сб июн 24, 2017 00:09, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Пт июн 23, 2017 23:37 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
Люди, подскажите пожалуйста для чего DROP в коде:
При начале исполнения CATCH на стеке лежит исполнимый токен. Внутри CATCH указатель стека запоминается в переменной HANDLER именно В ЭТОМ состоянии. Если снять со стека токен, то стек окажется условно пустым. То, что там лежит (было положено ранее) парочку CATCH-THROW просто не должно интересовать. Таким образом в переменной HANDLER запоминается такое состояние стека - условно пустое плюс одна положенная на него ячейка (с токеном). А THROW должно откатить стек так, чтобы стек оказался условно пустым плюс одна уложенная на него ячейка с кодом вовзрата. Поэтому при исполнении THROW восстанавливаем указатель стека из переменной HANDLER (получаем условно пустое состояние стека плюс ячейка на нем), делаем DROP (получаем именно условно пустое состояние стека) и по R> укладываем на стек код возврата. В итоге после снятия кода возврата со стека по IF стек оказывается условно пустым (таким каким был до ['] имя CATCH IF ), что нам и нужно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб июн 24, 2017 00:18 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
А ты смотрел, что делает CREATE или : ? ;)
CREATE(у меня) создаёт только заголовок(без CALL ?).
Я тут другое делаю, но пока не знаю когда оно будет(а пока делайте с моей системой что хотите :)) )...
P.s. Если заранее, то у меня такая идея(на счёт типов хранимых данных в системе):
CREATE A создаёт массив A (т.е. A возвращает указатель на него)
VARIABLE B создаёт переменную B@ и слово записи B! (исползую PAD)
CONSTANT C создаёт константу C


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб июн 24, 2017 02:31 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 128
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
_KROL писал(а):
А ты смотрел, что делает CREATE или : ? ;)
CREATE(у меня) создаёт только заголовок(без CALL ?).
Я тут другое делаю, но пока не знаю когда оно будет(а пока делайте с моей системой что хотите :)) )...
P.s. Если заранее, то у меня такая идея(на счёт типов хранимых данных в системе):
CREATE A создаёт массив A (т.е. A возвращает указатель на него)
VARIABLE B создаёт переменную B@ и слово записи B! (использую PAD)
CONSTANT C создаёт константу C

Извини _KROL, я не против твоих изысканий, но для кого ты пишешь свою систему, будет ли она востребована?, так на вскидку, детский лепет.. все CREATE, VARIABLE, CONSTANT в твоей системе, чем лучше, что уже реализовано, в том же spf?
Цитата:
P.s. Если заранее, то у меня такая идея(на счёт типов хранимых данных в системе)
Ну это совсем не по философии форту, хотя может ошибаюсь, я не вижу смысла..
Может Си или Pascal на форте решил написать :)


Последний раз редактировалось F-MAP Вс июн 25, 2017 14:39, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб июн 24, 2017 18:24 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
CREATE A создаёт массив A (т.е. A возвращает указатель на него)

После CREATE A исполнение A у тебя не возвращает указатель на массив, а вешает MS-DOS. Потому-что без CALL


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Сб июн 24, 2017 18:45 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
_KROL писал(а):
А ты смотрел, что делает CREATE или : ? ;)
Сердце так кровью обливается от некоторых мест в твоем исходнике, я просто не выдержу смотреть там все. Хотя бы вот от этого :
Код:
chkFENCE:
mov dx,[FENCE_v]
test bh,$80
  jnz @f
test dh,$80  ; (1)DX>(0)BX
  jnz !!FENCE
cmp dx,bx
  jg !!FENCE
ret
@@:
test dh,$80 ; (0)DX<(1)BX
  jnz @f
ret
@@:
cmp dx,bx
  jg !!FENCE ; ( -1 > -2 | 0xFFFF > 0xFFFE )
ret
Вот так не проще было бы, не ?
Код:
chkFENCE:
mov dx,[FENCE_v]
cmp dx,bx
ja !!FENCE
ret
Твой вариант - сравнение двух беззнаковых чисел знаковыми JG. Наверное потому, что ты только их и выучил. Мой вариант - сравнение двух беззнаковых чисел беззнаковыми-же JA.
_KROL писал(а):
(а пока делайте с моей системой что хотите :)) )...
Так мы и делаем. Выискиваем в ней ошибки, причесываем ее. Пока она ни на что другое не годится. Ты самый свой первый исходник выложил с целой грядкой багов, даже поверхностно не протестировав. Ну и что по твоему с ним будут теперь делать, если ты сходу так свою систему зарекомендовал ? Именно это.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс июн 25, 2017 00:04 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Документация по интелу в помощь :ved;

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс июн 25, 2017 20:09 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Цитата:
Извини _KROL, я не против твоих изысканий, но для кого ты пишешь свою систему, будет ли она востребована?, так на вскидку, детский лепет.. все CREATE, VARIABLE, CONSTANT в твоей системе, чем лучше, что уже реализовано, в том же spf?
В общем то я пишу пока для себя. А вообще, ещё когда я начинал с ним ознакамливаться я понял одну простую истину: у Форта нет простой, понятной всем документации. Поэтому я порою и хотел найти полностью понятную систему или книгу. (Может я многого хочу?)
Потом есть другой вариант: написать и изучить всё самому или с кем то. Если вспомнить Черезова, то ему не хватало крутой функциональной системы, поэтому он и создал SPF. Я же вижу, что не хватает документации и доступных полностью для понимания систем. Поэтому, мне кажется, Форт и не процветает в полную силу. Если будут возражения, вспомню, что в школах изучают немного схожие между собой языки: Pascal или C/C++/Python(скоро возможно будут только C-подобные ЯП). С другой стороны я где-то читал, что Форт проще Basic. И человек, с доступной сейчас информацией, я думаю, быстрее поймёт полностью QB чем SPF(хотя, я может ориентируюсь на школьника?:| ).
Если я ошибаюсь, поправте меня, но таковы мои мысли.

Итак, вот основные цели, моих экспериментов:
1.Закрепить и расширить знания ассемблера x86
Например, я понял, что в i8086 после CALL идёт ОТНОСИТЕЛЬНЫЙ адрес(по сравнению с i8080).
call y ; отн. адрес y = y-x
x: nop
y: nop

2.Изучить Форт, его возможности, по своей возможности расширить и приукрасить его (пока не очень-то получается :] )
3.Повлиять на других, в каком-то смысле...
Ну и ещё кое-то.

Цитата:
Может Си или Pascal на форте решил написать :)

Pascal на Форте 8] Зачем мне учиться писать Форт на ассемблере, а потом на созданном Форте делать Pascal??
Кстати, я уже как-то пробовал калькулятор написать. Написал. Далее хотел написать компилятор Степлера на Степлере, однако почему-то(отдельная история)...
Короче я уже давно на уровне синтаксиса Форта и не жалуюсь. Он меня даже чем-то привлекает :)

Цитата:
Документация по интелу в помощь

Согласен, моменты с JA я где-то пропустил. Это и подтверждает сказанное мною выше, что я продолжаю изучать ассемблер.

А сейчас я переписал опять мой Форт. Пока кое-чего нет, но потом будет ;)


Вложения:
Комментарий к файлу: Пререлиз, но лучше, чем KR4tH010 (однако с АИ, но я так понял, так лучше отлаживать)
F0099.ZIP [18.02 Кб]
Скачиваний: 480
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс июн 25, 2017 20:14 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 365
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Цитата:
Поэтому я порою и хотел найти полностью понятную систему или книгу.

Единственное, что пожалуй мне сильно понравилось, так это одна из систем на ftp://ftp.taygeta.com/pub/

P.s. Кстати, не подскажети ли, где найти архиватор, который открывает старые *.ARC?


Вложения:
Комментарий к файлу: Вот эта
m4th14.zip [145.12 Кб]
Скачиваний: 492
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Моя система(_KROL)
СообщениеДобавлено: Вс июн 25, 2017 20:54 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 128
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Цитата:
С другой стороны я где-то читал, что Форт проще Basic. И человек, с доступной сейчас информацией, я думаю, быстрее поймёт полностью QB чем SPF(хотя, я может ориентируюсь на школьника?:| ).
Если я ошибаюсь, поправьте меня, но таковы мои мысли.

В совкое время форт был на ровне с Basic де факто в поставках с Микрошей, Искра 1030 и др. .. с полной документацией


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

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


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

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


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

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