Forth
http://fforum.winglion.ru/

Минимальная структура библиотек для форта
http://fforum.winglion.ru/viewtopic.php?f=9&t=2762
Страница 1 из 1

Автор:  вопрос [ Сб сен 17, 2011 11:45 ]
Заголовок сообщения:  Минимальная структура библиотек для форта

Я прекрасно понимаю, что это вряд ли будет реализовано и рассматриваю эту тему как полезное логическое упражнение

Как структурировать библиотеки для возможной "добротной" форт-системы?

Можно попытаться так - сначала разбить на оптимизирующие ( в широком смысле) и расширяющие функциональность

можно (и желательно) добавить информирующие или диагностические

таким образом получаем 2 ли 3 основных разновидности

Оптимизирующие могут (должны) включать (4 разновидности)
1-о. ассемблер, если таковой реализован, поскольку задача ассемблера - в основном такая
2-о. ассемблерный оптимизатор если таковой реализован (как в СП)
3-о. подстановочная оптимизация с анализом или без (наподобие редуцирующей), в т.ч. инлайн
4-о. ассемблерную реализацию "чего-то кроме форта" - скажем - различных локальных переменных или очередей или доп. стеков - это тоже оптимизация, если оно не на форте. а на ассемблере

Расширяющие могут (должны) включать (3 разновидности)
5-р. средства создания макросов (в т.ч. для инлайн-оптимизации), синонимов, разного рода структур
6-р. средства взаимодействия с операционной системой (вызов процедур и т.п.)
7-р. средства структурирования форт-программы на большом уровне (модульность, многопоточность и т.п.)

пока всего 7 !

теперь информирующие
i-1. где находятся основные структуры форта - в каких регистрах и что не нужно трогать при использовании встроенного ассемблера
i-2. как включить и отключить ассемблерный оптимизатор
i-3. присутствуют ли другие виды оптимизации и как отключить и как реализовать по крайней мере инлайн
i-4. перечень слов, управляющих тем, что присутствует в п. 4-о.

i-5. как создать макрос (если макрос используется для инлайна, то совпадает с i-3. )
i-6. перечень слов, реализующих 6-р.
i-7. перечень слов, реализующих 7-р. :wink:

Скажем, слова, управляющие файлами, войдут в 7-р, т.е. это не доп. код

14 пунктов, которые позволяют считать форт систему "укомплектованной для начала работы" и "не нуждающейся в поиске доп. информации"
понятно, что пункты с 1 по 5 могут полностью отсутствовать :D

Автор:  Hishnik [ Сб сен 17, 2011 13:10 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

вопрос писал(а):
Я прекрасно понимаю, что это вряд ли будет реализовано и рассматриваю эту тему как полезное логическое упражнение

Если сначала все рассмотреть, то шансы на реализацию чего-то (пусть и "по мотивам") существенно повышаются...
вопрос писал(а):
Можно попытаться так - сначала разбить на оптимизирующие ( в широком смысле) и расширяющие функциональность

можно (и желательно) добавить информирующие или диагностические

Классификации есть разновидность номинальных измерений. Классификация, как и любое измерение, производится для принятия решения - управленческого, технического, выработка сигнала управления и т.д. Даже удав, который хотел измерить свой рост, делал это для чего-то :) Пусть в мультике и не было непосредственно сказано, для чего ему это было нужно. В случае приведенной классификации можно, во-первых, определиться, по какому признаку она проводится. Во-вторых, понять, что надо будет на практике делать с библиотеками, отнесенными к каждой группе. Будет ли различаться маршрут их разработки? Сложность? Объем документации? Частота корректировки? Целевые группы разработчиков и пользователей? Группы классификаторов при этом не обязаны быть взаимоисключающими.
вопрос писал(а):
Оптимизирующие могут (должны) включать (4 разновидности)
1-о. ассемблер, если таковой реализован, поскольку задача ассемблера - в основном такая
2-о. ассемблерный оптимизатор если таковой реализован (как в СП)
3-о. подстановочная оптимизация с анализом или без (наподобие редуцирующей), в т.ч. инлайн
4-о. ассемблерную реализацию "чего-то кроме форта" - скажем - различных локальных переменных или очередей или доп. стеков - это тоже оптимизация, если оно не на форте. а на ассемблере

