Средство для программирования контроллера: Си или МЭК 61131?
Не в резервированных словах дело, а в присутствии
возможности...
Может, действительно, и в 2.10 ISaGRAF ST - это
структурный язык. Можно, наверное, и ST a la
ISaGRAF 4.20 назвать структурным.
В чем проблемы, никак не пойму?
Еще раз повторить, что после того, как мне показали
способы создания функция на ST a la IEC, мне стало
понятно, что ST теоретически позволяет использовать
технику структурного программирования?
Ну, повторяю... Абсолютно согласен со всеми, кто
заявляет, что ST a la IEC 61131-3 позволяет использовать
технику структурного программирования в ее самом
ортодоксальном виде.
Надеюсь, Вы удовлетворены.
Уходя немного в сторону: можно заметить, что это
позволяет делать и Си, и Фортран, и куча ассемблеров
разных...
Тоже, кстати, забавный вопрос, почему Паскаль был
включен в МЭК 61131-3, а Си нет?
Самое смешное, никому бы в этом случае не пришло в
голову Паскаль использовать в качестве вспомогательного
языка, как это делается в том же ISaGRAFе.
Первоначально опубликовано VSerg
Первоначально опубликовано Владимир Е. Зюбин
В ISaGRAF 2.10 в ST отсутствовали ключевые слова
FUNCTION и END_FUNCTION.
В принципе, по замыслу МЭК, как я теперь понимаю,
ST предлагался в качестве обычного процедурного языка...
урезанный вариант Паскаля.
В версии 2.10 ISaGRAF этот Паскаль еще больше урезал...
вообще сделав невозможным его автономное использование.
Является ли ST a la ISaGRAF 2.10 структурным языком? Разумеется нет. Та же ситуация, как я Вас понял, и в версии ISaGRAF 4.20 осталась.
Если Вы причисляете ЯП к структурным, только по признаку наличия ключевых слов FUNCTION и END_FUNCTION в среде разработки, то поиск истины в диалоге с Вами становиться бессмысленным.
Так как, на мой взгляд, вы путаете среду программирования с языком программирования. В среде программирования могут быть скрыты любые (по мнению производителя мешающие) атрибуты, вплоть до явного объявления функции в теле файла содержащего функцию. В среде программирования это явное объявление может отсутствовать. Программный код скомпилированный средой будет включать и заголовки функций и их объявление, так как без ЭТОГО просто НЕВОЗМОЖНО вызвать и использовать функцию. Это БЕССПОРНО.
Листинг Программы написанной полностью на ST:
Файл программы:
PROGRAM UNTITLEDSTPR
val := UntitledST1();
END_PROGRAM
Файл функции UntitledST1():
FUNCTION UNTITLEDST1
UntitledST1:=UntitledST2();
END_FUNCTION
Файл функции UntitledST2():
FUNCTION UNTITLEDST2
UntitledST2:=2;
END_FUNCTION
Чтобы понять язык нужно смотреть его исходники, а не среду разработки. Надеюсь после выше приведенных исходников у Вас окончательно отпадут сомнения в структурности ST. Есть у меня подозрение, что и в 2.10 было точно также. :) Посмотрите исходники проекта. :))
О СИ.
Возможность выполнить одну и ту же операцию несколькими способами уменьшает структурированность языка.
Ничто так не ограничивает полёт мысли программиста, как компилятор :)
Решает на чем писать - не программисту, а как минимум его руководителю. Потому что цель работы программиста: намагнитить быстро вращающиеся металлические пластинки в правильных местах. :)
Намагничивать металлические пластинки в правильных
местах - это цель работы кодировщика... :-)
А программисту (если перефразировать другую поговорку)
для правильного программирования компьютер не нужен...
:-)))
Первоначально опубликовано Дмитрий Милосер
Ничто так не ограничивает полёт мысли программиста, как компилятор :)
Решает на чем писать - не программисту, а как минимум его руководителю. Потому что цель работы программиста: намагнитить быстро вращающиеся металлические пластинки в правильных местах. :)
<SPAN class=bold>VSerg</SPAN>
<SPAN class=captionl>Процесс разработки ПО и ЯП</SPAN>
Статья мягко говоря не корректная. Автор очень имеет очень смутное представление о С и о программирование вообще. Нельзя просто сравнивать любые языки, необходимо анализировать проекты, и выбирать средства реализации оных. Если программист владеет многими инструментами (языками) он более правильно выберет на чем и что писать, а не будет с пеной у рта кричать ST, МЭК, это круто.
Структурные программы не структурные пользователю всеравно, а вот программисту нет, по этому программисту решать, ставить ему жирный крест на С или нет.
Практически со всем согласен. Только хотелось бы сказать, что пользователей можно совсем не упоминать, так как они на другом уровне и средства которыми они пользуются другие. Обоюдно не стоит кричать С, это круто.
Каждой вещи свое место.
С уважением, VSerg.
Первоначально опубликовано Владимир Е. Зюбин
Еще раз повторить, что после того, как мне показали
способы создания функция на ST a la IEC, мне стало
понятно, что ST теоретически позволяет использовать
технику структурного программирования?
Вы неисправимы.:) В коде приведенном выше практическое использование. :)
Уходя немного в сторону: можно заметить, что это
позволяет делать и Си, и Фортран, и куча ассемблеров
разных...
Интересно. Назовите хоть один не структурный язык ВУ, т.е. язык не обладающий структурой.
Тоже, кстати, забавный вопрос, почему Паскаль был
включен в МЭК 61131-3, а Си нет?
Самое смешное, никому бы в этом случае не пришло в
голову Паскаль использовать в качестве вспомогательного
языка, как это делается в том же ISaGRAFе.
Мне кажется, что выбор сделан на основе низкоуровневых возможностей С и из-за его распространности и популярности. И я точно не могу сказать, какое из условий было важнее. Так как люди которые пишут среды разработки зарабатывают на этом деньги, и для них главное (не для них, а для маркетингового отдела) что бы продукт продавался.
Пора закрывать эту тему. :)
Каждой вещи свое место.
С уважением, VSerg.
Первоначально опубликовано VSerg
Первоначально опубликовано Владимир Е. Зюбин
[...]
[QUOTE]
Уходя немного в сторону: можно заметить, что это
позволяет делать и Си, и Фортран, и куча ассемблеров
разных...
Интересно. Назовите хоть один не структурный язык ВУ, т.е. язык не обладающий структурой.
Вот и я о том же!
1. Чрезвычайно сложно найти язык не позволяющий
структурно программировать... (разве что ST a la ISaGRAF
2.10 :-)
2. Структурное программирование a la Паскаль
для рассматриваемого класса задач малоактуально.
(Если вспомнить с чего все началось: "Sructured Text (ST) - A high level textual language
that encourages structured programming.")
Первоначально опубликовано VSerg
[QUOTE]
Тоже, кстати, забавный вопрос, почему Паскаль был
включен в МЭК 61131-3, а Си нет?
Самое смешное, никому бы в этом случае не пришло в
голову Паскаль использовать в качестве вспомогательного
языка, как это делается в том же ISaGRAFе.
[ / QUOTE]
Мне кажется, что выбор сделан на основе низкоуровневых возможностей С и из-за его распространности и популярности. И я точно не могу сказать, какое из условий было важнее. Так как люди которые пишут среды разработки зарабатывают на этом деньги, и для них главное (не для них, а для маркетингового отдела) что бы продукт продавался.
Пора закрывать эту тему. :)
Абсолютно с Вами согласен, Си гораздо более
распространен и популярен в среде автоматизации, чем
Паскаль.
Я тут вообще ужасную для Паскаля вещь слышал: говорят, Дельфи на Си++ написан... (!)
Интересно. Назовите хоть один не структурный язык ВУ, т.е. язык не обладающий структурой.
1. Чрезвычайно сложно найти язык не позволяющий
структурно программировать... (разве что ST a la ISaGRAF
2.10 :-)
Все о том же.
Первоначально опубликовано Владимир Е. Зюбин
2. Структурное программирование a la Паскаль
для рассматриваемого класса задач малоактуально.
Прошу объяснить.
Первоначально опубликовано Владимир Е. Зюбин
(Если вспомнить с чего все началось: "Sructured Text (ST) - A high level textual language
that encourages structured programming.")
Вам покажется это странным, но работая с ISaGRAF PRO версий 4.12, 4.20 я с этим полностью утверждением полностью согласен. Даже сказать более чем согласен, так как ISaGRAF принуждает структурно программировать. :)
Мой вам совет, не делайте голословных утверждений и посмотрите последние версии продктов.
Первоначально опубликовано Владимир Е. Зюбин
Абсолютно с Вами согласен, Си гораздо более
распространен и популярен в среде автоматизации, чем
Паскаль.
Главные слова "распространен и популярен". Это не значит лучше. :))
Первоначально опубликовано Владимир Е. Зюбин
Я тут вообще ужасную для Паскаля вещь слышал: говорят, Дельфи на Си++ написан... (!)
Да делфийский компилятор написан на Си, все остальное на Object Pascal. А компилятор на Си написан на Си?
Каждой вещи свое место.
С уважением, VSerg.
Первоначально опубликовано VSerg
[...]
Первоначально опубликовано Владимир Е. Зюбин
2. Структурное программирование a la Паскаль
для рассматриваемого класса задач малоактуально.
Прошу объяснить.
Использование в качестве структурных элементов функций
малоэффективно при создании алгоритмов работы сложных
объектов автоматизации. Такой вид структуризации
неадекватен задаче.
Первоначально опубликовано VSerg
Первоначально опубликовано Владимир Е. Зюбин
(Если вспомнить с чего все началось: "Sructured Text (ST) - A high level textual language
that encourages structured programming.")
Вам покажется это странным, но работая с ISaGRAF PRO версий 4.12, 4.20 я с этим полностью утверждением полностью согласен. Даже сказать более чем согласен, так как ISaGRAF принуждает структурно программировать. :)
Мой вам совет, не делайте голословных утверждений и посмотрите последние версии продктов.
Спасибо за совет. За что конференции ценю - всегда
найдется человек, у которого есть чему поучиться.
Первоначально опубликовано VSerg
Первоначально опубликовано Владимир Е. Зюбин
Абсолютно с Вами согласен, Си гораздо более
распространен и популярен в среде автоматизации, чем
Паскаль.
Главные слова "распространен и популярен". Это не значит лучше. :))
Не значит, что лучше, не значит, что хуже...
"Распространен и популярен" - это качества, которые измеряются... а "лучше/хуже" - это лирика.
Прочувствуйте разницу.
Первоначально опубликовано VSerg
Первоначально опубликовано Владимир Е. Зюбин
Я тут вообще ужасную для Паскаля вещь слышал: говорят, Дельфи на Си++ написан... (!)
Да делфийский компилятор написан на Си, все остальное на Object Pascal. А компилятор на Си написан на Си?
Я думаю, многие компиляторы Си написаны на Си. Не
исключаю, что некоторые из них, написаны на Си++. И
уверен, что ни один здравомыслящий человек не станет
делать этого на Паскале... ;-)
Я тут вообще ужасную для Паскаля вещь слышал: говорят, Дельфи на Си++ написан... (!)
Да делфийский компилятор написан на Си, все остальное на Object Pascal. А компилятор на Си написан на Си?
Я думаю, многие компиляторы Си написаны на Си. Не исключаю, что некоторые из них, написаны на Си++. И уверен, что ни один здравомыслящий человек не станет делать этого на Паскале... ;-)
Ага, вы сейчас договоритесь до того, что кто-то начнет утверждать, что Исаграф на МЭКовских языках написан
Давайте уже придем к менению, что логичнее и производительнее всего писать средства разработки\драйвера\средства визуализации и программирования на Си, а алгоритмы управления тех процессом в большинстве случаев - на МЭК. Тогда и спор сам собой утрясется :)
Ну, ну... Паскаль и ST - все же разные вещи...
Раземеется, ни ST, ни какой другой "МЭК-язык"
не позволяет написать транслятор...
Так что, время паниковать еще не пришло... :-)
Но над этим фактом (Дельфи на Си++) есть смысл
хорошенько подумать... ;-) а умные люди (к коим без
ложной скромности я отношу и себя :-) уже давно
над этим фактом размышляют...
и кое-какие выводы уже наклевываются...
Первоначально опубликовано Дмитрий Милосер
Первоначально опубликовано VSerg
Первоначально опубликовано Владимир Е. Зюбин
Я тут вообще ужасную для Паскаля вещь слышал: говорят, Дельфи на Си++ написан... (!)
Да делфийский компилятор написан на Си, все остальное на Object Pascal. А компилятор на Си написан на Си?
Я думаю, многие компиляторы Си написаны на Си. Не
исключаю, что некоторые из них, написаны на Си++. И
уверен, что ни один здравомыслящий человек не станет
делать этого на Паскале... ;-)
Ага, вы сейчас договоритесь до того, что кто-то начнет утверждать, что Исаграф на МЭКовских языках написан
Давайте уже придем к менению, что логичнее и производительнее всего писать средства разработки\драйвера\средства визуализации и программирования на Си, а алгоритмы управления тех процессом в большинстве случаев - на МЭК. Тогда и спор сам собой утрясется :)
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме