| Автор |
Сообщение |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
KPG писал(а): Не вижу повода для "желчи". Откуда возьмется какая-то желчь? Это если бы у меня было сочетание полного непрофессионализма и диких амбиций, то могла бы появиться желчная реакция на сделанное кем-то, просто потому что 1) сам вперед идти не могу 2) а раз так, то и никого пропускать не буду. Но у меня в основном реакции вида "зачем бы пригодилось?" и "а как бы мне это применить". KPG писал(а): Он, что то кому то обещал публикуя открыто реализации своих идей Если человек что-то делает, оно рано или поздно "просачивается", хотя бы в виде косвенной информации. KPG писал(а): Но самый известный рабочий пример - Оптимизатор в SPF4 ... Это именно такой пример, на которые я указываю как на ложные и запутывающие. Оптимизатор в любой форме - это не конечный продукт. Конечный продукт - это то, чем пользуются, а не что преобразуют или добавляют в свое конечное изделие. Есть даже аббревиатуры B2B и B2C - то есть "business to business" и "business to consumer". Любые компиляторы, библиотеки и оптимизаторы - это B2B. Оно не формирует продукт, оно передается дальше по технологической цепочке тем, кто такой продукт сделает. А продуктом может быть телевизор, электросамокат, станок, кофеварка и что угодно еще, чем будут пользоваться как телевизором и кофеваркой, а не как "чем-то с оптимизированным Фортом внутри". Откуда и вопрос - вот этот оптимизатор, он что изменил в конечных продуктах? Изображение лучше стало, кофе вкуснее, самокат быстрее, или что? Ответы "быстрее программа и меньше памяти" тоже не отсюда. Это все внутреннее дело разработчиков. Если бы "программа стала настолько меньше, что появилась возможность поставить память меньше и дешевле, поэтому снизилась цена" - это вариант результата. А кусок внутреннего процесса разработки по замене одного кода на другой - это все еще внутренний процесс. От него вред в том, что такие процессы затягивают, подменяя конечные цели на промежуточные атрибуты. Длиться это может очень долго, при этом человек начнет отмахиваться от реальных задач, продолжая играть по им самим выдуманным правилам.
[quote="KPG"]Не вижу повода для "желчи". [/quote] Откуда возьмется какая-то желчь? Это если бы у меня было сочетание полного непрофессионализма и диких амбиций, то могла бы появиться желчная реакция на сделанное кем-то, просто потому что 1) сам вперед идти не могу 2) а раз так, то и никого пропускать не буду. Но у меня в основном реакции вида "зачем бы пригодилось?" и "а как бы мне это применить". [quote="KPG"] Он, что то кому то обещал публикуя открыто реализации своих идей[/quote] Если человек что-то делает, оно рано или поздно "просачивается", хотя бы в виде косвенной информации. [quote="KPG"]Но самый известный рабочий пример - Оптимизатор в SPF4 ...[/quote] Это именно такой пример, на которые я указываю как на ложные и запутывающие. Оптимизатор в любой форме - это не конечный продукт. Конечный продукт - это то, чем пользуются, а не что преобразуют или добавляют в свое конечное изделие. Есть даже аббревиатуры B2B и B2C - то есть "business to business" и "business to consumer". Любые компиляторы, библиотеки и оптимизаторы - это B2B. Оно не формирует продукт, оно передается дальше по технологической цепочке тем, кто такой продукт сделает. А продуктом может быть телевизор, электросамокат, станок, кофеварка и что угодно еще, чем будут пользоваться как телевизором и кофеваркой, а не как "чем-то с оптимизированным Фортом внутри". Откуда и вопрос - вот этот оптимизатор, он что изменил в конечных продуктах? Изображение лучше стало, кофе вкуснее, самокат быстрее, или что? Ответы "быстрее программа и меньше памяти" тоже не отсюда. Это все внутреннее дело разработчиков. Если бы "программа стала настолько меньше, что появилась возможность поставить память меньше и дешевле, поэтому снизилась цена" - это вариант результата. А кусок внутреннего процесса разработки по замене одного кода на другой - это все еще внутренний процесс. От него вред в том, что такие процессы затягивают, подменяя конечные цели на промежуточные атрибуты. Длиться это может очень долго, при этом человек начнет отмахиваться от реальных задач, продолжая играть по им самим выдуманным правилам.
|
|
|
 |
