Языки программирования для встроенных систем 101: справочная информация и ресурсы

JavaScript for Web Apps, by Tomas Reimers and Mike Rizzo (June 2019).

$config[ads_text] not found
Anonim

Языки программирования для встроенных систем 101: справочная информация и ресурсы


Вот краткое руководство по некоторым полезным языкам программирования, используемым в дизайне встроенных систем, и где вы можете учиться, практиковать и осваивать их.

Вам не требуется формальное образование в области информатики или инженерии, чтобы оттачивать ваши навыки программирования. В Интернете доступно множество ресурсов, которые помогут вам учиться и совершенствовать свои навыки, предоставляя альтернативный путь к программированию встраиваемых систем.

Но выяснить, какие языки программирования вкладывать ваше время в может быть сложно. Это руководство поможет вам по пути.

C / C ++

Согласно исследованию IEEE Spectrum, проведенному в 2016 году, C и C ++ заняли первые два места в качестве наиболее популярных и используемых языков программирования во встроенных системах. Это вряд ли станет сюрпризом для опытных инженеров, ученых и любителей, которые почти гарантированно используют один или оба этих языка в какой-то степени в какой-то момент.

C был создан в начале 70-х годов Деннисом Ритчи в качестве языка программирования высокого уровня в операционных системах UNIX. В то время язык Ассамблеи в основном использовался, что требовало многих строк кода для выполнения задачи. Затем был создан язык программирования B для выполнения этих задач с меньшим количеством строк кода, но у него не было типов данных или структур. C был создан, который реализовал функции, отсутствующие в B. C, затем стал стандартным языком программирования в системах UNIX.

Генезис C ++ начался в конце 70-х годов аспирантом по имени Bjarne Stroustup, который использовал язык программирования под названием Simula. В конце концов, он переключился на C, что было намного быстрее и позволило программировать на низком уровне. Но затем Stroustup начал добавлять функции, найденные в Simula, к C. Гибрид стал «C с классами» и в 1983 году был переименован в C ++. «++» в C указывает на приращение, поэтому C ++ - это знак основания C на языке.

Разница между C и C ++ обычно заключается в том, что C - это процедурный язык, предназначенный для использования в системном программировании и более «легкий» (требуется меньше памяти), тогда как C ++ является более общим и объектно-ориентированным.

Обучение C или C ++ - отличный способ начать программирование встроенных систем. Некоторые говорят, что если вы можете научиться C, вы можете изучить любой язык. Также не больно, что он так широко используется, даже по сей день.

Платформа Arduino может использоваться с C или C ++. Изображение предоставлено OpenHomeAutomation.

Ржавчина

Так же, как C ++ для C, Rust - для C ++. Rust - это язык программирования общего назначения с открытым исходным кодом, разработанный Mozilla Research, в первую очередь ориентированный на безопасность и целостность.

Rust началась как персональный проект Graydon Hoare в 2006 году и является относительно новым языком, выпущенным в 2015 году. Он быстро завоевал популярность и был признан любимым языком 2016 года и 2017 года сообществом Stack Overflow.

Возможности Rust включают в себя алгебраические типы данных, вывод типа и сопоставление шаблонов, чтобы назвать несколько.

Существует некоторое ожидание того, что Rust в конечном итоге обойдет C ++ в широком использовании.


питон

Хотя это традиционно не связано со встроенными системами, Python начинает восприниматься более серьезно во встроенных системных приложениях. Часто ученики первого языка учатся в программе по информатике, и вы найдете всевозможные интересные пасхальные яйца и кивки к популярной культуре, скрытой в своей номенклатуре.

Python был создан Guido Van Rossum в 80-х годах и был назван в честь «Полетного цирка Монти Питона». Это универсальный язык программирования с несколькими программированием, который фокусируется на удобочитаемости и возможности записи, устраняя как можно больше ненужного написания для простого кода.

Конечно, Python может быть не так полезен для встроенного программирования, как C или C ++, но с многочисленными доступными библиотеками легко реализовать функции, которые делают его столь же полезным. Он отлично подходит для автоматизации тестирования, сбора и анализа данных.

VHDL и Verilog

Описание аппаратного обеспечения Языки много используются в ПЛИС и в приложениях с параллельным программированием. Они сильно отличаются от многих других типов языков тем, что они обычно основаны на аппаратных средствах, следовательно, «описание оборудования».

Verilog был изобретен в начале 80-х годов как один из первых ЛПВП, используемый в основном для моделирования электронных систем. Название языка - это сокращенная версия «VERIfication of LOGIC». Программа основана на иерархии модулей, чтобы иметь возможность описать систему. Verilog может быть легче узнать, если у вас уже есть опыт программирования на C.

VHDL был разработан Министерством обороны США в конце 80-х годов, первоначально как способ лучше понять поведение ASIC. В конечном итоге он превратился в HDL, основанный на языке программирования Ada. VHDL часто используется в промышленных приложениях.

Плата MIMAS V2 с FPGA Xilinx Spartan-6 отлично подходит для практики HDL. Изображение предоставлено лабораторией Numato.

Бесплатные онлайн-ресурсы

  • Изучите C - Free Interactive C Tutorial (C)
    В этом интерактивном учебнике есть все, начиная от начинающих задач и заканчивая более продвинутыми учебниками по таким темам, как структуры данных и указатели
  • HackerRank (C ++, Python)
    У Hackerrank есть обширные учебные пособия, организованные основными концепциями компьютерной науки (алгоритмы, структуры данных, математика) и навыками (искусственный интеллект, базы данных, безопасность). У него также есть ресурсы для подготовки кодеров к собеседованию на собеседование, и на регулярной основе есть хакатон для всех уровней программистов, чтобы конкурировать.
  • CodeFights (C ++, Python)
    CodeFights позволяет учащимся программировать забаву, с интерактивной «историей» с проблемами, которые возникают в трудных ситуациях по мере продвижения. Вы можете выбрать свой язык выбора при регистрации, но вы можете переключаться каждый раз. Вы также можете участвовать в вызовах непосредственно против других пользователей, участвовать в турнирах и готовиться к собеседованию.
  • Ржавчина по примеру (ржавчина)
    Rust by Example - это учебное пособие, в котором вы усложняете ряд задач. Учебное пособие достаточно полно, и его завершение должно дать вам возможность использовать Rust в реальных приложениях.
  • Verilog за один день (Verilog)
    Хотя веб-сайт может выглядеть устаревшим, это сокровищница полезной информации для тех, кто хочет научиться Verilog. Существует несколько обучающих программ, которые варьируются от основ до тестирования и ссылок на ресурсы, чтобы помочь вам в развитии ваших навыков.
  • Учебное пособие по VHDL: узнайте по примеру (VHDL)
    Это всестороннее руководство по программированию VHDL с примерами, учебными пособиями и ресурсами, которые помогут вам начать работу.
  • Nandland (VHDL, Verilog)
    Nandland провела кампанию Kickstarter для создания платы FPGA, которую можно использовать при просмотре своих руководств Verilog и VHDL. Конечно, вы можете использовать любую FPGA для учебника. Веб-сайт также предлагает достаточно подробное объяснение того, что такое FPGA, и перечисляет многие функции (или причуды), которые могут быть полезны при запуске в программировании FPGA.