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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Сб сен 19, 2015 21:16 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 112
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
KPG писал(а):
kzagradskiy писал(а):
P.S. Или так
Код:
10 и 2 сравни больше? ТО ... ИНАЧЕ ... ПРОДОЛЖАЕМ ....

и здесь возникает неоднозначность ситуации что с чем сравниваем (предположение что 10 больше 2-ух)

Так лучше читается. Вместо "ТО" можно написать "ТОГДА". Получится:
Код:
: завтрак
    спешим? 
        ТОГДА   
            овсянка
        ИНАЧЕ   
            яйца
        ЗАТЕМ 
    мытье
;

А если использовать стиль mOlega то можно продолжить в следующем духе.
Код:
ПЕРЕМЕННАЯ посуда
: мытье
    вода включить          ( ...TRUE )
    ОТСЮДА                 ( BEGIN )
        посуда взять       ( ...@ )
        его-же протереть   ( DUP... )
        его-же ополоснуть  ( DUP... )
        блестит?
    СНОВА                  ( UNTIL )
    вода выключить         ( ...FALSE )
;
ПЕРЕМЕННАЯ яйца            ( VARIABLE... )
: яйца
    ОТСЮДА                 ( BEGIN )
        яйца взять         ( ...@ )
        вареные не-равно   ( ...<> )
    ПОКА                   ( WHILE )
        яйца взять жарить  ( ...@... )
    ПОВТОРЯТЬ              ( REPEAT )
;

В реальном коде получится не так красиво.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Вс сен 27, 2015 08:03 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 112
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Пример разбора на стеке предложения в обратной польской записи. Из комментариев к статье "Разомнем мозг при помощи Forth?" [ссылка]

«Йоду магистра картинкою новостною поставить если, тема пропущена небудет тогда»

Код:
Йоду            "Йода"
магистра        "магистр Йода"
картинкой       "магистр Йода" "картинка"
новостной       "магистр Йода" "новостная картинка"
поставить       "новостная картинка с магистром Йодой"
если            (bang!) "факт наличия новостной картинки с магистром Йодой"
тема            "тема"
пропущена       "пропущенная тема"
небудет         "не пропущенная тема"
тогда           (bang!) "факт наличия новостной картинки с магистром Йодой" -> "не пропущенная тема"


  1. Смысл выражения понятен сразу (значит не требует комментария)
  2. Выражение разбирается на стеке (может быть реализовано в форт-системе)

P.S. Кстати, этот код можно использовать как задание: "Кто напишет наиболее самодокументированную реализацию лексикона к этому выражению"? Код должен запускаться на любом ANS Форте.

P.P.S. Мне кажется фраза "тема пропущена небудет" не совсем правильна сначала идет слово ("тема"), а потом параметры для него ("пропущена небудет") это не постфикс. Правильнее было бы "пропущена небудет тема". И результат:

«Йоду магистра картинкою новостною поставить если, пропущена небудет тема тогда»

Может быть у вас есть свои исправления к исходной фразе?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Пн сен 28, 2015 10:57 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
kzagradskiy писал(а):
«Йоду магистра картинкою новостною поставить если, пропущена небудет тема тогда»
Может быть у вас есть свои исправления к исходной фразе?

Правильнее будет:
Код:
Йоду магистра картинкою новостною поставить если, тема пропущена небудет тогда

Действие - это глагол. Соответственно прилагатетельное и существительное - перед ним. Т.е., существительное - это некий объект со свойствами, прилагательное - меняет эти свойства объекта либо кладет константу на стек и объект с константой передаются глаголу.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Вс ноя 01, 2015 10:54 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 112
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Пример: Рецепт из статьи "Forth is readable"

Статья "Forth is readable" ("Форт читаемый") -- своеобразный ответ на типичную жалобу на Usenet "Форт не читаемый". В ней есть пример самодокументированного кода в виде рецепта.

Оригинал:
Код:
: obatzter
  camembert 250 gramm melt
  limburger 250 gramm squash add
  cream-cheese 125 gramm squash add
  cream 50 ml add
  mustard 1 spoons add
  egg 1 piece chop add
  2 0 DO  onion chop chop chop add  LOOP
  paprika 1 small-spoons add
  beer 4 spoons add
  salt dash add pepper dash add mince ;

Перевод:
Код:
: Обацда \ типичная баварская закуска
  камамбер 250 грамм растопить
  лимбургер 250 грамм раздавить добавить
  сливочный сыр 125 грамм раздавить добавить
  сливки 50 мл добавить
  горчица 1 ложек добавить
  яйцо 1 штук нарезать добавить
  2 0 DO лук нарезать нарезать нарезать добавить LOOP
  паприка 1 маленьких-ложек добавить
  пиво 4 ложки добавить
  соль щепотку добавить перец щепотку добавить взбить ;

Ссылки:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Пн ноя 02, 2015 06:33 
Не в сети

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Ср ноя 25, 2015 19:09 
Не в сети

Зарегистрирован: Вт ноя 06, 2012 10:41
Сообщения: 23
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
KPG писал(а):
P.S. Или так
Код:
10 и 2 сравни больше? ТО ... ИНАЧЕ ... ПРОДОЛЖАЕМ ....

и здесь возникает неоднозначность ситуации что с чем сравниваем (предположение что 10 больше 2-ух)

Код:
10 с 2 сравни больше? тогда ... иначе ... вот:) ....


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Сб янв 09, 2016 16:32 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Чтобы понять форт надо быть джедаем :)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Преимущества Форта: Самодокументированность кода
СообщениеДобавлено: Сб янв 09, 2016 17:10 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Victor__v писал(а):
Чтобы понять форт надо быть джедаем :)

Добро пожаловать в кротовую нору :)


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

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


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

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


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

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