Auch in diesem Jahr haben die vielen spannenden Einreichungen für „Make with Ada“ gezeigt, wie einfach es ist, mit den Program-miersprachen Ada und SPARK zuverlässigen Code für Embedded-Systeme zu entwickeln. Nun stehen die Gewinner der fünften Aus-gabe des Wettbewerbs fest.
AdaCore hat die Gewinner des fünften jährlichen „Make with Ada“-Programmierwettbewerbs für Embedded-Projekte bekanntgegeben. Die-ser lief vom 31. Juli 2020 bis zum 31. Januar 2021 und verzeichnete 173 Teilnehmer aus der ganzen Welt.
„Nachdem ich von der Ada-Firmware für die Nanondrohne Crazyflie 2.0 erfahren habe, habe ich begonnen, sie auszuprobieren, und konnte die Kernfunktionen binnen weniger Wochen verstehen.... Ich werde die Entwicklung meiner Drohnen-Firmware mit Ada fortsetzen und will sie als Open Source für al-le bereitstellen, die sich dafür interessieren.“
Die Teilnehmer waren aufgefordert, mit Ada und/oder SPARK als haupt-sächlich eingesetzten Programmiersprachen ein Embedded-Software-Projekt zu entwerfen und umzusetzen. Sie mussten zeigen, dass ihre Systeme bestimmte Anforderungen erfüllen und auf Basis gängiger Ent-wicklungsmethoden implementiert wurden. Die Juroren bewerteten alle Projekte anhand der Projekt-Logs. Ausgezeichnet wurden diejenigen Projekte, welche das beste Gesamtpaket aus Stabilität und Zuverlässig-keit, Offenheit, Kollaborationsmöglichkeiten, Einfallsreichtum und Buzz-Faktor für die Community boten.
Der mit 2.000 US-Dollar dotierte erste Platz ging in diesem Jahr an Thar-indu Suraj Liyanage, den Gründer und CEO des Drohnen-Startups SRQ, für seine dank ToF-Sensoren (Time of Flight) autonom fliegende „Crazyflie“. Die Drohe besitzt zwar mehrere Sensoren, kann allerdings keine Hinder-nisse identifizieren oder den Abstand zum Boden ermitteln. Ziel des Pro-jektes war es, ToF-Sensoren für Distanzmessungen in die auf Ada/Spark basierende Drohnen-Firmware zu integrieren und autonome Funktionen zu ermöglichen, etwa das selbständige Halten der Höhe.
„Bereits seit fünf Jahren passe ich Firmware für Drohnen an“, berichtet Liyanage. „Nachdem ich von der Ada-Firmware für die Nanondrohne Crazyflie 2.0 erfahren habe, habe ich begonnen, sie auszuprobieren, und konnte die Kernfunktionen binnen weniger Wochen verstehen. Die Ein-fachheit der Ada-Firmware hat es mir erlaubt, eigene Funktionen umzu-setzen, und dank der verfügbaren Ada-Bibliotheken konnte ich auch ver-schiedene Sensoren integrieren. Ich werde die Entwicklung meiner Drohnen-Firmware mit Ada fortsetzen und will sie als Open Source für al-le bereitstellen, die sich dafür interessieren.“
Der Studentenpreis in Höhe von 1.000 US-Dollar wurde an Ahmed Hamdy verliehen, einen Computer- und Systemtechnik-Studenten der Technischen Universität Malaysia in Kuala Lumpur. Er entwickelte mit Ada einen Treiber für den Beschleunigungssensor LSM303AGR auf ei-nem programmierbaren Einplatinenrechner BBC:MicroBit v1.5 und nutzte diesen Treiber dann für ein kleines Spiel, bei dem der Spieler den Micro-Bit möglichst ruhig in waagerechter Postion halten muss.
Zehn Finalisten erhielten darüber hinaus 600 US-Dollar. Zu den span-nendsten Einreichungen zählten:
- ein digitales Blutdruckmessgerät
- ein System zum Erkennen von Gaslecks und Belüften beengter Räume
- ein smartes Tor mit Radar
- ein Gerät zur Überwachung von Luft- und Lärmverschmutzung von Städten
„Wir hatten dieses Jahr einige herausragende Beiträge zu Make with Ada, die die einzigartigen Fähigkeiten von Ada, Entwickler beim Erstellen hochwertiger Software zu unterstützen, ausgeschöpft haben“, freut sich Bill Wong, Senior Technology Editor bei Electronic Design und einer der Juroren. „Die Projekte kamen aus fast allen Bereichen von Embedded-Anwendungen, inklusive Drohnen-Software, und zeigten, dass sich Ada und SPARK überall einsetzen lassen.“
„Wir hatten dieses Jahr einige herausragende Beiträge zu Make with Ada, die die einzigartigen Fähigkeiten von Ada, Entwickler beim Erstellen hochwertiger Software zu unterstützen, ausgeschöpft haben“
„Wir waren sehr erfreut, dass dieses Jahr mehr Projekte von Studenten eingereicht wurden“, betont Fabien Chouteau, Software Engineer bei Ad-aCore und Autor des „Make with Ada“-Blogs. „Durch solche Wettbewer-be können Studenten so viel lernen. Wir hoffen, dass der frühe Kontakt mit Ada und den Entwicklungsprinzipien von SPARK allen Teilnehmern grundlegende Fähigkeiten vermittelt hat, die sie während ihrer gesamten beruflichlichen Karriere nutzen können.“
Der „Make with Ada“-Wettbewerb ist Teil der AdaCore-Initiative, den Ein-satz von Ada und SPARK für die Entwicklung von Embedded-Systemen und, ganz allgemein, „Software that matters“ voranzutreiben. Andere Be-standteile der Initivate umfassen kostenlose Ressourcen für Studenten, Entwickler freier Software, Hobby-Programmierer und alle, die mehr über Ada erfahren wollen, etwa:
- eine interaktive Lernplattform für Ada und SPARK (learn.adacore.com)
- Präsentationen und andere Basismaterialien im GitHub-Repository (github.com/adacore)
- verschiedene Videokurse bei YouTube
- eine kostenlose Version der GNAT Toolchain (GNAT community)
- das GNAT Academic Program (GAP), ein Programm, das zur Nutzung von Ada und SPARK im akademischen Umfeld ermuntert
Folgen Sie @adaprogrammers auf Twitter für Informationen zu künftigen Programmierwettbewerben mit Ada und SPARK.
Über Ada und SPARK
Ada ist eine moderne, international standardisierte Programmiersprache mit einer langen und erfolgrei-chen Erfolgsgeschichte in der Entwicklung von hochzuverlässigen Embedded-Systemen. Die starke Ty-pisierung und und Compile-Time-Checks erkennen Fehler frühzeitig und ermöglichen eine rechtzeitige, kostengünstige Korrektur. Die neueste Version des Ada-Standards, Ada 2012, unterstützt die vertragsba-sierte Programmierung (Pre- und Postconditions für Subprogramme) betten Low-Level-Anforderungen als überprüfbare Aussagen in den Quellcode als ein. In kritischen Systemen, in denen das Testen allein möglicherweise keine ausreichende Sicherheit bietet, unterstützt das SPARK-Subset von Ada die ma-thematischbasierte Sicherheit, dass die relevanten Programmeigenschaften erfüllt werden (zum Beispiel das Fehlen von Laufzeitfehlern wie ein Buffer Overflow). SPARK kann schrittweise in ein Projekt einge-führt werden, und Verträge können entweder statisch (durch die SPARK Proof-Engine) oder dynamisch (mit Run-Time Checks) überprüft werden.