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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 110 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8
Автор Сообщение
 Заголовок сообщения: Re: В общем! О грустном. :(
СообщениеДобавлено: Пт апр 28, 2023 23:56 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Задал тут chatGPT вопрос про RPN
Цитата:
Можно ли утверждать, что в Форт языке нет даже RPN т.к. слово может быть как переменной так и операндом в любой позиции своего использования.


Цитата:
Нет, нельзя утверждать, что в Форт языке нет Reverse Polish Notation (RPN).

Хотя слова в Форт языке могут использоваться как операнды или переменные в зависимости от их контекста, это не исключает возможности использования RPN нотации в этом языке. В Форт языке можно использовать стековую машину, используя операторы, которые кладут данные на стек и извлекают их оттуда, чтобы выполнить операции.

Например, операторы SWAP, DUP и DROP могут быть использованы для манипуляций со стеком, а операторы, как +, -, *, / и MOD, могут выполнять математические операции над данными на стеке. Эти операторы можно использовать в RPN стиле, где операнды помещаются на стек, а затем операции выполняются с использованием этих операндов.

Таким образом, в Форт языке возможно использование RPN нотации, несмотря на то, что слова могут быть как переменными, так и операндами в зависимости от их контекста.


Цитата:
Но, если переменная в Форте яляется активным словом, то как её различать от слова-операции по классификации классичесуих языков?


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

Однако, в Форт языке существует некоторая конвенция именования переменных и операций, которая может помочь различать их. Как правило, переменные в Форт языке имеют имена, начинающиеся с буквы, а операции имеют имена, состоящие из одного или нескольких символов операторов, таких как +, -, *, / и т.д.

Кроме того, в Форт языке операции могут быть определены как слова-операторы, которые имеют особый синтаксис и аргументы. Например, операция сложения может быть определена как слово +, которое принимает два аргумента со стека и помещает результат на стек.

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


Цитата:
Но, если язык предполагает использования неявной конвенции в именовании своих ключевых слов как, к примеру, + и D+ и возможность переопределения их семантики, то почему, всё же, использование RPN важно для языка, а не просто определение формата выполнения Форт программы, как последователность взаимодействующих слов вне структуры RPN (RPN ведь, подразумевает структурный код программы?)


Цитата:
Вы правы, Форт язык предполагает использование неявной конвенции в именовании своих ключевых слов, и возможность переопределения их семантики, что может создавать определенную сложность при использовании RPN нотации в программировании на этом языке.

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

Использование RPN нотации позволяет ясно и консистентно определять порядок выполнения операций над данными на стеке, что может быть сложно достичь при использовании других форматов выполнения программ. В то же время, формат выполнения программ на Форт языке может быть осуществлен не только в виде RPN, но и в других формах, таких как инфиксная или постфиксная нотации, в зависимости от требований конкретной задачи и стиля программирования.

Таким образом, использование RPN важно для Форт языка, потому что она представляет собой естественный способ выполнения операций над данными на стеке, но это не означает, что Форт язык не может быть выполнен в других форматах выполнения программ.


P.S. Смущает только, что AI зачастую Форт могут идентифицировать как Фортран, если явно это не указать как Форт (Forth).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: В общем! О грустном. :(
СообщениеДобавлено: Вс апр 30, 2023 13:27 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Цитата:
Почему вопрос о демонстрации примеров кода метапрограммирования на Форт (Forth) труден для ответа?

Ответы AI: :)
Sage:
Цитата:
Вопрос о демонстрации примеров кода метапрограммирования на Форт (Forth) может быть трудным для ответа по нескольким причинам.

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

Во-вторых, метапрограммирование - это довольно сложная тема, которая требует глубокого понимания языка программирования, на котором пишется код, а также понимания механизмов, используемых для метапрограммирования. Некоторые аспекты метапрограммирования могут быть сложными и абстрактными, что может затруднять их демонстрацию и объяснение.

Наконец, Форт не является очень распространенным языком программирования, поэтому примеров метапрограммирования на этом языке может быть не так много, как на более популярных языках, таких как C++, Python или Java. Однако, существует ряд проектов, использующих метапрограммирование на Форт, например, библиотека Gforth.

Claude+
Цитата:
Есть несколько причин, почему примеры метапрограммирования на Форте могут быть трудны для понимания:

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

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

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

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

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

Все эти особенности Форта могут затруднять понимание примеров метапрограммирования, даже для опытных программистов. Поэтому неудивительно, что приведенные мной примеры могут быть не совсем очевидными.

Claude-instant
Цитата:
Вопрос о демонстрации примеров метапрограммирования на языке Forth труден для ответа по нескольким причинам:

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

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

Философия Forth ориентирована на итеративное развитие и эксперименты. Многое создается интуитивно, а не по заранее спланированным правилам. Это подразумевает, что хорошие примеры метапрограммирования лучше найти и изучить самостоятельно, а не получить их из готового ответа.

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

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

ChatGPT:
Цитата:
Вопрос о демонстрации примеров кода метапрограммирования на Форт (Forth) может быть труден для ответа по нескольким причинам:

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

Разнообразие подходов: В Форте существует множество подходов к метапрограммированию, и каждый программист может использовать свой собственный подход в зависимости от задачи, которую он решает. Это может привести к тому, что примеры кода метапрограммирования, предложенные различными программистами, будут отличаться друг от друга.

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

Таким образом, ответ на вопрос о демонстрации примеров кода метапрограммирования на Форт может быть трудным из-за сложности языка, многообразия подходов и отсутствия современных примеров.

Dragonfly
Цитата:
Потому что метапрограммирование на Форт (Forth) может быть достаточно сложным и имеет множество различных применений. Таким образом, примеры демонстрирующие данную технику отличаются друг от друга и зависят от конкретной задачи.


P.S. Что приводят эти "AI" в качестве примеров кода метапрограммирования на Форт даже приводить особого смысла нет.
И, даже базовый Форт не изучиiшь с помощью этих AI.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: В общем! О грустном. :(
СообщениеДобавлено: Пн май 01, 2023 01:12 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
Похоже на всплеск энтузиазма. Очередное "а давайте все вместе соберемся и продвинем Форт". Что плохо:.

Если это всё предполагается делать и/или с применением обученного AI бота на Форт язык
с транспиляцией в Форт и других языков, то почему не реально?

т.к. даже по отдельности, многое из представленного в этом списке так или иначе есть в реализации на Форт,


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: В общем! О грустном. :(
СообщениеДобавлено: Пн май 01, 2023 01:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Если это всё предполагается делать и/или с применением обученного AI бота на Форт язык
с транспиляцией в Форт и других языков, то почему не реально?

Потому что AI не должен восприниматься как очередная панацея. Это просто еще один виток "штрафного круга", наподобие "нам нужна Форт-IDE", "нам нужны библиотеки", "нам нужна Форт-ОС"... и вот потом-то и должно что-то этакое произойти. А теперь что - нужен обученный AI бот? :) И что тогда - что-то произойдет? А что конкретно?

KPG писал(а):
т.к. даже по отдельности, многое из представленного в этом списке так или иначе есть в реализации на Форт,

А если в целом, список очень неоднородный по сложности, да и по соотношение язык/алгоритм. Я даже не рассматриваю тот интересный момент, что при попытках реализовать хоть что-то за пределами простейших формул gforth придется переделывать вплоть до серьезных архитектурных изменений. А некоторые примеры там такие, что от Форта останется меньше 1%, а все остальное будет уровня "пришлось сначала на Форте сделать инструменты, и на них уже и писать".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: В общем! О грустном. :(
СообщениеДобавлено: Вт май 02, 2023 16:17 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Задал вопрос Какие бывают примеры метапрограммирования на Форт? на qna.habr.com.


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

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


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

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


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

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