KRIEGSSPIELE!
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Самодокументированность

Перейти вниз

Самодокументированность Empty Самодокументированность

Сообщение автор Gudleifr Вт Окт 03, 2017 5:39 pm

Доходит до смешного.
Не понимая в чем смысл этого явления, некоторые восхищаются "по Броуди":

Быстрая ( установка для лисы; быстро движется)
коричневая ( и имеет цвет шоколада)
лиса ( исполнить лисицу)
прыгает через ( дать действие лисицы)
ленивого ( установка для собаки)
пса ( то, через что лисица перепрыгнула)

Ведь, у Броуди это пример того, как не надо!
Зачем комментировать очевидное?
***

Еще один пример "оттуда же":

: ТОЛКАТЬ ВЗЯТЬСЯ НАЛЕЧЬ ;
: ГЕТТИСБУРГ 4 СЧЕТ 7 ЛЕТ + НАЗАД ;
... ГОТОВО? IF ЗАКРЫТЬ THEN ...

К FORTH это не имеет никакого отношения - переменные с осмысленными именами возможны почти во всех языках программирования. В "других языках" восприятию будут мешать скобки-запятые? Дык, у плохого фортера и в приведенных примерах DUP-ов и SWAP-ов будет насыпано до полной нечитаемости.
***

И еще:

ЛЕВЫЙ МОТОР ПУСК
ПРАВЫЙ МОТОР ПУСК
ЛЕВЫЙ МОТОР СТОП
ПРАВЫЙ МОТОР СТОП
ЛЕВЫЙ МАГНИТ ПУСК
ПРАВЫЙ МАГНИТ ПУСК
ЛЕВЫЙ МАГНИТ СТОП
ПРАВЫЙ МАГНИТ СТОП

Хотя разбиение на слова позволило облегчить написание программы (вместо использования монстров типа "ЛЕВЫЙ-МОТОР-ЗАПУСТИТЬ"), но здесь нарушается важное правило FORTH-оформления программ: "Количество строк не должно превышать количества различий". Впрочем, Броуди здесь, опять, ни при чем. Это был пример на декомпозицию, а не на оформление.
***

В чем же секрет самодокументированности FORTH? В том, что ввиду отсутствия синтаксиса, каждый пишет на нем так, как ему удобно. И, если человек обладает стилем и здравым смыслом, то будет делать так, как ему удобнее и понятнее. FORTH не помогает, FORTH не мешает! (Например, на кошачьем форуме, откуда я взял эти "цитаты", принята C-подобная запись FORTH-программ...)
***

Нельзя не отметить еще одно: блоковая память очень удобна для документирования: можно использовать стандартные заголовки блоков, можно связать номера блоков с номерами блоков, их поясняющими, можно структурировать программу разными способами.
Блоки позволяют этот процесс легко автоматизировать.
Gudleifr
Gudleifr
Admin

Сообщения : 3244
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Самодокументированность Empty Re: Самодокументированность

Сообщение автор Gudleifr Вт Окт 03, 2017 5:43 pm

Иногда вседозволенность FORTH даже мешает.

Например, как в моей игре "в кораблики" пользователь должен получать основную часть информации:
- Из листинга программы на почти-человеческом языке?
- Из комментариев к программе?
- Из справочной системы?
- Из отчетов программных модулей?
Gudleifr
Gudleifr
Admin

Сообщения : 3244
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Самодокументированность Empty Re: Самодокументированность

Сообщение автор Gudleifr Чт Окт 26, 2017 4:17 pm

Еще о "самодокументировании".

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

: ЛЕММА-1 ;
< какие-то определения по смыслу этой леммы>
: ТЕОРЕМА-1 ;
< какие-то определения по смыслу этой теоремы>
: ТЕОРЕМА-2 ЛЕММА-1 ТЕОРЕМА-1 ;

последнее может просто не дать программисту забыть о взаимосвязи фрагментов.
Но...
В отличие от обычных комментариев, эти пустые определения можно анализировать. Например, я могу препарировать ТЕОРЕМУ-2 с целью выявить ее перекрестные ссылки.

И совсем нетрудно заметить, что подобный механизм вполне пригоден для хранения списковых констант.
Gudleifr
Gudleifr
Admin

Сообщения : 3244
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения