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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Вт мар 28, 2017 23:29 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
KPG писал(а):
vpn289 писал(а):
3) Опять 25.

Похоже Вы ещё не в курсе абсурдности самой полемики с Gudliefer/

P.S. У него же однозначно определена позиция в диалоге с собеседником - в виде подписи ко всем сообщениям :)

Спасибо, учту. :)


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

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
gudleifr писал(а):
"Нет, уж лучше - Вы к нам". Что конкретно делает opcode? Может, я чего недопонял?

Код:
db   6,"opcode",0
   alignhe
   dq   nfa_37
   dq   _opcode_code
_opcode_code:
   call   _header
   mov   rax,[here_value]
   mov   qword [rax],op_compile_code
   call _pop
   mov cl,al
       mov rdx,[here_value]
   add rdx,cell_size
   mov [rdx],al
   inc rdx
   and rcx,0ffh
   add qword [here_value],cell_size*2
     
oc1:
   call _pop
   mov [rdx],al
   inc rdx
   loop oc1
   call _align
   ret

   align cell_size

op_compile_code:
   movzx rcx,byte [rax+cell_size]
   inc rax
   mov rdx,[here_value]
   add [here_value],rcx
occ1:
   mov bl,[rax+cell_size]
   mov [rdx],bl
   inc rax
   inc rdx
   dec cl
   jne occ1
   ret
;----------------------------
align cell_size


gudleifr писал(а):
Если это так, то это ошибка. "Задолго до" существуют слово ENTRY (или (CREATE) ) - создание словарной статьи, и "запятая". Все остальные "двоеточия" определяются через них за пару касаний клавиш.

Нет. CREATE это уже сильно позже. Сначала HEADER. Только поля имени и связи.
gudleifr писал(а):
Да, но в "обычном" ассемблере после этого лезть в таблицы не надо. В отличие от Вашего. Сами же написали - приходится проверять, и при необходимости добавлять.

В "обычном" ассемблере это сделали до Вас. И много раз.
Проверять на отсутствие не надо, система ругается если нет такого слова.

vpn289 писал(а):
Числа я пишу один раз, при определении мнемоники, а мнемонику могу использовать потом сотню раз.
gudleifr писал(а):
Сотни? Значит Вы что-то совсем неправильно делаете. При "сотнях" проще отказаться от FORTH и писать на нормальном языке ассемблера..
Вы модальность улавливаете? Слово "могу" обозначает возможность, а не обязательность.

gudleifr писал(а):
Не в смысле "нового набора слов", а в смысле "нового FORTH-ядра".

Зачем новое ядро? В том и прелесть, что можно обходиться минимальным ядром, к которому добавлять нужные слова.

gudleifr писал(а):
Т.е. за предыдущие 50 лет ни одному фортеру это не удалось, и вдруг удастся?
Представьте себе. Даже великие и ужасные Мур и Броуди не увидели некоторых очевидных вещей и сделали кое-что важное вразрез с ими же утвержденными принципами.
gudleifr писал(а):
P.S. И, чтобы не быть голословным, приведите, пожалуйста, статистику, которую я просил, для одной из Ваших программ.

Во-первых, у меня нет инструмента для сбора такой статистики. А во-вторых, просто лень.


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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Ср мар 29, 2017 00:21 
vpn289 писал(а):
opcode...
И чем тогда отличается

A B C D ... N opcode Z

от

: Z A C, B C, D C, ... ;

?

Только тем, что "двоеточие" позволяет и с параметрами поиграть?
Тем более, что ENTRY , оно же (CREATE) , оно же _header у Вас уже есть.

vpn289 писал(а):
В "обычном" ассемблере это сделали до Вас. И много раз.
И почему не воспользоваться?

vpn289 писал(а):
Проверять на отсутствие не надо, система ругается если нет такого слова.
Ага. Написать код из 25 команд. Выматериться на первую ошибку. Убедиться, что такое слово есть, просто не так называется. Проверить, на всякий случай, по таблице... И так еще раз 5-10. Не проще сразу таблицу посмотреть?

vpn289 писал(а):
Слово "могу" обозначает возможность, а не обязательность.
А не проще не фантазировать, а писать то, что надо?

vpn289 писал(а):
Зачем новое ядро? В том и прелесть, что можно обходиться минимальным ядром, к которому добавлять нужные слова.
Ага. Уже 50 лет тут собираются люди, которые обсуждают стандарты, пишут каждый, минимум, по паре-другой минимальных, красивых, оптимальных (нужное подчеркнуть) ядер и все никак не напишут... Не пора ли понять, что прелесть минимальности ядра в том и состоит, что его легко переписать?

vpn289 писал(а):
Даже великие и ужасные Мур и Броуди не увидели некоторых очевидных вещей и сделали кое-что важное вразрез с ими же утвержденными принципами.
Опять Вы фантазируете. Большинство "общеизвестных ошибок" Мура и Броуди яйца выеденного не стоят. Скорее, стоит говорить о непонимании этих самых "принципов" большинством современных фортеров.

vpn289 писал(а):
Во-первых, у меня нет инструмента для сбора такой статистики. А во-вторых, просто лень.
Тогда о чем мы говорим? На "нэт" - и проблэмы нэт! Кубический ассемблер в вакууме может быть сколь угодно прекрасен.

KPG & Hishnik писал(а):
...

Что-то сегодня тролли опять распрыгались. Стоит попросить код - и у них начинается истерика.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Ср мар 29, 2017 19:15 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
В общем - мои изыскания в ассемблеростроении.

avr32sysreg - имена регистров, avr32_asm.f - собственно сама реализация (без поддержки 16-битного формата команд - места было не жалко)).

Основные приколы данного ассемблера - приходилось много играться с различными вариантами и форматами команд. В основном - совпадало с результатами работы штатного асм-компилятора данного ядра (но не без косяков))


