Рефлекс (язык программирования) — различия между версиями
Админ (обсуждение | вклад) м |
Админ (обсуждение | вклад) м (→ЧаВо) |
||
Строка 15: | Строка 15: | ||
== ЧаВо == | == ЧаВо == | ||
− | + | ===Q1. Что это за язык Рефлекс и зачем он нужен?=== | |
− | |||
− | |||
− | |||
− | Q1. Что это за язык Рефлекс и зачем он нужен? | ||
A1. Язык Рефлекс, известный также под именем "Си с процессами", — это язык программирования в процесс-ориентированном стиле, предназначенный для описания управляющих алгоритмов. Область его использования — промышленная автоматизация и робототехника: системы, предполагающие активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления. | A1. Язык Рефлекс, известный также под именем "Си с процессами", — это язык программирования в процесс-ориентированном стиле, предназначенный для описания управляющих алгоритмов. Область его использования — промышленная автоматизация и робототехника: системы, предполагающие активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления. | ||
− | Q2. Какие цели преследовались при создании языка Рефлекс? | + | ===Q2. Какие цели преследовались при создании языка Рефлекс?=== |
А2. Базовые цели, которые ставились при разработке языка, — это его адекватность задачам управления, легкое изучение пользователем, комфортные программирование и сопровождение уже созданных программ. | А2. Базовые цели, которые ставились при разработке языка, — это его адекватность задачам управления, легкое изучение пользователем, комфортные программирование и сопровождение уже созданных программ. | ||
− | Q3. На что похож язык Рефлекс? | + | ===Q3. На что похож язык Рефлекс?=== |
А3. Язык по синтаксису очень похож на язык Си, что обеспечивает простоту его изучения большинством практикующих программистов. Язык имеет англоязычный и русскоязычный синтаксис, а также допускает идентификаторы на русском языке, и это делает его крайне привлекательным для отечественных пользователей. | А3. Язык по синтаксису очень похож на язык Си, что обеспечивает простоту его изучения большинством практикующих программистов. Язык имеет англоязычный и русскоязычный синтаксис, а также допускает идентификаторы на русском языке, и это делает его крайне привлекательным для отечественных пользователей. | ||
− | Q4. В чем отличие языка Рефлекс от языка Си? Почему он называется процесс-ориентированным языком? | + | ===Q4. В чем отличие языка Рефлекс от языка Си? Почему он называется процесс-ориентированным языком?=== |
А4. В отличие от языка Си, где программы строятся как иерархия функций, базовое понятие языка Рефлекс — процесс. Программа на языке Рефлекс — это множество параллельно исполняемых процессов, которые могут запускать друг друга, останавливать и контролировать текущее состояние. В языке предусмотрены операции с временными интервалами и средства описания связей с датчиками и управляющими органами. Разнообразие специфических приемов при создании программ и методы структуризации алгоритма позволяют говорить в случае языка Рефлекс об особом стиле программирования — процесс-ориентированном программировании. | А4. В отличие от языка Си, где программы строятся как иерархия функций, базовое понятие языка Рефлекс — процесс. Программа на языке Рефлекс — это множество параллельно исполняемых процессов, которые могут запускать друг друга, останавливать и контролировать текущее состояние. В языке предусмотрены операции с временными интервалами и средства описания связей с датчиками и управляющими органами. Разнообразие специфических приемов при создании программ и методы структуризации алгоритма позволяют говорить в случае языка Рефлекс об особом стиле программирования — процесс-ориентированном программировании. | ||
− | Q5. Какова история создания языка Рефлекс и его генеалогия? | + | ===Q5. Какова история создания языка Рефлекс и его генеалогия?=== |
А5. Рефлекс — это развитие проекта СПАРМ (средство программирования алгоритмов работы микроконтроллеров, авторы Зюбин В.Е., Карлсон Н.Н. 1988-1990 гг). Год создания настоящей версии языка Рефлекс — 1998 (Зюбин В.Е. с участием Петухова А.Д., Данчина Д.Ю.). Год ее реализации (создание транслятора) — 2002 год. | А5. Рефлекс — это развитие проекта СПАРМ (средство программирования алгоритмов работы микроконтроллеров, авторы Зюбин В.Е., Карлсон Н.Н. 1988-1990 гг). Год создания настоящей версии языка Рефлекс — 1998 (Зюбин В.Е. с участием Петухова А.Д., Данчина Д.Ю.). Год ее реализации (создание транслятора) — 2002 год. | ||
Строка 51: | Строка 47: | ||
Разумеется, что на Рефлекс оказывали влияние и другие языки, те же языки [[МЭК 61131-3]]. | Разумеется, что на Рефлекс оказывали влияние и другие языки, те же языки [[МЭК 61131-3]]. | ||
− | Q6. В каких практических задачах использовался язык Рефлекс? | + | ===Q6. В каких практических задачах использовался язык Рефлекс?=== |
А6. Язык Рефлекс прошел серьезное испытание на реальных промышленных объектах: | А6. Язык Рефлекс прошел серьезное испытание на реальных промышленных объектах: | ||
Строка 62: | Строка 58: | ||
использовании типового для задач управления алгоритмического обеспечения: ПИД- и адаптивное регулирование, логическое управление, событийные стратегии. | использовании типового для задач управления алгоритмического обеспечения: ПИД- и адаптивное регулирование, логическое управление, событийные стратегии. | ||
− | Q7. Какие основные отличия языка Рефлекс от языков стандарта МЭК 61131-3? Что нового даст мне Рефлекс, кроме русских букв в идентификаторах? | + | ===Q7. Какие основные отличия языка Рефлекс от языков стандарта МЭК 61131-3? Что нового даст мне Рефлекс, кроме русских букв в идентификаторах?=== |
A7. Если говорить о сравнении языка Рефлекс и языков МЭК 61131-3, то функционально язык покрывает пару SFC+ST. Кстати, среди трех наиболее важных свойств языка программистами постоянно | A7. Если говорить о сравнении языка Рефлекс и языков МЭК 61131-3, то функционально язык покрывает пару SFC+ST. Кстати, среди трех наиболее важных свойств языка программистами постоянно | ||
упоминается его русскоязычность (англоязычный синтаксис также возможен). | упоминается его русскоязычность (англоязычный синтаксис также возможен). | ||
− | === Основные преимущества языка Рефлекс (как языка): === | + | ==== Основные преимущества языка Рефлекс (как языка): ==== |
* Си-подобность = легкость изучения для Си-программистов, минимизация смешаноязыкового программирования | * Си-подобность = легкость изучения для Си-программистов, минимизация смешаноязыкового программирования | ||
Строка 74: | Строка 70: | ||
* Однородность представления (чисто текстовый вид и все плюсы текстового представления: потенциально высокая переносимость, модифицируемость текста и т.д.) | * Однородность представления (чисто текстовый вид и все плюсы текстового представления: потенциально высокая переносимость, модифицируемость текста и т.д.) | ||
− | ==== Плюсы текущей реализации языка (транслятора языка):==== | + | ===== Плюсы текущей реализации языка (транслятора языка):===== |
* Полный контроль пользователя над исходными текстами, расширяемость | * Полный контроль пользователя над исходными текстами, расширяемость | ||
Строка 83: | Строка 79: | ||
Низкие требования к ресурсам делает язык Рефлекс особенно привлекательным для реализации на мелкосерийных программируемых логических контроллерах и встроенных системах управления. | Низкие требования к ресурсам делает язык Рефлекс особенно привлекательным для реализации на мелкосерийных программируемых логических контроллерах и встроенных системах управления. | ||
− | Q8. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...)? | + | ===Q8. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...)? === |
A8. Системы исполнения не требуется, на выходе получаются StandAlone (системо-независимые) приложения. Разумеется, при этом не исключена возможность исполнения под операционной системой. | A8. Системы исполнения не требуется, на выходе получаются StandAlone (системо-независимые) приложения. Разумеется, при этом не исключена возможность исполнения под операционной системой. |
Версия 21:28, 29 сентября 2016
Рефлекс (язык программирования) — диалект языка Си для программирования управляющих алгоритмов промышленной автоматизации. Программируемые логические контроллеры, встроенные приложения, робототехника. Позволяет использовать русский синтаксис.
Язык процесс-ориентированного программирования Рефлекс, известный также под именем "Си с процессами", ориентирован на создание управляющих алгоритмов в промышленной автоматизации и робототехнике: для систем, предполагающих активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления.
Базовые цели, которые ставились при разработке языка, — это его адекватность задачам управления, легкое изучение пользователем, комфортные программирование и сопровождение уже созданных программ.
Язык по синтаксису очень похож на язык Си, что обеспечивает простоту его изучения большинством практикующих программистов. Язык имеет англоязычный и русскоязычный синтаксис, а также допускает идентификаторы на русском языке, и это делает его крайне привлекательным для отечественных пользователей.
В отличие от языка Си, где программы строятся как иерархия функций, базовое понятие языка Рефлекс — процесс. Программа на языке Рефлекс — это множество параллельно исполняемых процессов, которые могут запускать друг друга, останавливать и контролировать текущее состояние. Программирование на языке Рефлекс называется процесс-ориентированным.
Для комфортного программирования систем промышленной автоматизации в языке предусмотрены операции с временными интервалами и средства описания связей с датчиками и управляющими органами.
Цель настоящего сетевого ресурса — обеспечить свободное обсуждение и эффективное развитие языка пользователями, производителями программируемых логических контроллеров и интегрированных сред разработки.
Содержание
- 1 ЧаВо
- 1.1 Q1. Что это за язык Рефлекс и зачем он нужен?
- 1.2 Q2. Какие цели преследовались при создании языка Рефлекс?
- 1.3 Q3. На что похож язык Рефлекс?
- 1.4 Q4. В чем отличие языка Рефлекс от языка Си? Почему он называется процесс-ориентированным языком?
- 1.5 Q5. Какова история создания языка Рефлекс и его генеалогия?
- 1.6 Q6. В каких практических задачах использовался язык Рефлекс?
- 1.7 Q7. Какие основные отличия языка Рефлекс от языков стандарта МЭК 61131-3? Что нового даст мне Рефлекс, кроме русских букв в идентификаторах?
- 1.8 Q8. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...)?
- 2 См. также
- 3 Ссылки
ЧаВо
Q1. Что это за язык Рефлекс и зачем он нужен?
A1. Язык Рефлекс, известный также под именем "Си с процессами", — это язык программирования в процесс-ориентированном стиле, предназначенный для описания управляющих алгоритмов. Область его использования — промышленная автоматизация и робототехника: системы, предполагающие активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления.
Q2. Какие цели преследовались при создании языка Рефлекс?
А2. Базовые цели, которые ставились при разработке языка, — это его адекватность задачам управления, легкое изучение пользователем, комфортные программирование и сопровождение уже созданных программ.
Q3. На что похож язык Рефлекс?
А3. Язык по синтаксису очень похож на язык Си, что обеспечивает простоту его изучения большинством практикующих программистов. Язык имеет англоязычный и русскоязычный синтаксис, а также допускает идентификаторы на русском языке, и это делает его крайне привлекательным для отечественных пользователей.
Q4. В чем отличие языка Рефлекс от языка Си? Почему он называется процесс-ориентированным языком?
А4. В отличие от языка Си, где программы строятся как иерархия функций, базовое понятие языка Рефлекс — процесс. Программа на языке Рефлекс — это множество параллельно исполняемых процессов, которые могут запускать друг друга, останавливать и контролировать текущее состояние. В языке предусмотрены операции с временными интервалами и средства описания связей с датчиками и управляющими органами. Разнообразие специфических приемов при создании программ и методы структуризации алгоритма позволяют говорить в случае языка Рефлекс об особом стиле программирования — процесс-ориентированном программировании.
Q5. Какова история создания языка Рефлекс и его генеалогия?
А5. Рефлекс — это развитие проекта СПАРМ (средство программирования алгоритмов работы микроконтроллеров, авторы Зюбин В.Е., Карлсон Н.Н. 1988-1990 гг). Год создания настоящей версии языка Рефлекс — 1998 (Зюбин В.Е. с участием Петухова А.Д., Данчина Д.Ю.). Год ее реализации (создание транслятора) — 2002 год.
В основу языка Рефлекс легли идеи, почерпнутые из языков ЯРУС, Си, QuickStep, СПАРМ и ЯРУС-П (ЯРУС на Паскале, проект 1985-86 гг, так и не оконченный).
Генеалогическое дерево языка Рефлекс условно можно изобразить так:
- (ЯРУС+Паскаль) --» ЯРУС-П (1986)
- ( ЯРУС-П+ЯРУС+Си) --» СПАРМ (1990)
- (СПАРМ + QuickStep) --» Рефлекс (1998)
Разумеется, что на Рефлекс оказывали влияние и другие языки, те же языки МЭК 61131-3.
Q6. В каких практических задачах использовался язык Рефлекс?
А6. Язык Рефлекс прошел серьезное испытание на реальных промышленных объектах:
- 1989-1992 — применялся при автоматизации электроавтоматики станков ЧПУ (СПАРМ, адаптация на х86 + VME),
- 1994-1997 — применялся для автоматизации установок выращивания монокремния методом Чохральского 221УА100 (СПАРМ, адаптация на мультипроцессорной системе Intel 196 + Multibus)
- 2002-2005 — автоматизация установок выращивания монокремния методом Чохральского 221УМК090 (Рефлекс, адаптация на MicroPC+UNIO)
Задачи включали комплексное управление газо-вакуумными подсистемами, подсистемами прецизионного перемещения, силовым оборудованием термосистемы, системами противоаварийной защиты, при использовании типового для задач управления алгоритмического обеспечения: ПИД- и адаптивное регулирование, логическое управление, событийные стратегии.
Q7. Какие основные отличия языка Рефлекс от языков стандарта МЭК 61131-3? Что нового даст мне Рефлекс, кроме русских букв в идентификаторах?
A7. Если говорить о сравнении языка Рефлекс и языков МЭК 61131-3, то функционально язык покрывает пару SFC+ST. Кстати, среди трех наиболее важных свойств языка программистами постоянно упоминается его русскоязычность (англоязычный синтаксис также возможен).
Основные преимущества языка Рефлекс (как языка):
- Си-подобность = легкость изучения для Си-программистов, минимизация смешаноязыкового программирования
- Более удобные и надежные средства для управления потоками команд (SFC он ближе к сетям Петри со всеми сложностями вокруг фишек, проблемой конвергенции потока управления и т.д.)
- Однородность представления (чисто текстовый вид и все плюсы текстового представления: потенциально высокая переносимость, модифицируемость текста и т.д.)
Плюсы текущей реализации языка (транслятора языка):
- Полный контроль пользователя над исходными текстами, расширяемость
Повышенная переносимость программ (адаптацию языка на платформе может делать пользователь)
Минимальные требования к целевой платформе... (шесть байтов на процесс, образы регистров УСО(~N*3), переменные, стек глубиной в два call-а без параметров)
Низкие требования к ресурсам делает язык Рефлекс особенно привлекательным для реализации на мелкосерийных программируемых логических контроллерах и встроенных системах управления.
Q8. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...)?
A8. Системы исполнения не требуется, на выходе получаются StandAlone (системо-независимые) приложения. Разумеется, при этом не исключена возможность исполнения под операционной системой.
Транслятор языка доступен по запросу, исполняется из командной строки ОС Windows/MS DOS, выходные файлы транслятор генерирует на языке Си. Системные библиотеки открыты, системо-зависимых функций, которые потребуется адаптировать к платформе, — от пяти до пятнадцати (зависит от конкретной ситуации). В самом простом случае адаптация сводится к тому, чтобы:
- организовать вызов функции ControlLoop() с требуемой частотой,
- написать функцию считывания байта/слова из модулей ввода/вывода,
- написать функцию записи байта/слова в модули ввода/вывода.