Назначением таких библиотек, насколько можно понять, является оптимизация кода с целью... повышения быстродействия (это сейчас, а вообще это не единственный критерий). Мне не очень понятно соотношение между разными пунктами. Например, 1-3 видится в некоем нарастающем соотношении - сачала ассемблер, потом начинаем оптимизировать. А вот 4 стоит особняком, потому что инлайн можно просто через C, набить.
вопрос писал(а):
Расширяющие могут (должны) включать (3 разновидности)
5-р. средства создания макросов (в т.ч. для инлайн-оптимизации), синонимов, разного рода структур
6-р. средства взаимодействия с операционной системой (вызов процедур и т.п.)
7-р. средства структурирования форт-программы на большом уровне (модульность, многопоточность и т.п.)

А эта классификация очень "крупная". По сути, сюда можно отнести поддержку форматов, протоколов, устройств и т.п.
вопрос писал(а):
теперь информирующие
i-1. где находятся основные структуры форта - в каких регистрах и что не нужно трогать при использовании встроенного ассемблера
i-2. как включить и отключить ассемблерный оптимизатор
i-3. присутствуют ли другие виды оптимизации и как отключить и как реализовать по крайней мере инлайн
i-4. перечень слов, управляющих тем, что присутствует в п. 4-о.

То есть если оптимизатора нет, то все равно надо писать какие-то слова, которые бы показывали, что его нет, а включить и отключить его нельзя? :) А вообще эти вопросы похожи на пункты документации.
вопрос писал(а):
14 пунктов, которые позволяют считать форт систему "укомплектованной для начала работы" и "не нуждающейся в поиске доп. информации"

Ради интереса можно попробовать написать комплект программной документации по ГОСТ :shuffle; Вот тогда будет хорошо видно, что не вписывается вообще никуда, что делается на ура, а что вызывает массу проблем при попытке просто описать, что это такое, и каким конкретно способом этим надо пользоваться.

