Скачиваний:
115
Добавлен:
23.01.2020
Размер:
2.9 Mб
Скачать

Что нужно программировать в КФС?

Оконечные устройства

Шлюзы

Облачные сервисы

Клиентские приложения ???

Язык программирования С

Нестареющая классика от Брайана Кернигана и Денниса Ричи (since 1972)

Очень простой синтаксис, который не меняется.

Стандартизован, документирован, проверен годами

Прямой доступ к железу => высокая производительность

Можно легко выстрелить себе в ногу…

Без него не обойтись при программировании МК

Язык программирования С++

Не имеет отношение к С, Страуструп задумывал его как отдельный язык

Можно написать все от игры крестики-нолики до операционной системы

Чрезвычайно сложен и запутан в последних версиях

Стандартизирован, но новые стандарты появляются слишком часто

Доступ к железу и высокая производительность никуда не делась

ООП, функциональные возможности, миллионы библиотек

Отличная документация, книги, курсы и т.д. – даже больше, чем по С

Тоже можно выстрелить себе в ногу, но не так больно

Абсолютная кроссплатформенность

Язык программирования JAVA

Все любят JAVA (кроме меня)

Почти настоящее ООП

Не работает с железом напрямую, только через ВМ

Поэтому будет работать медленнее С++ и, тем более С

Зато не требует перекомпиляции под новую программу

Сложный многословный синтаксис

Есть противоречия и возможность писать по-старому в новых версиях

Нет единого международного стандарта

Потому что не является свободным ПО, а принадлежит Oracle

Раньше была основой программирования под Android (Dalvik)

Язык программирования Python

Проще него только язык Logo

Очень компактный код (предмет споров)

Титанический массив уже написанного кода, только бери и пользуйся

Язык и почти все к нему является Open Source

Может быть интегрирован с кодом на С и С++

В чистом виде не может напрямую взаимодействовать с железом (ВМ)

Тоже не обладает высокой производительностью (почти всегда медленее JAVA)

Катастрофически сложно выстрелить себе в ногу

Идеален для быстрого прототипирования кода

А что насчёт промышленности?

Языки программирования (графические)

LD (Ladder Diagram) — Язык релейных схем — самый распространённый язык для PLC

FBD (Function Block Diagram) — Язык функциональных блоков — 2-й по распространённости язык для PLC

SFC (Sequential Function Chart) — Язык диаграмм состояний — используется для программирования автоматов

CFC (Continuous Function Chart) — Не сертифицирован IEC61131-3, дальнейшее развитие FBD

Языки программирования (текстовые)

IL (Instruction List) — Ассемблеро-подобный язык

ST (Structured Text) — Паскале-подобный язык

C-YART — Си-подобный язык (YART Studio)

Интересные проекты для IoT и КФС

MicroPython, CircuitPython

Espruino (JavaScript)

JArduino

NanoVM (Java для AVR)

TinyGo

Фреймворки и платформы

KAA IoT

https://www.kaaproject.org/

Одна из наиболее эффективных и развитых облачных платформ Internet of Things с открытым исходным кодом. Предоставляет бесплатный способ реализовать свои концепции интеллектуальных продуктов. На этой платформе можно управлять неограниченным количеством подключенных устройств с возможностью взаимодействия между устройствами. Можно осуществлять мониторинг устройств в режиме реального времени с возможностью удаленной подготовки и настройки устройств.

Соседние файлы в папке Лекции