Добавлено: Сб янв 17, 2026 21:06 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Hishnik писал(а): Мне вот интересно, куда именно. А точнее, есть ли среди этих встраиваний конечные продукты, а не просто "возьмем редкую ОС, теперь в нее встроен редкий Форт". Не вижу повода для "желчи". Он, что то кому то обещал публикуя открыто реализации своих идей (в рамках взятых в какой форме обязательств). Мне. к примеру. что было интересно доработку делал сам публикуя доработку. P.S. @"У самурая нет цели, а только путь" Но самый известный рабочий пример - Оптимизатор в SPF4 ... (Fasm, Qemu, LCC ...) А с кем он работал по договорам вряд ли тут напищут
[quote="Hishnik"]Мне вот интересно, куда именно. А точнее, есть ли среди этих встраиваний конечные продукты, а не просто "возьмем редкую ОС, теперь в нее встроен редкий Форт".[/quote] Не вижу повода для "желчи". Он, что то кому то обещал публикуя открыто реализации своих идей (в рамках взятых в какой форме обязательств). Мне. к примеру. что было интересно доработку делал сам публикуя доработку.
P.S. @"У самурая нет цели, а только путь" :shuffle; Но самый известный рабочий пример - Оптимизатор в SPF4 ... (Fasm, Qemu, LCC ...) А с кем он работал по договорам вряд ли тут напищут
|
|
|
 |
Добавлено: Сб янв 17, 2026 19:14 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
|
Мне вот интересно, куда именно. А точнее, есть ли среди этих встраиваний конечные продукты, а не просто "возьмем редкую ОС, теперь в нее встроен редкий Форт".
Мне вот интересно, куда именно. А точнее, есть ли среди этих встраиваний конечные продукты, а не просто "возьмем редкую ОС, теперь в нее встроен редкий Форт".
|
|
|
 |
Добавлено: Сб янв 17, 2026 18:27 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Hishnik писал(а): Просматривается именно та логика, о которой я постоянно пишу. "Понадобилось... встроен Форт". Именно так это и работает. Это одна из возможностей использования Форт (Мак444 куда только его не встраивал - можно хоть. целый подраздел на форуме выделить для таких примеров). Начать перечислять? 
[quote="Hishnik"] Просматривается именно та логика, о которой я постоянно пишу. "Понадобилось... встроен Форт". Именно так это и работает.[/quote] Это одна из возможностей использования Форт (Мак444 куда только его не встраивал - можно хоть. целый подраздел на форуме выделить для таких примеров). Начать перечислять? :)
|
|
|
 |
Добавлено: Сб янв 17, 2026 16:43 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Цитата: А на днях я закончил разработку интерпретатора Forth (пока без API обёртки), исполнив свой 40-летний долг, после того как мне понадобились числовые движки в узлах ориентированного графа процессов на базе GenServer OTP в Elixir. Просматривается именно та логика, о которой я постоянно пишу. "Понадобилось... встроен Форт". Именно так это и работает.
[quote]А на днях я закончил разработку интерпретатора Forth (пока без API обёртки), исполнив свой 40-летний долг, после того как мне понадобились числовые движки в узлах ориентированного графа процессов на базе GenServer OTP в Elixir.[/quote] Просматривается именно та логика, о которой я постоянно пишу. "Понадобилось... встроен Форт". Именно так это и работает.
|
|
|
 |
