Programozási nyelvek beágyazott rendszerekhez 101: Háttér és források

Mátó Péter: Hogyan legyél DevOps? (Július 2019).

$config[ads_text] not found
Anonim

Programozási nyelvek beágyazott rendszerekhez 101: Háttér és források


Íme egy rövid útmutató néhány hasznos programozási nyelvre, amelyet a beágyazott rendszerek tervezésében használnak - és ahol tanulhat, gyakorolhat és mesterelhet.

Nincs szükség formális oktatásra a számítástechnikában vagy a mérnöki feladatokban a programozási készségek elsajátításához. Számos források állnak rendelkezésre az interneten, amelyek segítenek Önnek a készségek elsajátításában és fejlesztésében, és alternatív utat biztosítva a beágyazott rendszerek programozójának.

De rájönni, hogy melyik programozási nyelvek fektessenek be idejét, nehéz lehet. Ez az útmutató segíti Önt az úton.

C / C ++

Az IEEE Spectrum 2016-os felmérése szerint a C és a C ++ a legfontosabb két helyet választotta a beágyazott rendszerek legnépszerűbb és leggyakrabban használt programozási nyelveként. Ez nem valószínű, hogy meglepetésként érzi magát a tapasztalt mérnökök, tudósok és hobbi szakemberek számára, akik szinte garantálják, hogy egy bizonyos vagy mindkét nyelvet nagy mértékben egy bizonyos ponton használják.

C a 70-es évek elején hozta létre Dennis Ritchie, mint egy magas szintű programozási nyelv UNIX operációs rendszerekben. Abban az időben nagyrészt használták a közgyűlés nyelvét, amely sok feladatot követelt a feladat végrehajtásához. A B programozási nyelvet azért hozták létre, hogy e feladatokat kevesebb sornyi vonalon végezze, de nem volt adattípus vagy struktúra. C létrejött, amely a B. C-ben hiányzó funkciókat tartalmazott, ezután a szabványos programozási nyelv lett a UNIX rendszerekben.

A C ++ genezisége a 70-es évek végén kezdődött egy Bjarne Stroustup nevű PhD hallgatóval, aki egy Simula nevű programozási nyelvet használ. Végül a C-re váltott, ami sokkal gyorsabb volt, és lehetővé tette az alacsony szintű programozást. De aztán a Stroustup elkezdte hozzáadni a Simulában található C elemeket. A hibrid "C osztályokkal" lett, és 1983-ban átnevezték C ++ -re. A C-ban lévő '++' egy növekményt jelez, így a C ++ a nyelv C-alapja.

A C és C ++ közötti különbség általában az, hogy C egy olyan eljárási nyelv, amelyet rendszerprogramozáshoz használnak, és "könnyű" (kevesebb memóriát igényel), míg a C ++ általánosabb és objektumorientált.

A C vagy C ++ tanulás nagyszerű módja a beágyazott rendszerek programozásának megkezdéséhez. Egyesek azt mondják, hogy ha megtanulod a C-t, akkor bármelyik nyelvet tanulhatsz. Nem fáj, hogy még ma is olyan széles körben használják.

Az Arduino platform C vagy C ++ programmal használható. Kép az OpenHomeAutomation jóvoltából.

Rozsda

Ahogyan a C ++ a C-hez tartozik, a rozsdától C ++ -ig. A Rust egy nyílt forrású, általános célú programozási nyelv, amelyet a Mozilla Research fejlesztett ki, elsősorban a biztonságra és az integritásra összpontosítva.

A Rust 2006-ban Graydon Hoare személyes projektként kezdődött, és egy viszonylag új nyelv, amelyet 2015-ben adtak ki. Gyorsan megszerezte népszerűségét, és 2016-ban és 2017-ben megszavazta a Stack Overflow közösség kedvenc nyelvét.

Rust funkciói közé tartozik az algebrai adattípusok, a típusú következtetések és a minták illesztése, csak néhányat említsünk.

Van némi várakozás arra, hogy a Rust végül eléri a C ++ -et széles körben.


Piton

Bár a beágyazott rendszerekkel hagyományosan nem társították, a Python komolyabban veszi figyelembe a beágyazott rendszeralkalmazásokat. Gyakran az első nyelvű diákok tanulnak egy számítógépes tudományi programban, és megtalálni mindenféle érdekes húsvéti tojást, és bólogat a népszerű kultúrába rejtett nómenklatúrájában.

