Самодокументированность
Страница 1 из 1
Самодокументированность
Доходит до смешного.
Не понимая в чем смысл этого явления, некоторые восхищаются "по Броуди":
Быстрая ( установка для лисы; быстро движется)
коричневая ( и имеет цвет шоколада)
лиса ( исполнить лисицу)
прыгает через ( дать действие лисицы)
ленивого ( установка для собаки)
пса ( то, через что лисица перепрыгнула)
Ведь, у Броуди это пример того, как не надо!
Зачем комментировать очевидное?
***
Еще один пример "оттуда же":
: ТОЛКАТЬ ВЗЯТЬСЯ НАЛЕЧЬ ;
: ГЕТТИСБУРГ 4 СЧЕТ 7 ЛЕТ + НАЗАД ;
... ГОТОВО? IF ЗАКРЫТЬ THEN ...
К FORTH это не имеет никакого отношения - переменные с осмысленными именами возможны почти во всех языках программирования. В "других языках" восприятию будут мешать скобки-запятые? Дык, у плохого фортера и в приведенных примерах DUP-ов и SWAP-ов будет насыпано до полной нечитаемости.
***
И еще:
ЛЕВЫЙ МОТОР ПУСК
ПРАВЫЙ МОТОР ПУСК
ЛЕВЫЙ МОТОР СТОП
ПРАВЫЙ МОТОР СТОП
ЛЕВЫЙ МАГНИТ ПУСК
ПРАВЫЙ МАГНИТ ПУСК
ЛЕВЫЙ МАГНИТ СТОП
ПРАВЫЙ МАГНИТ СТОП
Хотя разбиение на слова позволило облегчить написание программы (вместо использования монстров типа "ЛЕВЫЙ-МОТОР-ЗАПУСТИТЬ"), но здесь нарушается важное правило FORTH-оформления программ: "Количество строк не должно превышать количества различий". Впрочем, Броуди здесь, опять, ни при чем. Это был пример на декомпозицию, а не на оформление.
***
В чем же секрет самодокументированности FORTH? В том, что ввиду отсутствия синтаксиса, каждый пишет на нем так, как ему удобно. И, если человек обладает стилем и здравым смыслом, то будет делать так, как ему удобнее и понятнее. FORTH не помогает, FORTH не мешает! (Например, на кошачьем форуме, откуда я взял эти "цитаты", принята C-подобная запись FORTH-программ...)
***
Нельзя не отметить еще одно: блоковая память очень удобна для документирования: можно использовать стандартные заголовки блоков, можно связать номера блоков с номерами блоков, их поясняющими, можно структурировать программу разными способами.
Блоки позволяют этот процесс легко автоматизировать.
Не понимая в чем смысл этого явления, некоторые восхищаются "по Броуди":
Быстрая ( установка для лисы; быстро движется)
коричневая ( и имеет цвет шоколада)
лиса ( исполнить лисицу)
прыгает через ( дать действие лисицы)
ленивого ( установка для собаки)
пса ( то, через что лисица перепрыгнула)
Ведь, у Броуди это пример того, как не надо!
Зачем комментировать очевидное?
***
Еще один пример "оттуда же":
: ТОЛКАТЬ ВЗЯТЬСЯ НАЛЕЧЬ ;
: ГЕТТИСБУРГ 4 СЧЕТ 7 ЛЕТ + НАЗАД ;
... ГОТОВО? IF ЗАКРЫТЬ THEN ...
К FORTH это не имеет никакого отношения - переменные с осмысленными именами возможны почти во всех языках программирования. В "других языках" восприятию будут мешать скобки-запятые? Дык, у плохого фортера и в приведенных примерах DUP-ов и SWAP-ов будет насыпано до полной нечитаемости.
***
И еще:
ЛЕВЫЙ МОТОР ПУСК
ПРАВЫЙ МОТОР ПУСК
ЛЕВЫЙ МОТОР СТОП
ПРАВЫЙ МОТОР СТОП
ЛЕВЫЙ МАГНИТ ПУСК
ПРАВЫЙ МАГНИТ ПУСК
ЛЕВЫЙ МАГНИТ СТОП
ПРАВЫЙ МАГНИТ СТОП
Хотя разбиение на слова позволило облегчить написание программы (вместо использования монстров типа "ЛЕВЫЙ-МОТОР-ЗАПУСТИТЬ"), но здесь нарушается важное правило FORTH-оформления программ: "Количество строк не должно превышать количества различий". Впрочем, Броуди здесь, опять, ни при чем. Это был пример на декомпозицию, а не на оформление.
***
В чем же секрет самодокументированности FORTH? В том, что ввиду отсутствия синтаксиса, каждый пишет на нем так, как ему удобно. И, если человек обладает стилем и здравым смыслом, то будет делать так, как ему удобнее и понятнее. FORTH не помогает, FORTH не мешает! (Например, на кошачьем форуме, откуда я взял эти "цитаты", принята C-подобная запись FORTH-программ...)
***
Нельзя не отметить еще одно: блоковая память очень удобна для документирования: можно использовать стандартные заголовки блоков, можно связать номера блоков с номерами блоков, их поясняющими, можно структурировать программу разными способами.
Блоки позволяют этот процесс легко автоматизировать.
Gudleifr- Admin
- Сообщения : 3244
Дата регистрации : 2017-03-29
Re: Самодокументированность
Иногда вседозволенность FORTH даже мешает.
Например, как в моей игре "в кораблики" пользователь должен получать основную часть информации:
- Из листинга программы на почти-человеческом языке?
- Из комментариев к программе?
- Из справочной системы?
- Из отчетов программных модулей?
Например, как в моей игре "в кораблики" пользователь должен получать основную часть информации:
- Из листинга программы на почти-человеческом языке?
- Из комментариев к программе?
- Из справочной системы?
- Из отчетов программных модулей?
Gudleifr- Admin
- Сообщения : 3244
Дата регистрации : 2017-03-29
Re: Самодокументированность
Еще о "самодокументировании".
Все фортеры знают о возможности комментирования во время чтения листинга - "скобка", его компиляции - "точка-скобка" или исполнения "точка-кавычки"... Но возможно и комментирование иного рода - пустыми определениями.
: ЛЕММА-1 ;
< какие-то определения по смыслу этой леммы>
: ТЕОРЕМА-1 ;
< какие-то определения по смыслу этой теоремы>
: ТЕОРЕМА-2 ЛЕММА-1 ТЕОРЕМА-1 ;
последнее может просто не дать программисту забыть о взаимосвязи фрагментов.
Но...
В отличие от обычных комментариев, эти пустые определения можно анализировать. Например, я могу препарировать ТЕОРЕМУ-2 с целью выявить ее перекрестные ссылки.
И совсем нетрудно заметить, что подобный механизм вполне пригоден для хранения списковых констант.
Все фортеры знают о возможности комментирования во время чтения листинга - "скобка", его компиляции - "точка-скобка" или исполнения "точка-кавычки"... Но возможно и комментирование иного рода - пустыми определениями.
: ЛЕММА-1 ;
< какие-то определения по смыслу этой леммы>
: ТЕОРЕМА-1 ;
< какие-то определения по смыслу этой теоремы>
: ТЕОРЕМА-2 ЛЕММА-1 ТЕОРЕМА-1 ;
последнее может просто не дать программисту забыть о взаимосвязи фрагментов.
Но...
В отличие от обычных комментариев, эти пустые определения можно анализировать. Например, я могу препарировать ТЕОРЕМУ-2 с целью выявить ее перекрестные ссылки.
И совсем нетрудно заметить, что подобный механизм вполне пригоден для хранения списковых констант.
Gudleifr- Admin
- Сообщения : 3244
Дата регистрации : 2017-03-29
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|