Добавлено: Сб янв 17, 2026 16:00 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Новое с Хабр: Опыт реализации интерпретатора Forth на языке ElixirP.S. Под статьёй аж целых 3-три комментария! Можно и такую статью упомянуть (ввиду необычности решения) XEH — редактор с живым кодом и путешествиями во времени 
Новое с Хабр:
[url=https://habr.com/ru/articles/985894/]Опыт реализации интерпретатора Forth на языке Elixir[/url]
P.S. Под статьёй аж целых 3-три комментария!
Можно и такую статью упомянуть (ввиду необычности решения)
[url=https://habr.com/ru/articles/956520/]XEH — редактор с живым кодом и путешествиями во времени[/url]
[img]https://habrastorage.org/webt/w6/so/qz/w6soqzgklaqlolm1tbcytv0pb3m.gif[/img] [img]https://habrastorage.org/webt/bn/s5/pu/bns5pualwytjn5jcqcylrahslw8.gif[/img]
|
|
|
 |
Добавлено: Сб янв 17, 2026 14:22 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
"Ключница водку делала".  Ну то есть "ИИ текст писал". Тупиковый путь из-за отсутствия достаточного объема текста для обучения этого ИИ. Отсюда и смешные с точки зрения Форта пассажи, надерганные из того, что нашлось и хоть как-то похоже по ключевым словам. Я уже не говорю о пресловутой гибкости Форта. Цитата: как на языке Forth сложить два числа на стеке?
ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:25] В языке Forth для сложения двух чисел, находящихся на стеке, используется оператор +. Вот простой пример:
1. Сначала вы помещаете два числа на стек. Например, чтобы сложить числа 3 и 4, вы можете ввести:
3 4
2. Затем вы вызываете оператор +, чтобы сложить эти два числа:
+
Таким образом, полная последовательность команд будет выглядеть так:
3 4 +
После выполнения этой команды на вершине стека будет результат сложения, то есть 7.
как на языке Forth сложить два числа на стеке и взять младшие 8 бит?
ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:26] В языке Forth, чтобы сложить два числа на стеке и взять младшие 8 бит результата, вы можете использовать оператор + для сложения и оператор AND с маской 255 (что соответствует младшим 8 битам). Вот пример последовательности команд:
1. Поместите два числа на стек. Например, чтобы сложить 300 и 200:
300 200
2. Сложите их:
+
3. Примените маску, чтобы получить младшие 8 бит:
255 AND
Полная последовательность команд будет выглядеть так:
300 200 + 255 AND
После выполнения этих команд на вершине стека будет результат, содержащий младшие 8 бит суммы двух чисел.
если в языке Forth слово + ограничивает разрядность суммы 8 младшими битами, то как на языке Forth сложить два числа на стеке и взять младшие 8 бит?
ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:27] В языке Forth операция сложения + сама по себе не ограничивает разрядность суммы. Чтобы сложить два числа и получить только младшие 8 бит результата, вы можете использовать операцию сложения, а затем применить битовую маску. Вот как это можно сделать:
1. Поместите два числа на стек.
2. Используйте оператор + для сложения.
3. Примените оператор AND с маской 255 (или 0xFF), чтобы получить младшие 8 бит.
Вот пример последовательности команд:
300 200 + 255 AND
В этом примере:
• 300 и 200 помещаются на стек.
• + складывает их, и результат помещается на стек.
• 255 AND берет результат сложения и применяет к нему битовую маску, оставляя только младшие 8 бит.
После выполнения этих команд на вершине стека будет значение, соответствующее младшим 8 битам суммы двух чисел. Вот! То есть было четко сказано, что + уже модифицирован и делает ровно то, что нужно. Но теперь пробую это указать явно. Цитата: я переписал слово + в языке Forth, чтобы оно ограничивало разрядность суммы 8 младшими битами. как мне в этом случае сложить два числа на стеке и взять младшие 8 бит?
ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:31] Если вы переписали оператор + в языке Forth так, чтобы он автоматически ограничивал сумму до младших 8 бит, то вам просто нужно использовать этот новый оператор для сложения двух чисел на стеке.
Предположим, что вы определили новое слово + следующим образом (это всего лишь пример):
: + ( n1 n2 -- sum ) + 255 AND ;
Теперь, чтобы сложить два числа и получить результат с ограничением по младшим 8 битам, вы можете просто использовать ваш новый оператор + следующим образом:
300 200 + .
Здесь:
• 300 и 200 помещаются на стек.
• + выполняет сложение и автоматически применяет маску для получения только младших 8 бит.
• . выводит результат на экран.
Таким образом, если вы уже определили новое поведение для оператора +, вам не нужно дополнительно применять маску; просто используйте его как обычно.
Но теперь что? Нужно сначала все исходники скормить ИИ, чтобы он разобрался, что к чему?
"Ключница водку делала". :D Ну то есть "ИИ текст писал". Тупиковый путь из-за отсутствия достаточного объема текста для обучения этого ИИ. Отсюда и смешные с точки зрения Форта пассажи, надерганные из того, что нашлось и хоть как-то похоже по ключевым словам. Я уже не говорю о пресловутой гибкости Форта.
[quote][b]как на языке Forth сложить два числа на стеке?[/b]
ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:25] В языке Forth для сложения двух чисел, находящихся на стеке, используется оператор +. Вот простой пример:
1. Сначала вы помещаете два числа на стек. Например, чтобы сложить числа 3 и 4, вы можете ввести:
3 4
2. Затем вы вызываете оператор +, чтобы сложить эти два числа:
+
Таким образом, полная последовательность команд будет выглядеть так:
3 4 +
После выполнения этой команды на вершине стека будет результат сложения, то есть 7.
[b]как на языке Forth сложить два числа на стеке и взять младшие 8 бит? [/b] ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:26] В языке Forth, чтобы сложить два числа на стеке и взять младшие 8 бит результата, вы можете использовать оператор + для сложения и оператор AND с маской 255 (что соответствует младшим 8 битам). Вот пример последовательности команд:
1. Поместите два числа на стек. Например, чтобы сложить 300 и 200:
300 200
2. Сложите их:
+
3. Примените маску, чтобы получить младшие 8 бит:
255 AND
Полная последовательность команд будет выглядеть так:
300 200 + 255 AND
После выполнения этих команд на вершине стека будет результат, содержащий младшие 8 бит суммы двух чисел.
[b]если в языке Forth слово + ограничивает разрядность суммы 8 младшими битами, то как на языке Forth сложить два числа на стеке и взять младшие 8 бит? [/b] ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:27] В языке Forth операция сложения + сама по себе не ограничивает разрядность суммы. Чтобы сложить два числа и получить только младшие 8 бит результата, вы можете использовать операцию сложения, а затем применить битовую маску. Вот как это можно сделать:
1. Поместите два числа на стек.
2. Используйте оператор + для сложения.
3. Примените оператор AND с маской 255 (или 0xFF), чтобы получить младшие 8 бит.
Вот пример последовательности команд:
300 200 + 255 AND
В этом примере:
• 300 и 200 помещаются на стек.
• + складывает их, и результат помещается на стек.
• 255 AND берет результат сложения и применяет к нему битовую маску, оставляя только младшие 8 бит.
После выполнения этих команд на вершине стека будет значение, соответствующее младшим 8 битам суммы двух чисел.[/quote]
Вот! То есть было четко сказано, что + уже модифицирован и делает ровно то, что нужно.
Но теперь пробую это указать явно.
[quote][b]я переписал слово + в языке Forth, чтобы оно ограничивало разрядность суммы 8 младшими битами. как мне в этом случае сложить два числа на стеке и взять младшие 8 бит? [/b] ChatGPT 4.5 | DeepSeek | Midjourney, [21.06.2025 14:31] Если вы переписали оператор + в языке Forth так, чтобы он автоматически ограничивал сумму до младших 8 бит, то вам просто нужно использовать этот новый оператор для сложения двух чисел на стеке.
Предположим, что вы определили новое слово + следующим образом (это всего лишь пример):
: + ( n1 n2 -- sum ) + 255 AND ;
Теперь, чтобы сложить два числа и получить результат с ограничением по младшим 8 битам, вы можете просто использовать ваш новый оператор + следующим образом:
300 200 + .
Здесь:
• 300 и 200 помещаются на стек.
• + выполняет сложение и автоматически применяет маску для получения только младших 8 бит.
• . выводит результат на экран.
Таким образом, если вы уже определили новое поведение для оператора +, вам не нужно дополнительно применять маску; просто используйте его как обычно.
[/quote]
Но теперь что? Нужно сначала все исходники скормить ИИ, чтобы он разобрался, что к чему?
|
|
|
 |