A Pythonot a 80-as években Guido Van Rossum hozta létre, és a "Monty Python Flying Circus" címet kapta. Ez egy általános célú, többprogramozási paradigmaváltás, amely az olvashatóságra és írhatóságra összpontosít, így elkerülve annyi felesleges írást, amennyire csak lehetséges a közvetlen kód.

A dobozon kívül a Python esetleg nem lesz olyan hasznos a beágyazott programozáshoz, mint a C vagy a C ++, de számos könyvtáraval elérhető, könnyen megvalósítható olyan funkciók, amelyek ugyanolyan hasznosak. Kiválóan alkalmas a tesztelés automatizálására, az adatok gyűjtésére és elemzésére.

VHDL és Verilog

Hardver Leírás A nyelveket sokat használják az FPGA-k és a párhuzamos programozási alkalmazásokban. Ezek nagyon különböznek sok más nyelvtípustól, mivel általában hardveren alapulnak, ezért "hardverleírás".

A Verilogot a 80-as évek elején alakították ki az első olyan HDL-k egyikeként, amelyeket elsősorban az elektronikus rendszerek modellezésében használnak. A nyelv neve rövidítve a "LOGIC VERIFICÁCIÓJA". A program a modulok hierarchiáján alapul, hogy képes legyen leírni egy rendszert. A Verilog könnyebben megtanulható, ha már rendelkezel tapasztalattal a C programozásban.

A VHDL-t az USA Védelmi Minisztériuma fejlesztette ki a 80-as évek végén, kezdetben az ASIC viselkedésének jobb megértéséért. Végül kialakult HDL lett, amely az Ada programozási nyelvén alapult. A VHDL-t gyakran használják ipari alkalmazásokban.

A Xilinx Spartan-6 FPGA-val rendelkező MIMAS V2 kártya kitűnő a HDL gyakorlásához. Kép a Numato Lab jóvoltából.

Ingyenes online források

  • Learn C - Ingyenes interaktív C oktatóanyag (C)
    Ez az interaktív bemutató mindent megtesz a kezdők kihívásairól a fejlettebb oktatóanyagokra, például az adatstruktúrákra és mutatókra
  • HackerRank (C ++, Python)
    A Hackerrank alapos oktatóprogramokat tartalmaz, amelyeket alapvető számítógépes tudományok (algoritmusok, adatszerkezetek, matematika) és készségek szerveznek (mesterséges intelligencia, adatbázisok, biztonság). Ezenkívül erőforrásokat is kínál a munkakeresők számára készülő coderek számára, és rendszeresen hackatonnal rendelkezik a programozók minden szintjén való versenyzéshez.
  • CodeFights (C ++, Python)
    A CodeFights a tanulás programozását teszi lehetővé, interaktív "történettel", olyan kihívásokkal, amelyek nehézségekkel járnak, ahogy haladsz. Ha feliratkozik, választani tudja a választott nyelvet, de bármikor átválthat. Ön is részt vehet a kihívásokon közvetlenül más felhasználók ellen, versenyezhet versenyeken, és felkészülhet a munkaköri interjúkra.
  • Rozsda példa szerint (Rust)
    A Rust by Example egy olyan bemutató, amely egyre több összetett feladattal jár. A bemutató meglehetősen átfogó, és befejezése után el kell kezdeni, hogy képes legyen használni a Rustot a valós alkalmazásokban.
  • Verilog egy nap alatt (Verilog)
    Míg a webhely keltezöttnek tűnhet, hasznos információ kincsvadászat azok számára, akik a Verilog tanulására vállalkoznak. Többféle oktatóanyag van, amelyek az alapoktól kezdve a tesztelésig terjednek, és az erőforrásokra mutató linkek segítenek a készségek továbbfejlesztésében.
  • VHDL bemutató: Tanuljon példával (VHDL)
    Ez egy átfogó útmutató a VHDL programozásról példákkal, útmutatókkal és erőforrásokkal, amelyek segítenek az elindulásban.
  • Nandland (VHDL, Verilog)
    A Nandland egy Kickstarter kampányt indított FPGA tábla létrehozására, amelyet verilog- és VHDL-oktatóprogramokon keresztül lehet használni. Természetesen bármilyen FPGA-t használhat a bemutatóhoz. A weboldal is elég alapos magyarázatot ad arról, hogy mi az az FPGA, és számos olyan funkciót (vagy furcsaságot) sorol fel, amelyek hasznosak lehetnek az FPGA programozás megkezdésekor.