|
Язык Рефлекс - диалект Си для программирования ПЛК, обсуждение, критика, вопросы |
|
|
|
May 10 2006, 07:48
|
Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737

|
Цитата(Andrew2000 @ May 8 2006, 22:19)  Есть предложение - может Владимир Зюбин создаст на форуме отдельную ветку для обсуждения Рефлекса? У меня есть желание задать вопросы по языку. Возражений нет. Для более подробного ознакомления можно посетить http://reflex-language.narod.ru/"Язык Рефлекс, известный также под именем "Си с процессами", ориентирован на программирование управляющих алгоритмов в промышленной автоматизации и робототехнике: для систем, предполагающих активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления."
--------------------
Владимир Е. Зюбин Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления (ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
|
|
|
|
|
 |
Ответов
|
May 10 2006, 13:35
|
Местный
  
Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675

|
А вопросы такие: 1. История возникновения языка - год, автор, от кого произошел, ... 2. Users Manual на сам язык (по примеру на сайте можно понять, но тяжело  3. Кратко - 10 отличий от IEC61131. Как я понял - Рефлекс это полный аналог PDU-SFC-ST. Т.е. что нового даст мне Рефлекс, кроме русских букв в идентификаторах и возможности хранить код в CVS? 4. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...) (можно ссылками, но лучше - коротенько здесь)
|
|
|
|
|
May 11 2006, 05:53
|
Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737

|
Цитата(Andrew2000 @ May 10 2006, 19:35)  А вопросы такие: 1. История возникновения языка - год, автор, от кого произошел, ... Рефлекс - это развитие проекта СПАРМ (средство программирования алгоритмов работы микроконтроллеров, авторы Зюбин В.Е., Карлсон Н.Н. 1988-1990 гг). Год создания настоящей версии языка Рефлекс - 1998 (Зюбин В.Е. с участием Петухова А.Д., Данчина Д.Ю.). Год ее реализации (создание транлятора) - 2002 год. В основу языка Рефлекс легли идеи, почерпнутые из языков ЯРУС, Си, QuickStep, СПАРМ. Да, до СПАРМ был проходной вариант ЯРУС-П (ЯРУС на Паскале, 1985-86), не оконченный. Так что генеалогия примерно такая: (ЯРУС+Паскаль) -> ЯРУС-П (1986) (ЯРУС-П+ЯРУС+Си) -> СПАРМ (1990) СПАРМ + QuickStep -> Рефлекс (1998) Разумеется, что оказывали влияние на Рефлекс и другие языки, те же языки МЭК 61131-3. История использования: - 1989-1992 - применялся при автоматизации электроавтоматики станков ЧПУ (СПАРМ, адаптация на х86 + VME), - 1994-97 - применялся для автоматизации установок выращивания монокремния методом Чохральского 221УА100 (СПАРМ, адаптация на мультипроцессорной системе Intel 196 + Multibus) - 2002-2005 - автоматизация установок выращивания монокремния методом Чохральского 221УМК090 (Рефлекс, адаптация MicroPC+UNIO) Цитата(Andrew2000 @ May 10 2006, 19:35)  2. Users Manual на сам язык (по примеру на сайте можно понять, но тяжело :) Существует описание языка, в каком-то виде. http://reflex-language.narod.ru/doc/index.htmlНу, а вообще планируется этот раздел расширять описанием трансляторов, библиотек для разных платформ, проектов. Цитата(Andrew2000 @ May 10 2006, 19:35)  3. Кратко - 10 отличий от IEC61131. Как я понял - Рефлекс это полный аналог PDU-SFC-ST. Т.е. что нового даст мне Рефлекс, кроме русских букв в идентификаторах и возможности хранить код в CVS? Ну в общем-то так, функционально язык покрывает SFC+ST. Ну и русскоязычность его один из основных плюсов (впрочем, и англоязычность не исключается). На мой взгляд основные преимущества языка Рефлекс (как языка): 1. Си-подобность = легкость изучения для Си-программистов, минимизация смешаноязыкового программирования 2. Более удобные и надежные средства для управления потоками (SFC он ближе к сетям Петри со всеми заморочками вокруг фишек, проблемой конвергенции потока управления и т.д.) 3. Однородность представления (чисто текстовый вид и все плюсы текстового представления: потенциально высокая переносимость, модифицируемость текста и т.д.) Ну, а плюсы текущей реализации языка (транслятора языка) таковы: 1. Полный контроль пользователя над исходными текстами, расширяемость, 2. Повышенная переносимость программ (адаптацию языка на платформе может делать пользователь), 3. Минимальные требования к целевой платформе... (шесть байтов на процесс, образы регистров УСО(~N*3), переменные, стек глубиной в два call-а без параметров) Разумеется, при этом не исключается возможность и появление других вариантов реализации языка, например, под интерпретационной моделью исполнения, с полновесными IDE и т.д. Цитата(Andrew2000 @ May 10 2006, 19:35)  4. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...) (можно ссылками, но лучше - коротенько здесь) Системы исполнения не требуется, на выходе получаются StandAlone приложения. Разумеется, что не исключено исполнение под операционной системой. Транслятор языка - по запросу, выходные файлы - на языке Си, со всеми вытекающими... библиотеки открыты, системозависимых функций - от пяти до пятнадцати (зависит от случая). В самом простом случае адаптация сводится к тому, чтобы: а) организовать вызов функции Control() с заданной частотой, б) написать функцию считывания байта/слова из модуля УСО, в) написать функцию записи байта/слова в модуль УСО.
--------------------
Владимир Е. Зюбин Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления (ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
|
|
|
|
|
May 11 2006, 12:23
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Владимир Е. Зюбин @ May 11 2006, 08:53)  ... 1. Полный контроль пользователя над исходными текстами, расширяемость, ... 1. Извините, но какой контроль пользователя и над какими исходными текстами понимается? 2. Что понимается под расширяемостью языка?. В моем понимании, язык расширяемый если его синтаксис и семантика могут изменятся пользователем в сторону специализации. Поправьте, если я не прав. P.S. Что вы думаете о принципах предложенных в языке ДССП. ( http://forth.org.ru/~dssp ) ( долгое время развиваемом в МГУ)
Сообщение отредактировал Kopa - May 11 2006, 12:28
|
|
|
|
|
May 11 2006, 14:09
|
Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737

|
Цитата(Kopa @ May 11 2006, 18:23)  Цитата(Владимир Е. Зюбин @ May 11 2006, 08:53)  ... 1. Полный контроль пользователя над исходными текстами, расширяемость, ...
1. Извините, но какой контроль пользователя и над какими исходными текстами понимается? 2. Что понимается под расширяемостью языка?. В моем понимании, язык расширяемый если его синтаксис и семантика могут изменятся пользователем в сторону специализации. Поправьте, если я не прав. Разговор шел про текущую реализацию языка, а не про сам язык. Имелся ввиду контроль пользователя над всеми исходными текстами проекта (включая системные). Под расширяемостью имелось ввиду не расширяемость языка, а функциональная расширяемость проекта (например, написание дополнительного отладчика и интеграция его в систему, или встроенная обработка исключительных ситуаций типа деления на нуль с диагностикой). Ну, а синтаксис языка Рефлекс при этом, разумеется, сохраняется. Цитата(Kopa @ May 11 2006, 18:23)  P.S. Что вы думаете о принципах предложенных в языке ДССП. ( http://forth.org.ru/~dssp ) ( долгое время развиваемом в МГУ) Если честно, то я не понял, что это за язык и в чем его проблемная ориентированность. В вопросах-ответах этого, к сожалению, нет. А вот что меня озадачило (см. FAQ), так это то, что первая версия ДССП на два порядка более производительная, чем пятая... впрочем, может, для ДССП это не главное. В общем, принципов ДССП я не понял, поэтому, к сожалению, прокомментировать их не могу.
Сообщение отредактировал Владимир Е. Зюбин - May 11 2006, 14:14
--------------------
Владимир Е. Зюбин Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления (ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
|
|
|
|
|
May 12 2006, 02:46
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Владимир Е. Зюбин @ May 11 2006, 17:09)  Цитата(Kopa @ May 11 2006, 18:23)  P.S. Что вы думаете о принципах предложенных в языке ДССП. ( http://forth.org.ru/~dssp ) ( долгое время развиваемом в МГУ) Если честно, то я не понял, что это за язык и в чем его проблемная ориентированность. В вопросах-ответах этого, к сожалению, нет. А вот что меня озадачило (см. FAQ), так это то, что первая версия ДССП на два порядка более производительная, чем пятая... впрочем, может, для ДССП это не главное. В общем, принципов ДССП я не понял, поэтому, к сожалению, прокомментировать их не могу. Один из принципов - минимальный разрыв между системой команд языка и процессором В идеале одна команда ЯВУ должна транслироваться в одну команду процессора. Производительность версии, думаю, упала при усложнении внутренней организации рантайм структуры языка ( может ООП навесили или что, то в этом роде ) Меня, в языке интересует наличие метапрограммирования, что из знакомства с Вашим языком не видно. Из плюсов Рефлекса - Язык покрывает часть возможностей предоставляемых операционной системой. В этом плане, хотелось бы иметь возможность сопряжения языка с любой осью для МК.
|
|
|
|
|
May 12 2006, 04:09
|
Частый гость
 
Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737

|
Цитата(Kopa @ May 12 2006, 08:46)  Меня, в языке интересует наличие метапрограммирования, что из знакомства с Вашим языком не видно.
Из плюсов Рефлекса - Язык покрывает часть возможностей предоставляемых операционной системой. В этом плане, хотелось бы иметь возможность сопряжения языка с любой осью для МК. Не совсем понятно, что Вы называете метапрограммированием. Как я понимаю - это создание средствами языка модификаций языка (а ля Лисп). В Рефлексе этого нет. Тут другая идея. Пользователь не язык конструирует, а описывает алгоритмы работы некой системы управления на языке очень похожем на Си. Это почти Си, но Си, расширенный понятием процесс. Вообще говоря, Рефлекс - это Си с процессами. Некая ортагональ к Си++ (который называли "Си с классами"). В Рефлексе (как языке) программа строится как иерархия процессов (логически параллельных потоков управления). И на основе такого подхода можно сконструировать произвольный процесс. Это основная идея языка Рефлекс, ну и его ориентация - это задачи автоматизации. В текущей версии транслятора (не языка, а транслятора языка) выходные файлы после трансляции - это файлы на Си. Такой подход обеспечивает переносимость программ на произвольную платформу. Реализация программ, написанных на языке Рефлекс (выходные файлы на Си), ориентирована на stand-alone исполнение (вообще без ОС). Так что проблем совместить ее с любой ОС и любым микроконтроллером нет. Реализация, что сделана у нами, ориентирована на минимизацию требований к ресурсам платформы, повышенную переносимость и открытость для сторонних пользователей (разработчиков и производителей микроконтроллеров). Разумеется при этом есть некие минусы (например, необходимость стороннего Си-компилятора). Но в принципе реализация может быть другая. Разработчик контроллера может "заточить" Рефлекс под свою платформу (создать полноценную IDE, реализовать компилятор Рефлекса, или там байт-код, или интерпретатор, и т.д.). Это будет альтернативная реализация языка Рефлекс.
--------------------
Владимир Е. Зюбин Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления (ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
|
|
|
|
|
May 12 2006, 04:50
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
[quote name='Владимир Е. Зюбин' date='May 12 2006, 07:09' post='112402'] [quote name='Kopa' post='112396' date='May 12 2006, 08:46'] Меня, в языке интересует наличие метапрограммирования, что из знакомства с Вашим языком не видно.
Из плюсов Рефлекса - Язык покрывает часть возможностей предоставляемых операционной системой. В этом плане, хотелось бы иметь возможность сопряжения языка с любой осью для МК. [/quote]
Не совсем понятно, что Вы называете метапрограммированием. Как я понимаю - это создание средствами языка модификаций языка (а ля Лисп). В Рефлексе этого нет. Тут другая идея. Пользователь не язык конструирует, а описывает алгоритмы работы некой системы управления на языке очень похожем на Си. Это почти Си, но Си, расширенный понятием процесс. Вообще говоря, Рефлекс - это Си с процессами. Некая ортагональ к Си++ (который называли "Си с классами").
[/quote] или (а ля Лисп) или что-то ( а ля Форт). А решать задачу на низкоуровневых средствах, не имея возможности работать в терминах предметной области мне не хочется. В этом случае сложность алгоритма при переходе от одного уровня к другому линейна ( не упрощается). Работая с большим чужим С проектом сложно, зачастую, отделять уровни абстракции.
[quote
Но в принципе реализация может быть другая. Разработчик контроллера может "заточить" Рефлекс под свою платформу (создать полноценную IDE, реализовать компилятор Рефлекса, или там байт-код, или интерпретатор, и т.д.). Это будет альтернативная реализация языка Рефлекс. [/quote]
В этом случае для реализация операционных возможностей среды достаточно использовать существующие компиляторы. Рефлекс в этом случае не поможет. В качестве выходного результата, я бы предпочел, ассемблерный код сгенерированный на основе подключенного ini файла. Или мнемоники псевдоассемблера
Сообщение отредактировал Kopa - May 12 2006, 04:51
|
|
|
|
Сообщений в этой теме
Владимир Е. Зюбин Язык Рефлекс - диалект Си для программирования ПЛК May 10 2006, 07:48       Владимир Е. Зюбин Цитата(Kopa @ May 12 2006, 10:50) Цитата(... May 12 2006, 11:25        Kopa Цитата(Владимир Е. Зюбин @ May 12 2006, 14... May 13 2006, 20:12         Владимир Е. Зюбин Цитата(Kopa @ May 14 2006, 02:12) Не умол... May 15 2006, 12:52          Kopa Цитата(Владимир Е. Зюбин @ May 15 2006, 15... May 15 2006, 17:33           Kopa Вот еще одна интересная ссылка по затронутой мной... May 15 2006, 18:22           Владимир Е. Зюбин Цитата(Kopa @ May 15 2006, 23:33) Цитата(... May 16 2006, 08:27            Kopa [quote name='Владимир Е. Зюбин' date=... May 16 2006, 09:52             Владимир Е. Зюбин Цитата(Kopa @ May 16 2006, 15:52) Цитата(... May 17 2006, 04:20              Kopa Цитата(Владимир Е. Зюбин @ May 17 2006, 07... May 17 2006, 05:34               Владимир Е. Зюбин Цитата(Kopa @ May 17 2006, 11:34) Цитата(... May 17 2006, 11:55                Kopa [quote name='Владимир Е. Зюбин' date=... May 18 2006, 02:45                 Владимир Е. Зюбин Цитата(Kopa @ May 18 2006, 08:45) Цитата(... May 18 2006, 11:53                  Kopa Цитата(Владимир Е. Зюбин @ May 18 2006, 14... May 18 2006, 12:23                   Владимир Е. Зюбин Цитата(Kopa @ May 18 2006, 18:23) Цитата(... May 20 2006, 06:41                    Kopa Цитата(Владимир Е. Зюбин @ May 20 2006, 09... May 24 2006, 04:00                     locas Цитата(Kopa @ May 24 2006, 08:00) P.S. Чт... May 24 2006, 12:05                      Владимир Е. Зюбин Цитата(locas @ May 24 2006, 18:05) Цитата... May 26 2006, 09:39                       locas Цитата(Владимир Е. Зюбин @ May 26 2006, 13... May 28 2006, 14:06                        Владимир Е. Зюбин Цитата(locas @ May 28 2006, 20:06) Цитата... May 29 2006, 04:51                        Andrew2000 Цитата(locas @ May 28 2006, 18:06) Цитата... May 29 2006, 09:35                         Владимир Е. Зюбин Цитата(Andrew2000 @ May 29 2006, 15:35) В... May 30 2006, 11:47                          Andrew2000 Цитата(Владимир Е. Зюбин @ May 30 2006, 15... Jun 5 2006, 22:55                           Владимир Е. Зюбин Цитата(Andrew2000 @ Jun 6 2006, 04:55) Ци... Jun 6 2006, 09:24                            Andrew2000 Цитата(Владимир Е. Зюбин @ Jun 6 2006, 13... Jun 6 2006, 10:16                             Kopa Попалась интересная статья по генерации нативного
... Jun 7 2006, 16:38                             Владимир Е. Зюбин Цитата(Andrew2000 @ Jun 6 2006, 16:16) Ци... Jun 9 2006, 11:57                              Andrew2000 Цитата(Владимир Е. Зюбин @ Jun 9 2006, 15... Jun 9 2006, 17:02                               Владимир Е. Зюбин Цитата(Andrew2000 @ Jun 9 2006, 23:02) Ци... Jun 10 2006, 09:03                                Владимир Е. Зюбин Информационное сообщение:
Среди статей по языку Р... Jul 11 2006, 05:21                      Kopa Цитата(locas @ May 24 2006, 12:05) Цитата... Feb 12 2007, 06:53  Andrew2000 Цитата(Владимир Е. Зюбин @ May 11 2006, 09... May 11 2006, 14:16 vxzxc Как добавить Рефлекс в свой контроллер? Как Вы вид... May 12 2006, 12:46 Владимир Е. Зюбин Цитата(vxzxc @ May 12 2006, 18:46) Как до... May 12 2006, 15:12 Andrew2000 В документации сказано:
1. "2.5.4 Адрес реги... May 15 2006, 16:18 Владимир Е. Зюбин Сразу должен сказать, спасибо Вам, Andrew2000, за ... May 16 2006, 07:41  Andrew2000 Цитата(Владимир Е. Зюбин @ May 16 2006, 11... May 16 2006, 11:06   Владимир Е. Зюбин Цитата(Andrew2000 @ May 16 2006, 17:06) Ц... May 17 2006, 10:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|