Добавлено: Сб июн 21, 2025 15:30 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Нет, ну реально помойка какая-то. "Оптимизация стековых операций" Цитата: : compare-pairs ( a1 b1 a2 b2 -- flag ) 2OVER 2OVER = SWAP = AND ; Это компактный способ сравнить два двойных значения. Алё, почему на вершине стека неправильный ответ, а под ним тонны мусора? Больше всего умиляет связка SWAP =. Как такое вообще придумать можно? Цитата: Часто встречается паттерн, когда значение дублируется лишь для того, чтобы позже его отбросить. Пример: : show-square ( n -- ) DUP * . ; Если результат не нужен дальше, можно написать: : show-square ( n -- ) DUP * . DROP ; Однако лучше переписать так, чтобы явно показать отсутствие интереса к результату: : show-square ( n -- ) DUP * . ; А если n более не нужен: : show-square ( n -- ) DUP * . ; Важно не оставлять на стеке лишние значения, особенно в исполняемых словах, где стек должен оставаться сбалансированным. Про неуместный здесь DROP молчу, выглядит так, словно автор решил последовать своему же совету и не оставлять на стеке лишние значения, но слегка перестарался. Но как можно писать 4 одинаковых (почти) примера в одном абзаце? Либо автор никогда не писал на Форте, либо нейросеть. Много воды, мало информации (даже с учетом недостоверной). Выглядит как какое-то вредительство. Хех, на этом же сайте по куче других языков учебники есть. Например, монументальный труд по bra*nfuck: https://nweb42.com/books/brainfuck/"Набор команд Brainfuck" https://nweb42.com/books/brainfuck/nabor-komand-brainfuck/Цитата: . (Вывод символа) Выводит ASCII-символ, соответствующий значению в текущей ячейке. +++++++. Этот код выведет символ G (код 71 в ASCII).
Серьезно? Откуда такая уверенность? Цитата: Пример бесконечного цикла: +[.-] Этот код увеличивает значение текущей ячейки на 1, затем в цикле выводит ASCII-символ и уменьшает значение. Цикл продолжается, пока значение не станет 0. Так "бесконечного" или "до 0"? (Подсказка: до 0)
Нет, ну реально помойка какая-то.
"Оптимизация стековых операций" [quote]: compare-pairs ( a1 b1 a2 b2 -- flag ) 2OVER 2OVER = SWAP = AND ; Это компактный способ сравнить два двойных значения. [/quote]Алё, почему на вершине стека неправильный ответ, а под ним тонны мусора? Больше всего умиляет связка SWAP =. Как такое вообще придумать можно?[quote]Часто встречается паттерн, когда значение дублируется лишь для того, чтобы позже его отбросить. Пример: : show-square ( n -- ) DUP * . ; Если результат не нужен дальше, можно написать: : show-square ( n -- ) DUP * . DROP ; Однако лучше переписать так, чтобы явно показать отсутствие интереса к результату: : show-square ( n -- ) DUP * . ; А если n более не нужен: : show-square ( n -- ) DUP * . ; Важно не оставлять на стеке лишние значения, особенно в исполняемых словах, где стек должен оставаться сбалансированным.[/quote]Про неуместный здесь DROP молчу, выглядит так, словно автор решил последовать своему же совету и не оставлять на стеке лишние значения, но слегка перестарался. Но как можно писать 4 одинаковых (почти) примера в одном абзаце?
Либо автор никогда не писал на Форте, либо нейросеть. Много воды, мало информации (даже с учетом недостоверной). Выглядит как какое-то вредительство.
Хех, на этом же сайте по куче других языков учебники есть. Например, монументальный труд по bra*nfuck: [url]https://nweb42.com/books/brainfuck/[/url] "Набор команд Brainfuck" [url]https://nweb42.com/books/brainfuck/nabor-komand-brainfuck/[/url] [quote]. (Вывод символа) Выводит ASCII-символ, соответствующий значению в текущей ячейке. +++++++. Этот код выведет символ G (код 71 в ASCII). [/quote]Серьезно? Откуда такая уверенность?[quote]Пример бесконечного цикла: +[.-] Этот код увеличивает значение текущей ячейки на 1, затем в цикле выводит ASCII-символ и уменьшает значение. Цикл продолжается, пока значение не станет 0.[/quote]Так "бесконечного" или "до 0"? (Подсказка: до 0)
|
|
|
 |
