Есть такое пожелание. Вот только зачем это делать? Только потому, что разработчики системы так сказали? Какой предыдущий нотфаунд надо вызывать, если никакого другого нотфаунда в данном контексте не предусмотрено? Поведение «нашей лексемы» в предлагаемом мной варианте использования нотфаунда заключается в создании этой лексемы. То-есть, она всегда «наша». Все очень красиво получается, все оттестировано и работает.
Вы невнимательно читали. Вариант
VALUES:
11 aa
22 bb
33 cc
;VALUES
Я не реализовывал вообще. Ввиду его бесперспективности. А так, да, конечно, если с нулевым вариантом использовать отброшенный вариант записи, эффект будет такой.
Форт прекрасен тем, что позволяет обходиться без циклов. Ваше решение, безусловно, имеет право на жизнь. Но оно совершенно в лоб, в духе традиционных языков. Кроме того, я предлагаю не просто реализацию определения кучки переменных, а некий универсальный механизм, базовый принцип, с помощью которого можно решать разнообразные задачи. Заметил, что очень мало людей должно оценивают красоту и мощь определяющих слов, в которых скрыта суть Форта.
Сможете использовать аналогичный подход для, например, констант? А чтобы можно было константе присвоить вычисляемое значение?
Да, не комильфо :) Вообще не будет работать. Во-первых, strcmp — функция сишная, во-вторых nextname как такового в Форте нет. В-третьих, будет скомпилирована лишь первая переменная.
В Gforth для подобного можно использовать обработку исключений CATCH… THROW. Собственно, NOTFOUND является некоторой надстройкой над базовым механизмом исключений.
А тут совсем нечего программировать. Это WINAPIшный PolyBezier на массиве из 22 точек. ГСЧ, с помощью которого заполняется массив, можно попробовать любой.
В предыдущем топике было дело. Внешний вид похож, да. Идеология иная. Стеки, словарь, синтаксис — это часть, антураж.
Главное в Форте — возможность создания собственных определяющих слов. Все языки похожи на чемодан с инструментами, или кладовку где лежат чемоданы инструментов. В Форте есть один инструмент, с помощью которого можно сделать любой нужный инструмент. Этакая звуковая отвертка.
Конечно. В такие штучки Форт ложится очень хорошо. Форт-машина, по хорошему, штука слоистая.
1-й уровень — опкод-ассемблер
2-й уровень — ассемблер-низкоуровневое слово Форта, всякие + @ и т.п., причем совсем необязательно стараться написать их все, что есть в стандарте.
3-й уровень — высокоуровневые определения через: CREATE VARIABLE и т.п. Вот определяющие слова, двоеточие, СREATE DOES> реализовывать обязательно. Это фундамент следующего,
4-го уровня — уровня приложений.
Непонятно, какое развитие требуется от форт-машин. Сама по-себе форт-машина реализуется для любой железки за несколько рабочих дней. Тот же GForth портирован на кучу платформ. Надо просто пользоваться языком. Никто ведь не мешает в SP-Forth определить, например, команду CRC-32, которая есть в системе команд современных процессоров. Очень мало народу пишет на форте. И платить деньги за разработку на нем никто не хочет. Комьюнити организовать или найти не проблема. Часть его вот она, прямо здесь.
Для работы с базами данных есть наработки еще у Андрея Черезова и Дмитрия Якимова. То-есть какие-то библиотеки в комплекте есть. Разбираться нужно с этим. С другой стороны, если хорошо знать предметную область, можно наработать необходимые абстракции. Собственно, хорошо поставленное задание уже является решением на Форте. Вполне возможно, что решение Вашей проблемы с базой данных лежит в иной плоскости.
VALUES:
11 aa
22 bb
33 cc
;VALUES
Я не реализовывал вообще. Ввиду его бесперспективности. А так, да, конечно, если с нулевым вариантом использовать отброшенный вариант записи, эффект будет такой.
Сможете использовать аналогичный подход для, например, констант? А чтобы можно было константе присвоить вычисляемое значение?
Кстати, выше высказана очень хорошая идея со спиралью.
Главное в Форте — возможность создания собственных определяющих слов. Все языки похожи на чемодан с инструментами, или кладовку где лежат чемоданы инструментов. В Форте есть один инструмент, с помощью которого можно сделать любой нужный инструмент. Этакая звуковая отвертка.
1-й уровень — опкод-ассемблер
2-й уровень — ассемблер-низкоуровневое слово Форта, всякие + @ и т.п., причем совсем необязательно стараться написать их все, что есть в стандарте.
3-й уровень — высокоуровневые определения через: CREATE VARIABLE и т.п. Вот определяющие слова, двоеточие, СREATE DOES> реализовывать обязательно. Это фундамент следующего,
4-го уровня — уровня приложений.