http://procoder.info/index.php/entry/kompilyator-domashnego-prigotovleniya-ch-1/
це основи для практики, але в контексті сабжа рекомендував би почитати в нашому журналі про створення персональної мови програмування від Віктора Кона (випуск №1 и 11) http://raxp.radioliga.com.
SCADA - це не мова програмування, вони там можуть використовуватися, так. SCADA - це система проектування і візуалізації (мнемосхема) технологічних процесів і взаємодії з ними через мови МЕК, скрипти і нативні мови (Сі, Паскаль, VB), вважай солянка на догоду універсальності.
Візуальних мов програмування не існує. Є лише мови програмування
намалювати програму під контролер
слід відокремити мух від котлет. Існує, ще як існує. Що відбувається з кодом на звичайних мовах програмування в кінцевому підсумку? Правильно, вiн компілюэться в байт-код в підсумку, в код машинних інструкцій. Те ж саме і з графічними мовами. Синтаксичні примітиви просто підміняються графічними. Простий приклад - оператор присвоювання або запис значення в регістр підміняються сполучною лінією і т.п.
Графічні мови нерозривно пов'язані з середовищем їх проэктування та компіляції і знайшли застосування для інженерного програмування не тільки окремих контролерів, але і промислових ПЛК, навіть ПЛІС:
тощо.
Порівнювати візуальний або схемотехнічний спосіб проектування з написанням коду дещо некоректно. Різний підхід, різні переваги, різні недоліки. Не бачу сенсу порівнювати, цi речі не конкуренти, вони просто різні і взаємодоповнюючі. Взяти той же Altium, ISE.
Трошки оффтопу
Якщо говорити про ПЛІС: "Візуальний алфавіт" грунтується на елементарній логіці з якої можна побудувати все. Обмеження лише в кількості макроблоків (осередків), тобто пам'яті. У МК теж саме, обмеження пам'яті. Коду в схемотехнiчнiй реалізації як такого немає, все транслюється в елементарні базиси і схему з'єднань і розробнику не показується. У той же час, в тих же ПЛІС середовищами підтримується паралельно з графічним і C/Pascal-подібні AHDL/VHDL, які в підсумку все одно транслюються в елементарний базис. Зручність - так, симулятори дають можливість налагодження. Але чим він краще або гірше симулятора в тому ж Протеус? Та нічим, і там і там віртуальна лабораторія, під своє залізо.
Тому порівнювати середовища з різним підходом, нонсенс. Ось прийшов кіповец, йому потрібно щось запрограмувати в AVR. Що йому робити? Або вивчати Сі, або за пару хвилин накидати релейну робочу схему. І в той же час, прийшов програміст, який не розуміє в релейних схемах, але при реалізації алгоритму задачі вирішить ту ж задачу в ПЛК при наявності можливості написання FBD-блоків. Я не говорю про універсалiв.
Резюмуючи
Який сенс і призначення графічних мов - уявіть собі що це олівець. Так, так. Замість того, щоб хапатися за завдання з "наскоку", ти сідаєш і починаєш клепати алгоритм. Спочатку зовсім абстрактний, типу "ініціалізація", "робочий цикл", "стан аварії" і тд, а потім все уточнювати, загалом цей лист можна роздрукувати, або просто як картинку зберегти і передати колегам, у яких подібна задача або вони будуть супроводжувати проект. Безпосередня генерація коду - це лише смачна плюшка програми, але вона не витримує критики, її основне призначення - написання алгоритму, який одночасно буде документацією.