Сразу должен сказать, спасибо Вам, Andrew2000, за эти вопросы. Глубоко копнули.
А на хорошие вопросы всегда приятно отвечать.
Цитата(Andrew2000 @ May 15 2006, 22:18)

В документации сказано:
1. "2.5.4 Адрес регистра в модуле IO может быть в диапазоне от 0 до 2;"
Какой в этом смысл, если
"2.5.5 Адрес модуля IO может быть в диапазоне от 0 до 0xFFFFF"
Большое спасибо за замечание! Это проблема документа, который писался в пакете и во взаимоувязке
с конкретной системой и конкретной библиотекой. На самом деле, это описывается интерпретация параметров для конкретной платформы (MicroPC+УСО UNIO): УСО типа UNIO просто сидят на XT магистрали и имеют три регистра, что относится к платформе, а не к транслятору языку.
Транслятор языка проверяет только то, что это число (числовая константа). Ну и подставляет эти числа как параметры при вызове функции считывания (записи) значений в IO-модули.
Разумеется, что функции считывания (записи), которые привязаны к платформе и описываемые отдельно при портировании, могут интерпретировать эти числа как угодно, например, как некий адрес в ОЗУ.
Спасибо за замечание. Это моя вина, надо было внимательно просмотреть описание, перед публикацией. Файл подкорректировал и обновил на сервере.
Цитата(Andrew2000 @ May 15 2006, 22:18)

2. "2.6.8 Возможны процессы, использующие пересекающиеся множества входных и выходных переменных."
Кто последним установит выход, т.е. как определяется последовательность выпонения процессов?
Строго говоря, эта ситуация действительно неопределена - процессы параллельны, и, возможно, даже исполняются на разных процессорах.
Хотя конкретные реализации языка могут фиксировать последовательность выполнения, например, задаваемую порядком описания (что естественно). Т.е. в каждом конкретном цикле последовательность выполнения процессов определяется порядком их описания в программе.
Использовать эту информацию, строго говоря, некорректно. Мы, по крайней мере, не используем.
Цитата(Andrew2000 @ May 15 2006, 22:18)

3. "2.7 - в состояниях нет возможности организации циклов и переходов"
Не совсем ясен смысл - 'for' и 'while' отсутствуют, или нет перехода сам в себя?
Да. Конструкции типа for и while в языке отсутствуют.
Вызвано это идеологическими причинами: в языке нет "естественной"
возможности глобально "завалить" программу.
Ну а если очень хочется, то конечно же, можно. И несколько вариантов, на выбор:
на двух состояниях, с помощью инлайн подстановки Си-кода, с помощью
выносной Си-функции. Первый вариант - самый безопасный. Последний - наименее
удобный.
Цитата(Andrew2000 @ May 15 2006, 22:18)

4. "2.11.5 Описание программы начинается с резервированного слова "Прогр""
А как задается точка входа (типа 'main')? Или нет главного процесса - все процессы стартуют вместе?
Главный процесс - описанный первым. С него и начинается раскрутка алгоритма.
По включению питания (по запуску). Все процессы, кроме описанного первым, находятся в пассивном состоянии.
Типовая схема примерно такая: первый процесс инициализирует структуры, протоколы, драйверы, "взбадривает" железо, а затем уже переходит к собственно логике: начинает порождать параллельные потоки (запускать нужные процессы). Ну, или чего там ему сказано делать...
Цитата(Andrew2000 @ May 15 2006, 22:18)

5. 'ТАКТ' един для всех процессов или каждому процессу можно назначить свой 'ТАКТ'?
В текущем варианте языка - ТАКТ один для всех. Проработан вариант изменения синтаксиса в этом направлении, но по реальной надобности пока не ощущается.
Кстати, даже и вариант реализаций проработан - очень простая и мощная идея распределения процессорной загрузки для реализаций типа round-robin, кооперативной многозадачности. Идея делителя базового такта для отдельных процессов.
Если интересно, то этот вопрос обсуждается тут:
Зюбин В.Е., Петухов А.Д. Распределение вычислительных ресурсов с многопоточной реализацией гиперавтомата // Труды III Международной конференции <Идентификация систем и задачи управления> SICPRO '04. Москва 28-30 января 2004 г. С. 446-463 (pdf 366Kb).