Ответы пользователя по тегу Forth
  • Чем лексему\слова отличаются от функций и переменных?

    @Sussh
    В Forth любые слова могут быть переопределены. Абсолютно любые, даже те вроде как которые являются "системными" (но это высший пилотаж). Если вы выбрали слово и определили его как функцию, то в дальнейшем оно и будет себя вести как функция. Но надо понимать, что при "написании" есть кабы два режима: кодогенерация и выполнения.
    Выполнение -- это примерно как в командной строке вызывать что-то... Слова сразу выполняются (ну за хитрым исключением).
    Кодогенерация -- это когда вы например начали писать новое слово и хотите его наполнить какими-то действиями, тогда слова в большинстве своём не выполняются, а дописывают в кодофайл создаваемого слова вызов на себя. Потом когда закончите создание слова, при его выполнении по этим обращениям будет выполнено обращения к этим словам.
    Теперь об исключениях: любое слово можно "пометить", что оно всегда только выполняется как только попадается, не зависимо от режима. При выполнении такие слова обычно выполняют достаточно очевидные, с точки зрения семантики действия, но совсем не обязательно очевидные действия с точки зрения кодогенерации.
    Ответ написан
    Комментировать