Способ мышления-Форт




Программирование на уровне компонентов - часть 3


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

Лексикон дает логические эквиваленты объектам данных и алгоритмам в форме имен. Лексикон вуалирует структуры данных и алгоритмы компонентов -- "как оно работает". Он представляет миру только "концептуальную модель" компонента, описанную простыми словами -- "что оно делает".

Эти слова затем становятся языком для описания структур данных и алгоритмов компонентов, написанных на более высоком уровне. "Что" для одного компонента становится "как" для высших компонентов.

Написанная на Форте задача состоит только из компонентов. Рисунок 1-9 показывает, как может быть разбита робототехническая задача.

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

Между прочим, сам по себе Форт не поддерживает компоненты. Ему это не нужно. Компоненты -- это продукты разбиения программы ее проектировщиком. (В то же время Форт имеет "блоки" -- небольшие порции массовой памяти для хранения исходных текстов. Компонент обычно может быть написан в пределах одного или двух экранов Форта.)

Рис.1-9. Полная программа состоит из компонентов.

+--------------+ | Сварить кофе | +-/---------\--+ / \ / \ Лексикон Лексикон процессов перемещений робота робота / \ Лексикон Лексикон переключателей считывания / показаний Лексикон датчиков шагового / двигателя / \ / Корневой язык (Форт) \ / +---\------------/---+ | Реальный компьютер | +--------------------+

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


Содержание  Назад  Вперед