Автор:  вопрос [ Сб сен 17, 2011 13:50 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

Хищник писал(а):
Классификации есть разновидность номинальных измерений. Классификация, как и любое измерение, производится для принятия решения - управленческого, технического, выработка сигнала управления и т.д.


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

Если её кто-нибудь дополнит или исправит, это и будет задача
Цитата:
полезное логическое упражнение


Цитата:
То есть если оптимизатора нет, то все равно надо писать какие-то слова, которые бы показывали, что его нет, а включить и отключить его нельзя
именно так

Автор:  Hishnik [ Сб сен 17, 2011 14:28 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

вопрос писал(а):
Эта классификация помогает ответить на вопрос "что минимально должна уметь форт-система, чтобы программист не был вынужден дизассемблировать её или искать автора"
МОжно пытаться показать правильность этой классификации , а нужно?

Нет, правильность тут ни при чем, искать можно разве что целесообразность. Классификация нужна не просто "для ответа на вопрос", а в качестве конкретного инструмента. Например, мы поделили живую природу на флору и фауну. Тут с ходу можно отметить, что флору где оставишь, там и найдешь, а вот фауна может и уползти. Соответственно, уже навскидку мы можем начать организовывать исследования по-разному. А по поводу нецелесообразных классификаций есть анекдот

- Эй, пастух, а сколько твои овцы едят травы?
- Черные или белые?
- Ну черные.
- Два килограмма в день.
- А белые?
- Тоже два.
- А сколько ты стрижешь с них шерсти?
- С черных или белых?
- Ну с черных.
- Десять килограммов в год.
- А с белых?
- Тоже.
- Слушай, а зачем ты сначала спрашиваешь, черных или белых, если все одинаково?
- Ха! Так ведь черные-то овцы мои!
- А белые?
- Тоже мои.

Автор:  вопрос [ Сб сен 17, 2011 14:39 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

Логическое упражнение, а не упражнение в юморе :D

Хищник писал(а):
не просто "для ответа на вопрос"

как раз именно для ответа на вопрос, который поможет сориентироваться в том, что же делать
Цитата:
14 пунктов, которые позволяют считать форт систему "укомплектованной для начала работы" и "не нуждающейся в поиске доп. информации"

Автор:  вопрос [ Сб сен 17, 2011 14:47 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

ОБращаю внимание, что подобрано так, чтобы
или "быть переносимым"
или "обеспечивать переносимость"

т.е. если кто-либо захочет перенести систему, должен будет или
(внимание)
1. реализовать так, чтобы подходили пункты i
2. (альтернатива) переделать пункты i
так, чтобы подходили под новую реализацию

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

Автор:  Hishnik [ Сб сен 17, 2011 15:10 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

вопрос писал(а):
как раз именно для ответа на вопрос, который поможет сориентироваться в том, что же делать


"Ответа на вопрос", "поможет сориентироваться" - не слишком ли много звеньев в цепочке? Работать-то уже когда можно? А вот если принципы классификации все-таки расписать открытым текстом, не надеясь, что все догадаются сами, и догадаются одинаково, то вполне может проявиться некоторая однобокость.
Например, если уже начать потихоньку причесывать хотя бы первый пункт, то можно начать с того, что в эту группу входят библиотеки, предназначенные для улучшения характеристик кода путем добавления ассемблерных вставок, реализующих способы, отсутствующие в стандартном компиляторе. Это очень черновое рабочее определение, для него обязательно надо придумать тестовые сценарии, которые будут "ломать" его.
Далее берем пункты для этой классификации:
вопрос писал(а):
1-о. ассемблер, если таковой реализован, поскольку задача ассемблера - в основном такая
2-о. ассемблерный оптимизатор если таковой реализован (как в СП)
3-о. подстановочная оптимизация с анализом или без (наподобие редуцирующей), в т.ч. инлайн
4-о. ассемблерную реализацию "чего-то кроме форта" - скажем - различных локальных переменных или очередей или доп. стеков - это тоже оптимизация, если оно не на форте. а на ассемблере


1. Библиотеки, обеспечивающие мнемоники ассемблерных команд.
Это достаточно простые библиотеки, при их разработке потребуются в основном справочники по командам.
2. Преобразования кода, улучшающие характеристики крода по сравнению с результатами конкатенативной компиляции.
Это все оптимизаторы, подстановщики и т.п. Они как ремонт - закончить нельзя, можно только приостановить :)
3. Шаблоны кода.
Сюда входит п.4, основной характерной чертой является возможность существенного улучшения характеристик кода по сравнению с тем, что может быть получено штатными средствами Форта. Можно набить код с помощью C, , однако это неэффективно. Можно реализовать только ассемблер, но если в коде сделаны и какие-то стандартные алгоритмы, это облегчает работу.

Автор:  вопрос [ Сб сен 17, 2011 16:40 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

Цитата:
если уже начать потихоньку причесывать хотя бы первый пункт

думаю, логику можно анализировать и без дополнительного уточнения :D

Автор:  вопрос [ Ср сен 21, 2011 19:12 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

Собственно критиковать в рамках замысла темы можно или доказывая: перечень избыточен - нужно менее 14 пунктов
или доказывая, что перечень неполный

Автор:  Hishnik [ Ср сен 21, 2011 20:24 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

вопрос писал(а):
Собственно критиковать в рамках замысла темы можно или доказывая: перечень избыточен - нужно менее 14 пунктов или доказывая, что перечень неполный

Это очень узкий подход. Как будто уже выдано ТЗ на разработку перечня, который обладает самостоятельной ценностью. Тогда да, чтобы инженер не перегружался несвойственной ему работой, он выполняет все строго в рамках ТЗ. А вообще все начинается с исследования актуальности проблемы.

Автор:  white_TigR [ Чт сен 22, 2011 10:33 ]
Заголовок сообщения:  Re: Минимальная структура библиотек для форта

вопрос писал(а):
Собственно критиковать в рамках замысла темы можно или доказывая: перечень избыточен - нужно менее 14 пунктов
или доказывая, что перечень неполный

Выглядит перечень как список ToDo, остается только брать по пункту и реализовывать на любом форте. А перевод текста с одного форта на другой большой проблемой не должен быть. Или здесь предполагается исследование, нужны ли будут эти библиотеки форт-сообществу?

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/