Вложения:
avr32sysreg.f [4.28 Кб]
Скачиваний: 1216
avr32_asm.f [41.3 Кб]
Скачиваний: 1226
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Чт мар 30, 2017 10:49 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
gudleifr писал(а):
vpn289 писал(а):
opcode...
И чем тогда отличается

A B C D ... N opcode Z

от

: Z A C, B C, D C, ... ;

?

Только тем, что "двоеточие" позволяет и с параметрами поиграть?
Тем более, что ENTRY , оно же (CREATE) , оно же _header у Вас уже есть.

Функционально это синонимы. А какой вариант более читабелен?
Какая запись описывает то, что она делает? Не КАК, а именно ЧТО?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Чт мар 30, 2017 11:05 
vpn289 писал(а):
Какая запись описывает то, что она делает? Не КАК, а именно ЧТО?

Неправильный ответ:
Разумеется, через двоеточие - т.к. она позволяет легкое наращивание этажей, преобразование параметров и привычное комментирование:
Например,

: NEXT, 0FFAD W, 0E0 C, ;
: VARIABLE (CREATE) 053 C, 0BB C, >MARK NEXT, >RESOLVE 0, ;

Правильный ответ:
Зависит от контекста, в котором Вы будете использовать эти слова. Ассемблер (тем более, частный) пишется не ради ассемблера, а ради введения конкретных кодов в конкретное место.
Более того, когда Вы пишете на FORTH - Вы пишете так, как Вам удобно. Так, как Вам легче думать и описывать свои мысли. Выигрыш в том и состоит, что Вам не надо оглядываться на нормы, стандарты и, вообще, чужое мнение.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Чт мар 30, 2017 16:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Я даже обнаружил залежи своих старых ассемблеров, начиная еще с Z80. Использовать можно и то, и то, в зависимости от того, что конкретно облегчает введение CREATE-слов. В Форте, в принципе, известно, что CREATE является инструментом создания определяющих слов, и для кросс-ассемблирования такие слова как CMD, OPCODE и им подобные - вполне кандидаты на создание и использование. Фанатизм плох в любых проявлениях, а от введения чего-то вроде : OPCODE CREATE , DOES> ... я не вижу ничего по умолчанию плохого.


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

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
gudleifr писал(а):
Более того, когда Вы пишете на FORTH - Вы пишете так, как Вам удобно. Так, как Вам легче думать и описывать свои мысли. Выигрыш в том и состоит, что Вам не надо оглядываться на нормы, стандарты и, вообще, чужое мнение.

С большинством из этого согласен. Кроме чужого мнения. Чаще всего код читают и другие люди. Да и самому по прошествии времени бывает необходимость заглянуть.
А Вы что, противник читабельного кода?

PS: Надо бы куда-то переехать с этой темой.


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

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
Я даже обнаружил залежи своих старых ассемблеров, начиная еще с Z80. Использовать можно и то, и то, в зависимости от того, что конкретно облегчает введение CREATE-слов. В Форте, в принципе, известно, что CREATE является инструментом создания определяющих слов, и для кросс-ассемблирования такие слова как CMD, OPCODE и им подобные - вполне кандидаты на создание и использование. Фанатизм плох в любых проявлениях, а от введения чего-то вроде : OPCODE CREATE , DOES> ... я не вижу ничего по умолчанию плохого.

У меня собственно, по дизайну системы требуются минимальные средства.
Микроядо с минимумом слов ( в нем нет даже арифметики), далее слой ассемблера, слой низкоуровневых слов, слой компилятора и т.д. И так вся система компилируется из собственных исходных кодов во время загрузки.
Тоже, наверное в другую тему.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт-ассемблер
СообщениеДобавлено: Чт мар 30, 2017 22:24 
vpn289 писал(а):
[Согласен] Кроме чужого мнения. Чаще всего код читают и другие люди.
Обеспечение читабельности - вопрос второй по сравнению с преимуществами, ради которых стоит применять FORTH.
Броуди писал(а):
Во время одного из наших интервью я спросил Мура, использовал ли он какой-нибудь вид диаграмм для планирования концептуальной модели или кодировал прямо на Форте.
Вот его ответ:
"Концептуальной моделью "является" Форт. Я годами учился думать в этом духе".
Может ли кто-нибудь научиться так думать?
"У меня есть нечестное преимущество. Я закодировал свой стиль программирования, и другие люди восприняли его. Я был поражен тем, что это случилось. И я чувствую, что это приятное преимущество, поскольку ведь это мой стиль другие пытаются скопировать. Могут ли они научиться думать так же, как я? Мне кажется, что могут. Это - всего лишь вопрос практики, а у меня практики больше".

vpn289 писал(а):
Да и самому по прошествии времени бывает необходимость заглянуть.
Читать самому "написанное так, как думал" гораздо легче, чем приведенное к какой-либо "нормальной форме".

vpn289 писал(а):
А Вы что, противник читабельного кода?
Нет, просто, профессионал. Читабельность чужого кода определяется совершенно другими параметрами, чем пишут в книжках про "структурное программирование" и "рефактринг". Точнее, всего одним параметром - длиной текста. И чем меньше избыточность текста, тем более он читабелен (просто короче). А, чем больше программист применяет средств "нормализации", тем избыточность выше.

vpn289 писал(а):
Надо бы куда-то переехать с этой темой.
Ко мне на форум. Надо же, хотя бы, проверить, работает ли он...


Последний раз редактировалось gudleifr Пт мар 31, 2017 14:02, всего редактировалось 1 раз.

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

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

Это в рабочем порядке, по желанию. Специальных прав пользователя для создания новой темы с технической точки зрения не требуется.


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

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


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

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


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

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