реклама на сайте
подробности

 
 
> Язык Рефлекс - диалект Си для программирования ПЛК, обсуждение, критика, вопросы
Владимир Е. Зюби...
сообщение May 10 2006, 07:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737



Цитата(Andrew2000 @ May 8 2006, 22:19) *
Есть предложение - может Владимир Зюбин создаст на форуме отдельную ветку для обсуждения Рефлекса? У меня есть желание задать вопросы по языку.


Возражений нет. Для более подробного ознакомления можно посетить
http://reflex-language.narod.ru/

"Язык Рефлекс, известный также под именем "Си с процессами", ориентирован на программирование управляющих алгоритмов в промышленной автоматизации и робототехнике: для систем, предполагающих активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления."


--------------------
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления
(ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrew2000
сообщение May 10 2006, 13:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



А вопросы такие:
1. История возникновения языка - год, автор, от кого произошел, ...
2. Users Manual на сам язык (по примеру на сайте можно понять, но тяжело smile.gif
3. Кратко - 10 отличий от IEC61131. Как я понял - Рефлекс это полный аналог PDU-SFC-ST. Т.е. что нового даст мне Рефлекс, кроме русских букв в идентификаторах и возможности хранить код в CVS?
4. Как я могу "прикрутить" Рефлекс к своему контроллеру (система исполнения, компилятор, ...)

(можно ссылками, но лучше - коротенько здесь)
Go to the top of the page
 
+Quote Post
Владимир Е. Зюби...
сообщение May 11 2006, 05:53
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 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/
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 11 2006, 12:23
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Владимир Е. Зюби...
сообщение May 11 2006, 14:09
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 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/
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 12 2006, 02:46
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 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), так это то, что первая версия ДССП на два порядка более производительная, чем пятая... впрочем, может, для ДССП это не главное.
В общем, принципов ДССП я не понял, поэтому, к сожалению, прокомментировать их не могу.


Один из принципов - минимальный разрыв между системой команд языка и процессором
В идеале одна команда ЯВУ должна транслироваться в одну команду процессора.

Производительность версии, думаю, упала при усложнении внутренней организации рантайм
структуры языка ( может ООП навесили или что, то в этом роде )

Меня, в языке интересует наличие метапрограммирования, что из знакомства с Вашим языком
не видно.

Из плюсов Рефлекса - Язык покрывает часть возможностей предоставляемых операционной системой.
В этом плане, хотелось бы иметь возможность сопряжения языка с любой осью для МК.
Go to the top of the page
 
+Quote Post
Владимир Е. Зюби...
сообщение May 12 2006, 04:09
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737



Цитата(Kopa @ May 12 2006, 08:46) *
Меня, в языке интересует наличие метапрограммирования, что из знакомства с Вашим языком
не видно.

Из плюсов Рефлекса - Язык покрывает часть возможностей предоставляемых операционной системой.
В этом плане, хотелось бы иметь возможность сопряжения языка с любой осью для МК.


Не совсем понятно, что Вы называете метапрограммированием. Как я понимаю - это создание средствами языка модификаций языка (а ля Лисп). В Рефлексе этого нет. Тут другая идея. Пользователь не язык конструирует, а описывает алгоритмы работы некой системы управления на языке очень похожем на Си. Это почти Си, но Си, расширенный понятием процесс. Вообще говоря, Рефлекс - это Си с процессами. Некая ортагональ к Си++ (который называли "Си с классами").

В Рефлексе (как языке) программа строится как иерархия процессов (логически параллельных потоков управления). И на основе такого подхода можно сконструировать произвольный процесс. Это основная идея языка Рефлекс, ну и его ориентация - это задачи автоматизации.

В текущей версии транслятора (не языка, а транслятора языка) выходные файлы после трансляции - это файлы на Си. Такой подход обеспечивает переносимость программ на произвольную платформу.
Реализация программ, написанных на языке Рефлекс (выходные файлы на Си), ориентирована на stand-alone исполнение (вообще без ОС). Так что проблем совместить ее с любой ОС и любым микроконтроллером нет. Реализация, что сделана у нами, ориентирована на минимизацию требований к ресурсам платформы, повышенную переносимость и открытость для сторонних пользователей (разработчиков и производителей микроконтроллеров). Разумеется при этом есть некие минусы (например, необходимость стороннего Си-компилятора).

Но в принципе реализация может быть другая. Разработчик контроллера может "заточить" Рефлекс под свою платформу (создать полноценную IDE, реализовать компилятор Рефлекса, или там байт-код, или интерпретатор, и т.д.). Это будет альтернативная реализация языка Рефлекс.


--------------------
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления
(ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
Go to the top of the page
 
+Quote Post
Kopa
сообщение May 12 2006, 04:50
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Владимир Е. Зюбин   Язык Рефлекс - диалект Си для программирования ПЛК   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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.16056 секунд с 7
ELECTRONIX ©2004-2016