{{Vorlage:Sprache |Name = Ada |Inlineassembler = Nein |Compiler = GNAT (GNU Ada Compiler) |Plattformen = [[Linux]], [[Windows]] |Kernel = siehe unten |Homepage = [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=45001 ISO-Norm] }} '''Ada''' ist eine nach Ada Lovelace, der ersten Programmiererin, benannte, in den 1970er Jahren von Jean Ichbiah entwickelte, strukturierte und stark typsierte [[:Kategorie:Programmiersprache | Programmiersprache]], deren Ziel die Entwicklung von und für eingebettete Systeme und Echtzeitanwendungen war. Ada war zudem die erste standardisierte Programmiersprache und wurde anfänglich vom US-Verteidigungsministerium gefördert. == Ada als Sprache für ein [[Betriebssystem]] == Alle Vorteile von Ada, die Laufzeitüberwachung und die parallele Verarbeitung, können nicht ohne weiteres in einem Betriebssystem (genauer: In einem [[Kernel]]) benutzt werden, ohne im Kernel selbst eine Referenzimplementierung von Ada zu programmieren. Dennoch ist es möglich, einen Kernel in Ada zu schreiben. == Testkernel in Ada == ===test.adb===
with System.Storage_Elements;
procedure test is
pragma Suppress (All_checks);
multiboot: constant array (0..2) of integer
:= (16#1badb002#, 0, -16#1badb002#);
v: Array (0 .. 80 * 25 * 2) of character;
for v'Address use System.Storage_Elements.To_Address(16#B8000#);
s: constant String := "Hello world!";
begin
for i in s'range loop
v(2 * (i - 1)) := s(i);
end loop;
end test;
===build.sh===
#!/bin/bash gcc -c -m32 -x ada test.adb strip -dR .eh_frame test.o ld -melf_i386 -Ttext=0x100000 -e "_ada_test" -o test.krn test.o== Weblinks == * [https://libre2.adacore.com/ GNU Ada Compiler] * [http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=45001 ISO-Norm Ada 2005] [[Kategorie:Programmiersprache]]