Добавлено: Пт июн 20, 2025 12:00 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
|
Как-то да, материалы странные. Во-первых, фактические ошибки. Похоже на нейросеть, которая основывается на MSIL, где команда store действительно берет параметры для записи в память в порядке addr, data. Но опять же, с LCD работают... немного не так (это если обтекаемо выражаться).
Во-вторых, совершенно нерабочая схема представления материала. Это когда языков было относительно немного, можно было просто рассказывать "как оно вот в этом языке", подразумевая, что он уже как-то к человеку попал, и теперь нужно разобраться по приложенному описанию. А сейчас языков масса, и более того, генераторы языков, разные DSL, веб-компиляторы и проч. и проч. Ну и как в этой ситуации удерживать внимание разработчика в режиме "вещания"? Можно разве что скатиться в состояние "эх, не понимаете вы своего счастья, бездари", но это ведь не то? (Или, возможно, именно то, чего ищут некоторые апологеты странных технологий?).
В подобных описаниях стоило бы начать с подробного пояснения того, какая именно польза будет программисту, который обратит внимание на Форт. Без обтекаемых формулировок вида "расширить кругозор" или "освоить гибкий, мощный, элегантный (и еще 123 прилагательных) язык программирования". Вот конкретно, по пунктам - "было-стало". А отсюда уже будет и описание того, как оно сделано.
Как-то да, материалы странные. Во-первых, фактические ошибки. Похоже на нейросеть, которая основывается на MSIL, где команда store действительно берет параметры для записи в память в порядке addr, data. Но опять же, с LCD работают... немного не так (это если обтекаемо выражаться).
Во-вторых, совершенно нерабочая схема представления материала. Это когда языков было относительно немного, можно было просто рассказывать "как оно вот в этом языке", подразумевая, что он уже как-то к человеку попал, и теперь нужно разобраться по приложенному описанию. А сейчас языков масса, и более того, генераторы языков, разные DSL, веб-компиляторы и проч. и проч. Ну и как в этой ситуации удерживать внимание разработчика в режиме "вещания"? Можно разве что скатиться в состояние "эх, не понимаете вы своего счастья, бездари", но это ведь не то? (Или, возможно, именно то, чего ищут некоторые апологеты странных технологий?).
В подобных описаниях стоило бы начать с подробного пояснения того, какая именно польза будет программисту, который обратит внимание на Форт. Без обтекаемых формулировок вида "расширить кругозор" или "освоить гибкий, мощный, элегантный (и еще 123 прилагательных) язык программирования". Вот конкретно, по пунктам - "было-стало". А отсюда уже будет и описание того, как оно сделано.
|
|
|
 |
