Средство для программирования контроллера: Си или МЭК 61131? |
Ответить | Страница <1 1718192021 53> |
Автор | ||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
Опубликовано: 02 Октябрь 2003 18:46 |
|||||||
Перевод хороший. Значит проблемы с пониманием.
Переведите теперь определения ISA и сведите все вместе. Удачи. compile 1. A computer function that translates symbolic language into machine language. 2. To prepare a machine language program from a computer program written in another programming language by making use of the overall logic, structure of the program, or generating more than one machine instruction for each symbolic statement, or both, as well as performing the function of an assembler. compiler 1. A program that translates a high level source language (such as FORTRAN IV or BASIC) into a machine language suitable for a particular machine. 2. A computer program more powerful than an assembler. In addition to its translating function, which is generally the same process as that used in an assembler, it is able to replace certain items of input with a series of instructions, usually called subroutines. Thus, an assembler translates item for item, and produces as output the same number of instructions or constants which were put into it; a compiler will do more than this. The program which results from compiling is a translated and expanded version of the original. Synonymous with "compiling routine" and related to "assembler." interpreter A system program which allows the execution of computer programs using a step by step translation of individual instructions instead of translating the complete program before execution. translate To convert from one language to another language. translator 1. A program whose input is a sequence of statements in some language and whose output is an equivalent sequence of statements in another language. 2. A translating device.
|
||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||||
Извините, но по мне Вы несколько дальше от реальности находитесь... :-(
|
||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||
Новичок Присоединился: 26 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 22 |
||||||||
А Joy действительно забавный маргинальный случай (собственно эту маргинальность отчасти признают и его создатели :). Признаюсь, я про него ничего не знал, так что спасибо за ссылку. Но вот читаем:
Joy is also reflective. As noted in passing earlier, expressions which denote compositions of stack functions which push a value already look like lists. Joy extends this to arbitrary expressions. These are now called quotations and can be manipulated by list operations. The effect of higher order functions is obtained by first order functions which take such quotations as parameters. (http://www.latrobe.edu.au/philosophy/phimvt/joy/j00rat.html) Так все-таки есть higher order functions, которые просто вводятся нетрадиционным образом. То есть одни функции манипулируют над другими, представленными в форме "quotations". Без этих особенностей не решились бы назвать язык "функциональным". То есть тот факт, что некоторый язык позволяет просто задавать функции с помощью комбинирования других функций в композиции, еще недостаточен для того, чтобы назвать язык "функциональным". Необходима по крайней мере возможность манипуляции одних функций над другими. Иначе пришлось бы зачислить в "функциональные" почти все языки |
||||||||
С уважением,
Дмитрий Теркель |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||||
Ну что ж... каждый человек имеет право на собственное мнение...
Но опять же повторюсь: 1. У оппонента неверное представаление о том, что такое трансляция, интерпретация и компиляция... (ссылки на ISO-определения приведены) 2. Фактография, которую использовал оппонент, несомненно интересна, но не влияет ни на справедливость утверждений, ни на выводы статьи. 3. К сожалению, критика оппонента неконструктивна, что, по-видимому, связано с невнимательным чтением статьи.. Например, критикуются некие заявления "о "необходимости" единого графического интерфейса", которые в статье попросту отсутствуют... 4.Основной вывод статьи - невозможность достижения переносимости на базе стандарта МЭК61131-3 и принципиальной невозможности продвижения в этом направлении в рамках PLCopen, почему-то критикуемый оппонентом - это факт. Этот факт прекрасно подтверждается сворачиванием PLCopen деятельности в этом направлении (см. PLCopen.org): в PLCopen прекратили даже разработку паллиативного решения - проект FxF (проект по разработке File eXchange Format, переносимость кода). Резюмируя критику можно сказать следующее. К сожалению, критика была неконструктивной, содержала вольные интерпретации устоявшихся терминов и искажение ряда положений статьи, на замечания оппонент не реагировал, продолжая настаивать на своем неверном понимании, что вызвало вполне объяснимое раздражение, выразившееся в прямом указании оппоненту на его невежество и непрофессионализм в рассматриваемой области программирования. К слову, и ник-то, который выбрал оппонент, свидетельствует о некоторых проблемах психологического характера... содержит заявку на некий авторитет (доктор), и нежелание действовать открыто (Q), желание сохраненить анонимность, со всеми вытекающими. Ув. "Доктор Q", подумайте, может имеет смысл отказаться от Вашего ника и перезарегистрироваться в системе?
|
||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||||
Добиваться межплатформенной переносимости
с помощью ассемблера - ИДИОТИЗМ вдвойне. Т.к. 1. ассемблер по определению отражает архитектурные особенности вычислительной платформы (если разговор идет о "железе" и переносимости с одной "железки" на другую). 2. этот способ не позволит модифицировать исходные тексты на других языках (если разговор идет о переносимости ПО разных брэндов). По определению Си - более подходящий вариант по сравнению с IL. По ВСЕМ параметрам... стоимости, надежности, гибкости, удобства, читабельности, модифицируемости... и т.д. и т.п.
|
||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||||||||
Пожалуйста, скажите по поводу тезиса в статье, "об ассемблероподобном языке". Ещё раз -- почему ИДИОТИЗМ? Вы не ответили на этот вопрос, но рассуждаете о непереносимости ассемблера. |
||||||||
С уважением,
Бессонов Ян. |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
||||||||
Дмитрий Теркель То есть тот факт, что некоторый язык позволяет просто задавать функции с помощью комбинирования других функций в композиции, еще недостаточен для того, чтобы назвать язык "функциональным". Необходима по крайней мере возможность манипуляции одних функций над другими. Иначе пришлось бы зачислить в "функциональные" почти все языки Я готов согласиться. Однако признайтесь, что сам факт существования языка Joy заставляет подправить расхожие представления о том, что является, а что не является функциональным языком. Хотя бы потому что Joy не использует лямбда-калькулус. Если Вы обратили внимание, несмотря на упомянутую Вами "маргинальность", Joy имеет весьма солидного "союзника" в лице Бэкуса с его FP-системами. Переводя разговор в более практическое русло, что, на Ваш взгляд, необходимо было бы добавить в FBD, чтобы сделать его действительно функциональным языком? |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
||||||||
Владимир Е. Зюбин Переведите теперь определения ISA и сведите все вместе Уважаемый, я вынужден повторить свою просьбу давать проверяемую информацию. Указывайте хотя бы источник и, самое главное, год издания. Дело в том, что computer science прогрессирует настолько быстро, что некоторые вещи устаревают даже к моменту их публикации ;-) Я мог бы, например, привести достаточно много ссылок на определения интерпретаторов, где фаза трансляции указана как, казалось бы, необходимый атрибут интерпретатора. Начиная с ув. Легалова, см. http://www.softcraft.ru/translat/lect/t01-02.shtml Интерпретатор - программа или устройство, осуществляющее пооператорную трансляцию и выполнение исходной программы Однако, обратите внимание что он пишет в самом начале страницы: Большинство рассматриваемых определений заимствовано из [АРНФТС]. Если Ва не поленитесь и откроете эту ссылку то, вероятно, будете неприятно разочарованы: [АРНФТС] Шишмарев А.И., Заморин А.П. Англо-русско-немецко-французский толковый словарь по вычислительной технике. М.: Издательство "Русский язык", 1978. Увы... Можно представить, как давно _создавались_ эти определения. Так ведь и до "лженауки кибернетики" можно докопаться ;-) Основная проблема с приводимыми Вами определениями состоит в том, что они логически взаимно противоречивы. Если Вам это непонятно, я могу объяснить.
|
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||||||||
Насчет понятий вполне можно согласиться, это было бы весьма удобно. Однако, трудность будет заключаться в том, что не удастся заставить программистов пользоваться этими абстракциями. Что же касается поддержки - она упирается, в основном, в средства разработки, то есть, в ту или иную реализацию стандарта. Чтобы предоставить поддержку сишным программистам на том же уровне, на котором её получают программисты на МЭК, потребуется либо новая система разработки на C, либо поддержка C в том или ином виде в рамках конкретной реализации МЭКовского языка.
При создании ST были, как раз, учтены те самые абстракции, которыми Вы предлагаете наделить C. И, соответственно, убраны элементы языка, которые позволили бы программисту действовать вне рамок этих абстракций. Тем не менее, конкретная реализация языка может, наоборот, добавить ему функциональности, тем самым внося свой вклад в несовместимость с другими реализациями.
Моя личная точка зрения заключается в том, что полиморфизм, по крайней мере, в его сишной реализации, это возможность создать два метода с одинаковыми названиями для реализации действий над разными типами данных. В небольших программах в этом нет необходимости (и так все ясно), а в больших, вкупе с неявными преобразованиями типов и наследованием, приводит лишь к дополнительной путанице. Возможность же наследования, позиционируемая как способ повторного использования кода, на самом деле позволяет похоронить детали реализации тех или иных классов вместе с воспоминаниями о том, для чего они были нужны :) Вообще, я не сторонник ООП в сишном его понимании, и всегда предпочитаю писать my_method (&my_object) вместо my_object.my_method() :-) Даже несмотря на то, что в данном случае "чистый" C не позволяет контролировать правильность передаваемого указателя (в этом смысле Паскаль - более "безопасный" язык). Прошу понять меня правильно, я не считаю, что ООП бесполезно как таковое. Просто оно, на мой взгляд, не является нужным при решении задач управления технологическими процессами. Его область применения тоже достаточно специфична: базы данных, графические интерфейсы...
Если исходить из того, что графически выраженный "агрегат" представляет собой вектор X=(x1,x2,...xn), то для того, чтобы получить из него другой вектор Y, представляющий собой некоторую комбинацию элементов исходного вектора, то мы должны выполнить преобразование, например, y1=x2, y2 = x1 и т.п. Таким образом, чтобы получить из одного "агрегата" другой, мы должны создать некоторую подпрограмму (функцию или функциональный блок), реализующую это преобразование. Либо делать это преобразование в том блоке, которому этот "агрегат" предназначается. Разве есть другие возможности?
Если я правильно понял, это что-то наподобие механизма "дружественных классов" в C++. Да, такой механизм мог бы добавить описательности языку, но способен также сильно запутать программу, приводя к трудноуловимым ошибкам. Представьте себе, если три функциональных блока связаны между собой такими двунаправленными связями, как будет определяться порядок вычислений?
Здесь нет никакого противоречия, можно даже привести пример достаточно распространенного графического языка, ориентированного на процедурное программирование. Просто в рамках конкретного FBD принято избегать циклов и ограничивать разветвленность алгоритма, решая большинство задач в рамках единого управляющего цикла контроллера. Такой подход имеет под собой веские основания, но в него плохо укладывается решение данной проблемы. |
||||||||
Инженер-системотехник
+7 (916) 477 3925 |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
||||||||
Владимир Е. Зюбин compiler 1. A program that translates a high level source language (such as FORTRAN IV or BASIC) into a machine language suitable for a particular machine. Вместо того чтобы переводить это определение, я приведу определение ув. Легалова из источника, на который давал ссылку в предыдущем постинге: Компилятор - это обслуживающая программа, выполняющая трансляцию на машинный язык программы, записанной на исходном языке программирования Удивительная схожесть, не правда ли? Зная, из какого источника брал свое определение Легалов (словарь 1978г), я догадываюсь, из каких пыльных архивов добыто приводимое Вами ;-) А теперь я приведу современное определение этого термина, взятое из наиболее авторитетного на сей день источника - "книги дракона" (А.Ахо, Р.Сети, Д.Ульман, "Компиляторы. Принципы, технологие, инструменты", Вильямс 2001, перевод издания 1985г) Компилятор - это программа, которая считывает текст программы, написанной на одном языке - исходном, и транслирует (переводит) его в эквивалентный текст на другом языке - целевом. Во избежание всяческих ошибок и недоразумений, настоятельно рекомендую Вам использовать именно это определение ;-) |
||||||||
Ответить | Страница <1 1718192021 53> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |