Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
vpn289 писал(а): PS: Надо бы куда-то переехать с этой темой. Это в рабочем порядке, по желанию. Специальных прав пользователя для создания новой темы с технической точки зрения не требуется.
[quote="vpn289"]PS: Надо бы куда-то переехать с этой темой.[/quote] Это в рабочем порядке, по желанию. Специальных прав пользователя для создания новой темы с технической точки зрения не требуется.
|
|
|
|
Добавлено: Пт мар 31, 2017 12:55 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
vpn289 писал(а): [Согласен] Кроме чужого мнения. Чаще всего код читают и другие люди. Обеспечение читабельности - вопрос второй по сравнению с преимуществами, ради которых стоит применять FORTH. Броуди писал(а): Во время одного из наших интервью я спросил Мура, использовал ли он какой-нибудь вид диаграмм для планирования концептуальной модели или кодировал прямо на Форте. Вот его ответ: "Концептуальной моделью "является" Форт. Я годами учился думать в этом духе". Может ли кто-нибудь научиться так думать? "У меня есть нечестное преимущество. Я закодировал свой стиль программирования, и другие люди восприняли его. Я был поражен тем, что это случилось. И я чувствую, что это приятное преимущество, поскольку ведь это мой стиль другие пытаются скопировать. Могут ли они научиться думать так же, как я? Мне кажется, что могут. Это - всего лишь вопрос практики, а у меня практики больше". vpn289 писал(а): Да и самому по прошествии времени бывает необходимость заглянуть. Читать самому "написанное так, как думал" гораздо легче, чем приведенное к какой-либо "нормальной форме". vpn289 писал(а): А Вы что, противник читабельного кода? Нет, просто, профессионал. Читабельность чужого кода определяется совершенно другими параметрами, чем пишут в книжках про "структурное программирование" и "рефактринг". Точнее, всего одним параметром - длиной текста. И чем меньше избыточность текста, тем более он читабелен (просто короче). А, чем больше программист применяет средств "нормализации", тем избыточность выше. vpn289 писал(а): Надо бы куда-то переехать с этой темой. Ко мне на форум. Надо же, хотя бы, проверить, работает ли он...
[quote="vpn289"][Согласен] Кроме чужого мнения. Чаще всего код читают и другие люди.[/quote]Обеспечение читабельности - вопрос второй по сравнению с преимуществами, ради которых стоит применять FORTH. [quote="Броуди"]Во время одного из наших интервью я спросил Мура, использовал ли он какой-нибудь вид диаграмм для планирования концептуальной модели или кодировал прямо на Форте. Вот его ответ: "Концептуальной моделью "является" Форт. Я годами учился думать в этом духе". Может ли кто-нибудь научиться так думать? "У меня есть нечестное преимущество. Я закодировал свой стиль программирования, и другие люди восприняли его. Я был поражен тем, что это случилось. И я чувствую, что это приятное преимущество, поскольку ведь это мой стиль другие пытаются скопировать. Могут ли они научиться думать так же, как я? Мне кажется, что могут. Это - всего лишь вопрос практики, а у меня практики больше".[/quote] [quote="vpn289"]Да и самому по прошествии времени бывает необходимость заглянуть.[/quote]Читать самому "написанное так, как думал" гораздо легче, чем приведенное к какой-либо "нормальной форме".
[quote="vpn289"]А Вы что, противник читабельного кода?[/quote]Нет, просто, профессионал. Читабельность чужого кода определяется совершенно другими параметрами, чем пишут в книжках про "структурное программирование" и "рефактринг". Точнее, всего одним параметром - длиной текста. И чем меньше избыточность текста, тем более он читабелен (просто короче). А, чем больше программист применяет средств "нормализации", тем избыточность выше.
[quote="vpn289"]Надо бы куда-то переехать с этой темой.[/quote]Ко мне на форум. Надо же, хотя бы, проверить, работает ли он...
|
|
|
|
Добавлено: Чт мар 30, 2017 22:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
Hishnik писал(а): Я даже обнаружил залежи своих старых ассемблеров, начиная еще с Z80. Использовать можно и то, и то, в зависимости от того, что конкретно облегчает введение CREATE-слов. В Форте, в принципе, известно, что CREATE является инструментом создания определяющих слов, и для кросс-ассемблирования такие слова как CMD, OPCODE и им подобные - вполне кандидаты на создание и использование. Фанатизм плох в любых проявлениях, а от введения чего-то вроде : OPCODE CREATE , DOES> ... я не вижу ничего по умолчанию плохого. У меня собственно, по дизайну системы требуются минимальные средства. Микроядо с минимумом слов ( в нем нет даже арифметики), далее слой ассемблера, слой низкоуровневых слов, слой компилятора и т.д. И так вся система компилируется из собственных исходных кодов во время загрузки. Тоже, наверное в другую тему.
[quote="Hishnik"]Я даже обнаружил залежи своих старых ассемблеров, начиная еще с Z80. Использовать можно и то, и то, в зависимости от того, что конкретно облегчает введение CREATE-слов. В Форте, в принципе, известно, что CREATE является инструментом создания определяющих слов, и для кросс-ассемблирования такие слова как CMD, OPCODE и им подобные - вполне кандидаты на создание и использование. Фанатизм плох в любых проявлениях, а от введения чего-то вроде : OPCODE CREATE , DOES> ... я не вижу ничего по умолчанию плохого.[/quote] У меня собственно, по дизайну системы требуются минимальные средства. Микроядо с минимумом слов ( в нем нет даже арифметики), далее слой ассемблера, слой низкоуровневых слов, слой компилятора и т.д. И так вся система компилируется из собственных исходных кодов во время загрузки. Тоже, наверное в другую тему.
|
|
|
|
Добавлено: Чт мар 30, 2017 22:03 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
gudleifr писал(а): Более того, когда Вы пишете на FORTH - Вы пишете так, как Вам удобно. Так, как Вам легче думать и описывать свои мысли. Выигрыш в том и состоит, что Вам не надо оглядываться на нормы, стандарты и, вообще, чужое мнение. С большинством из этого согласен. Кроме чужого мнения. Чаще всего код читают и другие люди. Да и самому по прошествии времени бывает необходимость заглянуть. А Вы что, противник читабельного кода? PS: Надо бы куда-то переехать с этой темой.
[quote="gudleifr"] Более того, когда Вы пишете на FORTH - Вы пишете так, как Вам удобно. Так, как Вам легче думать и описывать свои мысли. Выигрыш в том и состоит, что Вам не надо оглядываться на нормы, стандарты и, вообще, чужое мнение.[/quote] С большинством из этого согласен. Кроме чужого мнения. Чаще всего код читают и другие люди. Да и самому по прошествии времени бывает необходимость заглянуть. А Вы что, противник читабельного кода?
PS: Надо бы куда-то переехать с этой темой.
|
|
|
|
Добавлено: Чт мар 30, 2017 21:46 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
Я даже обнаружил залежи своих старых ассемблеров, начиная еще с Z80. Использовать можно и то, и то, в зависимости от того, что конкретно облегчает введение CREATE-слов. В Форте, в принципе, известно, что CREATE является инструментом создания определяющих слов, и для кросс-ассемблирования такие слова как CMD, OPCODE и им подобные - вполне кандидаты на создание и использование. Фанатизм плох в любых проявлениях, а от введения чего-то вроде : OPCODE CREATE , DOES> ... я не вижу ничего по умолчанию плохого.
Я даже обнаружил залежи своих старых ассемблеров, начиная еще с Z80. Использовать можно и то, и то, в зависимости от того, что конкретно облегчает введение CREATE-слов. В Форте, в принципе, известно, что CREATE является инструментом создания определяющих слов, и для кросс-ассемблирования такие слова как CMD, OPCODE и им подобные - вполне кандидаты на создание и использование. Фанатизм плох в любых проявлениях, а от введения чего-то вроде : OPCODE CREATE , DOES> ... я не вижу ничего по умолчанию плохого.
|
|
|
|
Добавлено: Чт мар 30, 2017 16:55 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
vpn289 писал(а): Какая запись описывает то, что она делает? Не КАК, а именно ЧТО? Неправильный ответ: Разумеется, через двоеточие - т.к. она позволяет легкое наращивание этажей, преобразование параметров и привычное комментирование: Например, : NEXT, 0FFAD W, 0E0 C, ; : VARIABLE (CREATE) 053 C, 0BB C, >MARK NEXT, >RESOLVE 0, ; Правильный ответ: Зависит от контекста, в котором Вы будете использовать эти слова. Ассемблер (тем более, частный) пишется не ради ассемблера, а ради введения конкретных кодов в конкретное место. Более того, когда Вы пишете на FORTH - Вы пишете так, как Вам удобно. Так, как Вам легче думать и описывать свои мысли. Выигрыш в том и состоит, что Вам не надо оглядываться на нормы, стандарты и, вообще, чужое мнение.
[quote="vpn289"]Какая запись описывает то, что она делает? Не КАК, а именно ЧТО?[/quote] Неправильный ответ: Разумеется, через двоеточие - т.к. она позволяет легкое наращивание этажей, преобразование параметров и привычное комментирование: Например,
: NEXT, 0FFAD W, 0E0 C, ; : VARIABLE (CREATE) 053 C, 0BB C, >MARK NEXT, >RESOLVE 0, ;
Правильный ответ: Зависит от контекста, в котором Вы будете использовать эти слова. Ассемблер (тем более, частный) пишется не ради ассемблера, а ради введения конкретных кодов в конкретное место. Более того, когда Вы пишете на FORTH - Вы пишете так, как Вам удобно. Так, как Вам легче думать и описывать свои мысли. Выигрыш в том и состоит, что Вам не надо оглядываться на нормы, стандарты и, вообще, чужое мнение.
|
|
|
|
Добавлено: Чт мар 30, 2017 11:05 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
gudleifr писал(а): vpn289 писал(а): opcode... И чем тогда отличается A B C D ... N opcode Z от : Z A C, B C, D C, ... ; ? Только тем, что "двоеточие" позволяет и с параметрами поиграть? Тем более, что ENTRY , оно же (CREATE) , оно же _header у Вас уже есть. Функционально это синонимы. А какой вариант более читабелен? Какая запись описывает то, что она делает? Не КАК, а именно ЧТО?
[quote="gudleifr"][quote="vpn289"]opcode...[/quote]И чем тогда отличается
A B C D ... N opcode Z
от
: Z A C, B C, D C, ... ;
?
Только тем, что "двоеточие" позволяет и с параметрами поиграть? Тем более, что ENTRY , оно же (CREATE) , оно же _header у Вас уже есть.[/quote] Функционально это синонимы. А какой вариант более читабелен? Какая запись описывает то, что она делает? Не КАК, а именно ЧТО?
|
|
|
|
Добавлено: Чт мар 30, 2017 10:49 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
В общем - мои изыскания в ассемблеростроении.
avr32sysreg - имена регистров, avr32_asm.f - собственно сама реализация (без поддержки 16-битного формата команд - места было не жалко)).
Основные приколы данного ассемблера - приходилось много играться с различными вариантами и форматами команд. В основном - совпадало с результатами работы штатного асм-компилятора данного ядра (но не без косяков))
В общем - мои изыскания в ассемблеростроении.
avr32sysreg - имена регистров, avr32_asm.f - собственно сама реализация (без поддержки 16-битного формата команд - места было не жалко)).
Основные приколы данного ассемблера - приходилось много играться с различными вариантами и форматами команд. В основном - совпадало с результатами работы штатного асм-компилятора данного ядра (но не без косяков))
|
|
|
|
Добавлено: Ср мар 29, 2017 19:15 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
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 писал(а): ... Что-то сегодня тролли опять распрыгались. Стоит попросить код - и у них начинается истерика.
[quote="vpn289"]opcode...[/quote]И чем тогда отличается
A B C D ... N opcode Z
от
: Z A C, B C, D C, ... ;
?
Только тем, что "двоеточие" позволяет и с параметрами поиграть? Тем более, что ENTRY , оно же (CREATE) , оно же _header у Вас уже есть.
[quote="vpn289"]В "обычном" ассемблере это сделали до Вас. И много раз.[/quote]И почему не воспользоваться?
[quote="vpn289"]Проверять на отсутствие не надо, система ругается если нет такого слова.[/quote]Ага. Написать код из 25 команд. Выматериться на первую ошибку. Убедиться, что такое слово есть, просто не так называется. Проверить, на всякий случай, по таблице... И так еще раз 5-10. Не проще сразу таблицу посмотреть?
[quote="vpn289"]Слово "могу" обозначает возможность, а не обязательность.[/quote]А не проще не фантазировать, а писать то, что надо?
[quote="vpn289"]Зачем новое ядро? В том и прелесть, что можно обходиться минимальным ядром, к которому добавлять нужные слова.[/quote]Ага. Уже 50 лет тут собираются люди, которые обсуждают стандарты, пишут каждый, минимум, по паре-другой минимальных, красивых, оптимальных (нужное подчеркнуть) ядер и все никак не напишут... Не пора ли понять, что прелесть минимальности ядра в том и состоит, что его легко переписать?
[quote="vpn289"]Даже великие и ужасные Мур и Броуди не увидели некоторых очевидных вещей и сделали кое-что важное вразрез с ими же утвержденными принципами.[/quote]Опять Вы фантазируете. Большинство "общеизвестных ошибок" Мура и Броуди яйца выеденного не стоят. Скорее, стоит говорить о непонимании этих самых "принципов" большинством современных фортеров.
[quote="vpn289"]Во-первых, у меня нет инструмента для сбора такой статистики. А во-вторых, просто лень.[/quote]Тогда о чем мы говорим? На "нэт" - и проблэмы нэт! Кубический ассемблер в вакууме может быть сколь угодно прекрасен.
[quote="KPG & Hishnik"]...[/quote] Что-то сегодня тролли опять распрыгались. Стоит попросить код - и у них начинается истерика.
|
|
|
|
Добавлено: Ср мар 29, 2017 00:21 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
vpn289 писал(а): Спасибо, учту. Можно расслабиться и представить, что на пороге замка гостей встречает шут, размахивающий деревянным мечом и утверждающий, что замок его и он самый известный и прославленный рыцарь. При наличии свободного времени шуту можно даже подыграть.
[quote="vpn289"]Спасибо, учту. [/quote] Можно расслабиться и представить, что на пороге замка гостей встречает шут, размахивающий деревянным мечом и утверждающий, что замок его и он самый известный и прославленный рыцарь. При наличии свободного времени шуту можно даже подыграть.
|
|
|
|
Добавлено: Ср мар 29, 2017 00:07 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
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. И, чтобы не быть голословным, приведите, пожалуйста, статистику, которую я просил, для одной из Ваших программ. Во-первых, у меня нет инструмента для сбора такой статистики. А во-вторых, просто лень.
[quote="gudleifr"]"Нет, уж лучше - Вы к нам". Что конкретно делает opcode? Может, я чего недопонял?[/quote] [code]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[/code]
[quote="gudleifr"]Если это так, то это ошибка. "Задолго до" существуют слово ENTRY (или (CREATE) ) - создание словарной статьи, и "запятая". Все остальные "двоеточия" определяются через них за пару касаний клавиш. [/quote] Нет. CREATE это уже сильно позже. Сначала HEADER. Только поля имени и связи. [quote="gudleifr"]Да, но в "обычном" ассемблере после этого лезть в таблицы не надо. В отличие от Вашего. Сами же написали - приходится проверять, и при необходимости добавлять.[/quote] В "обычном" ассемблере это сделали до Вас. И много раз. Проверять на отсутствие не надо, система ругается если нет такого слова.
[quote="vpn289"]Числа я пишу один раз, при определении мнемоники, а мнемонику могу использовать потом сотню раз.[/quote][quote="gudleifr"]Сотни? Значит Вы что-то совсем неправильно делаете. При "сотнях" проще отказаться от FORTH и писать на нормальном языке ассемблера..[/quote] Вы модальность улавливаете? Слово "могу" обозначает возможность, а не обязательность.
[quote="gudleifr"]Не в смысле "нового набора слов", а в смысле "нового FORTH-ядра".[/quote] Зачем новое ядро? В том и прелесть, что можно обходиться минимальным ядром, к которому добавлять нужные слова.
[quote="gudleifr"]Т.е. за предыдущие 50 лет ни одному фортеру это не удалось, и вдруг удастся?[/quote]Представьте себе. Даже великие и ужасные Мур и Броуди не увидели некоторых очевидных вещей и сделали кое-что важное вразрез с ими же утвержденными принципами. [quote="gudleifr"] P.S. И, чтобы не быть голословным, приведите, пожалуйста, статистику, которую я просил, для одной из Ваших программ.[/quote] Во-первых, у меня нет инструмента для сбора такой статистики. А во-вторых, просто лень.
|
|
|
|
Добавлено: Вт мар 28, 2017 23:55 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
KPG писал(а): vpn289 писал(а): 3) Опять 25. Похоже Вы ещё не в курсе абсурдности самой полемики с Gudliefer/ P.S. У него же однозначно определена позиция в диалоге с собеседником - в виде подписи ко всем сообщениям Спасибо, учту.
[quote="KPG"][quote="vpn289"]3) Опять 25. [/quote] Похоже Вы ещё не в курсе абсурдности самой полемики с Gudliefer/ P.S. У него же однозначно определена позиция в диалоге с собеседником - в виде подписи ко всем сообщениям :)[/quote] Спасибо, учту. :)
|
|
|
|
Добавлено: Вт мар 28, 2017 23:29 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
vpn289 писал(а): И поясните кодом "Нет, уж лучше - Вы к нам". Что конкретно делает opcode? Может, я чего недопонял? vpn289 писал(а): Раскрою еще тему. opcode в моей системе существует ДО двоеточия( его аналога). Задолго до. Если это так, то это ошибка. "Задолго до" существуют слово ENTRY (или (CREATE) ) - создание словарной статьи, и "запятая". Все остальные "двоеточия" определяются через них за пару касаний клавиш. vpn289 писал(а): При написании любого иного ассемблера вам все равно придется лезть в таблицы. Да, но в "обычном" ассемблере после этого лезть в таблицы не надо. В отличие от Вашего. Сами же написали - приходится проверять, и при необходимости добавлять. vpn289 писал(а): Числа я пишу один раз, при определении мнемоники, а мнемонику могу использовать потом сотню раз. Сотни? Значит Вы что-то совсем неправильно делаете. При "сотнях" проще отказаться от FORTH и писать на нормальном языке ассемблера. vpn289 писал(а): Каждая задача требует разработки своего собственного языка. ( В смысле набора слов). Не в смысле "нового набора слов", а в смысле "нового FORTH-ядра". vpn289 писал(а): В процессе разработки можно создать инструмент, который внезапно окажется универсальным. Т.е. за предыдущие 50 лет ни одному фортеру это не удалось, и вдруг удастся? P.S. И, чтобы не быть голословным, приведите, пожалуйста, статистику, которую я просил, для одной из Ваших программ.
[quote="vpn289"]И поясните кодом[/quote]"Нет, уж лучше - Вы к нам". Что конкретно делает opcode? Может, я чего недопонял?
[quote="vpn289"]Раскрою еще тему. opcode в моей системе существует ДО двоеточия( его аналога). Задолго до.[/quote]Если это так, то это ошибка. "Задолго до" существуют слово ENTRY (или (CREATE) ) - создание словарной статьи, и "запятая". Все остальные "двоеточия" определяются через них за пару касаний клавиш.
[quote="vpn289"]При написании любого иного ассемблера вам все равно придется лезть в таблицы.[/quote]Да, но в "обычном" ассемблере после этого лезть в таблицы не надо. В отличие от Вашего. Сами же написали - приходится проверять, и при необходимости добавлять.
[quote="vpn289"]Числа я пишу один раз, при определении мнемоники, а мнемонику могу использовать потом сотню раз.[/quote]Сотни? Значит Вы что-то совсем неправильно делаете. При "сотнях" проще отказаться от FORTH и писать на нормальном языке ассемблера.
[quote="vpn289"]Каждая задача требует разработки своего собственного языка. ( В смысле набора слов).[/quote]Не в смысле "нового набора слов", а в смысле "нового FORTH-ядра".
[quote="vpn289"]В процессе разработки можно создать инструмент, который внезапно окажется универсальным.[/quote]Т.е. за предыдущие 50 лет ни одному фортеру это не удалось, и вдруг удастся?
P.S. И, чтобы не быть голословным, приведите, пожалуйста, статистику, которую я просил, для одной из Ваших программ.
|
|
|
|
Добавлено: Вт мар 28, 2017 18:44 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
vpn289 писал(а): 3) Опять 25. Похоже Вы ещё не в курсе абсурдности самой полемики с Gudliefer/ P.S. У него же однозначно определена позиция в диалоге с собеседником - в виде подписи ко всем сообщениям
[quote="vpn289"]3) Опять 25. [/quote] Похоже Вы ещё не в курсе абсурдности самой полемики с Gudliefer/ P.S. У него же однозначно определена позиция в диалоге с собеседником - в виде подписи ко всем сообщениям :)
|
|
|
|
Добавлено: Вт мар 28, 2017 18:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт-ассемблер |
|
|
gudleifr писал(а): vpn289 писал(а): Иными словами слово opcode является создающим для слов-мнемоник. Слово-мнемоника же, в свою очередь компилирует на вершину словаря заданные опкоды. Т.е. opcode делает тоже самое, что и двоеточие (с запятыми внутри), только через задницу. Чевой-то? Вообще, так рассуждать - "есть двоеточие, а все остальное через задницу" странно. Раскрою еще тему. opcode в моей системе существует ДО двоеточия ( его аналога). Задолго до. И поясните кодом, пожалуйста, что Вы имели ввиду. Не улавливаю. vpn289 писал(а): Моя идея в том, что нет нужды пыхтеть и пытаться сделать красивый ассемблер. О чем и речь. Вам понадобились слова, оставляющие на вершине словаря некоторые "кубики". Т.к. для каждого нового кубика Вы лезете в таблицы, чтобы скомпилировать его вручную, а для каждого нового набора кубиков проверяете список уже введенных, то этот метод не является ассемблером и не является особо удобным. И уж, конечно, любая задача, требующая кодов, потребует и конструкций из наборов кубиков, т.е. вместо вместо ассемблера Вы быстро получите набор макросов, удобный(!) для этой программы, но никак не претендующий на "ассемблерность", тем более, на применимость в других программах. Т.е., как раз, то, что я имел в виду - вставить в программу коды без ассемблера проще, чем с ним. Попробуйте прикинуть статистику, как я выше.[/quote] Опять мы не понимаем друг друга. 1) При написании любого иного ассемблера вам все равно придется лезть в таблицы. 2) Какие "кубики"? Мне приятнее не выписывать 0x 48 B, 0x FF B, 0x C0 B, а написать inc_rax. Числа я пишу один раз, при определении мнемоники, а мнемонику могу использовать потом сотню раз. И другому человеку гораздо понятнее что обозначет inc_rax супротив 0x 48 B, 0x FF B, 0x C0 B,. Собственно в этом и основная функция любого ассемблера. Пользоваться не машкодом, а мнемониками. 3) Опять 25. Маленький существенный нюанс Форта. Программа на нем по сути и являет набор макросов, удобный для нее самой. Каждая задача требует разработки своего собственного языка. ( В смысле набора слов). В процессе разработки можно создать инструмент, который внезапно окажется универсальным.
[quote="gudleifr"][quote="vpn289"]Иными словами слово opcode является создающим для слов-мнемоник. Слово-мнемоника же, в свою очередь компилирует на вершину словаря заданные опкоды.[/quote]Т.е. opcode делает тоже самое, что и двоеточие (с запятыми внутри), только через задницу.[/quote] Чевой-то? Вообще, так рассуждать - "есть двоеточие, а все остальное через задницу" странно. Раскрою еще тему. opcode в моей системе существует ДО двоеточия ( его аналога). Задолго до. И поясните кодом, пожалуйста, что Вы имели ввиду. Не улавливаю.
[quote="vpn289"]Моя идея в том, что нет нужды пыхтеть и пытаться сделать красивый ассемблер.[/quote]О чем и речь. Вам понадобились слова, оставляющие на вершине словаря некоторые "кубики". Т.к. для каждого нового кубика Вы лезете в таблицы, чтобы скомпилировать его вручную, а для каждого нового набора кубиков проверяете список уже введенных, то этот метод не является ассемблером и не является особо удобным. И уж, конечно, любая задача, требующая кодов, потребует и конструкций из наборов кубиков, т.е. вместо вместо ассемблера Вы быстро получите набор макросов, удобный(!) для этой программы, но никак не претендующий на "ассемблерность", тем более, на применимость в других программах.
Т.е., как раз, то, что я имел в виду - вставить в программу коды без ассемблера проще, чем с ним. Попробуйте прикинуть статистику, как я выше.[/quote] Опять мы не понимаем друг друга. 1) При написании любого иного ассемблера вам все равно придется лезть в таблицы. 2) Какие "кубики"? Мне приятнее не выписывать 0x 48 B, 0x FF B, 0x C0 B, а написать inc_rax. Числа я пишу один раз, при определении мнемоники, а мнемонику могу использовать потом сотню раз. И другому человеку гораздо понятнее что обозначет inc_rax супротив 0x 48 B, 0x FF B, 0x C0 B,. Собственно в этом и основная функция любого ассемблера. Пользоваться не машкодом, а мнемониками. 3) Опять 25. Маленький существенный нюанс Форта. Программа на нем по сути и являет набор макросов, удобный для нее самой. Каждая задача требует разработки своего собственного языка. ( В смысле набора слов). В процессе разработки можно создать инструмент, который внезапно окажется универсальным.
|
|
|
|
Добавлено: Вт мар 28, 2017 18:16 |
|
|
|
|