Добавлено: Пт июн 20, 2025 01:31 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Не про Форт, но все же... https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D0%B1%D0%B8%D0%B1%D0%B0%D0%B9%D1%82Друзья, а вы в курсе, что в природе существуют кибибайты и даже (не при дамах будет сказано) йобибайты? А килобайт уже давно весит 1000 байт, а не 1024? Живите теперь с этим 
Не про Форт, но все же... [url]https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D0%B1%D0%B8%D0%B1%D0%B0%D0%B9%D1%82[/url] Друзья, а вы в курсе, что в природе существуют кибибайты и даже (не при дамах будет сказано) йобибайты? А килобайт уже давно весит 1000 байт, а не 1024? Живите теперь с этим :D
|
|
|
 |
Добавлено: Чт июн 19, 2025 21:47 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
О, да это просто кладезь лживой и непроверенной информации  Потыкал наугад главу "Низкоуровневое программирование" и волосы дыбом  "Работа с портами ввода-вывода" Цитата: Пример управления LCD дисплеем: : lcd-init ( -- ) 0x2000 1 ! \ Установка инициализации дисплея на порт 0x2000 0x2004 0x01 ! \ Отправка команды на дисплей ; : lcd-clear ( -- ) 0x2004 0x02 ! \ Отправка команды очистки экрана ; В данном примере создаются два слова: lcd-init для инициализации дисплея и lcd-clear для очистки экрана. Порты 0x2000 и 0x2004 используются для обмена командами с дисплеем. "Управление прерываниями" Цитата: Пример того, как можно задать обработчик для прерывания, может выглядеть так: : setup-interrupt INTERRUPT-VECTOR interrupt-handler ! ; Здесь INTERRUPT-VECTOR — это специальный адрес памяти, где хранятся векторные таблицы прерываний, а ! используется для записи в это место нашего обработчика. Но больше всего убило "Взаимодействие с аппаратным обеспечением" Цитата: Пример записи в порт: : write-port ( addr data -- ) dup ! \ записываем data в порт, указанный адресом addr ; Цитата: Пример: : set-register ( addr value -- ) dup ! \ записываем значение в регистр по адресу addr ; Покорнейше прошу пардона за мой французский, но какой, нахрен, dup? И какой dup это писал? Среди меня бытует мнение, что этот (не побоюсь этого слова) "учебник" нейросеть родила.
О, да это просто кладезь лживой и непроверенной информации :) Потыкал наугад главу "Низкоуровневое программирование" и волосы дыбом :)
"Работа с портами ввода-вывода" [quote]Пример управления LCD дисплеем: : lcd-init ( -- ) 0x2000 1 ! \ Установка инициализации дисплея на порт 0x2000 0x2004 0x01 ! \ Отправка команды на дисплей ; : lcd-clear ( -- ) 0x2004 0x02 ! \ Отправка команды очистки экрана ; В данном примере создаются два слова: lcd-init для инициализации дисплея и lcd-clear для очистки экрана. Порты 0x2000 и 0x2004 используются для обмена командами с дисплеем.[/quote] "Управление прерываниями" [quote]Пример того, как можно задать обработчик для прерывания, может выглядеть так: : setup-interrupt INTERRUPT-VECTOR interrupt-handler ! ; Здесь INTERRUPT-VECTOR — это специальный адрес памяти, где хранятся векторные таблицы прерываний, а ! используется для записи в это место нашего обработчика.[/quote] Но больше всего убило "Взаимодействие с аппаратным обеспечением" [quote]Пример записи в порт: : write-port ( addr data -- ) dup ! \ записываем data в порт, указанный адресом addr ;[/quote][quote]Пример: : set-register ( addr value -- ) dup ! \ записываем значение в регистр по адресу addr ;[/quote]Покорнейше прошу пардона за мой французский, но какой, нахрен, dup? И какой dup это писал?
Среди меня бытует мнение, что этот (не побоюсь этого слова) "учебник" нейросеть родила.
|
|
|
 |
Добавлено: Чт июн 19, 2025 20:43 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Я не знаю что за человек это писал, но он должен гореть на костре. https://nweb42.com/books/forth/Приличных слов нет. Просто взгляните на то, какая там предлагается реализация ООП Ни структур, ни инициализаторов, ни деструкторов. Про полиморфизм ничего внятного. Хотя самое простое решение это обращаение к структуре данных объекта типа : SET-X 100 CELLS + @ EXECUTE ; За многопоточность/многозадачность хочется автора воскресить и сжечь заново. Оказывается в форт-системах нет поддержки сабжа. SP-Forth версии 4.20 – 15 лет уже системе, где есть поддержка многопоточности. А раздел про отпимизацию сводится к великому изречению "нужно делать хорошо, плохо делать не нужно".
Я не знаю что за человек это писал, но он должен гореть на костре. https://nweb42.com/books/forth/
Приличных слов нет.
Просто взгляните на то, какая там предлагается реализация ООП :^) Ни структур, ни инициализаторов, ни деструкторов. Про полиморфизм ничего внятного. Хотя самое простое решение это обращаение к структуре данных объекта типа : SET-X 100 CELLS + @ EXECUTE ;
За многопоточность/многозадачность хочется автора воскресить и сжечь заново. Оказывается в форт-системах нет поддержки сабжа. SP-Forth версии 4.20 – 15 лет уже системе, где есть поддержка многопоточности.
А раздел про отпимизацию сводится к великому изречению "нужно делать хорошо, плохо делать не нужно".
|
|
|
 |
Добавлено: Чт июн 19, 2025 12:06 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Цитата: Ранние годы ФОРТа "Код с прямыми/косвенными потоками" - так шитый код, наверное, ещё не обзывали 
[quote]Ранние годы ФОРТа[/quote] "Код с прямыми/косвенными потоками" - так шитый код, наверное, ещё не обзывали :)
|
|
|
 |
Добавлено: Сб май 02, 2020 05:56 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
Публикация на Хабре. Перевод: Ранние годы ФОРТа (Автор оригинала: Chuck Moore)
Публикация на Хабре. Перевод: [url=https://habr.com/ru/post/500042/]Ранние годы ФОРТа[/url] (Автор оригинала: Chuck Moore)
|
|
|
 |
Добавлено: Пт май 01, 2020 20:46 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: ссылка на статьи по Форту |
 |
|
|
[url=https://archive.org/download/forthinderrobotik/Forth_in_der_Robotik.pdf]Forth in der Robotik[/url] [url=https://archive.org/download/isforthdead/Is_Forth_dead.pdf]Is Forth Dead[/url] [url=https://archive.org/download/teachingstackmachineswithaslowforth/Teaching_stackmachines_with_a_slow_Forth.pdf]Teaching Stackmachines With A Slow Forth[/url]
|
|
|
 |
Добавлено: Сб окт 26, 2019 18:36 |
|
|
 |
|