Have a Cookie

Cookie

My website uses cookies to personalize content and ads, to show you social media features, and to analyze website traffic. I might share information about your use of the website with my social media partners, advertising partners, and analysis partners, who may combine the data with other information about you, provided to them from your prior use of their services. Please note that you can change your cookie settings at any time.

Ada for Open Source-folk

Af Jacob Sparre Andersen. Holdt ved SSLUG’s hyggemøde i Symbion tirsdag den 11. april 2000.

Ideen med Ada

Ada er designet som et generelt programmeringssprog, dog med særlig vægt på indlejrede programmerstyresystemer, proceskontrol, Patriot II-sprænghoveder, …holdbarhed og genbrugelighedmålet er at det skal være lige så enkelt at videreudvikle et program 30 år efter det blev skrevet som dagen efterpålideligheddet er ret upopulært at fly falder ned på grund af en General Protection Faultoverskueligheddet skal være overkommeligt at skrive og opdatere programmer på flere millioner linier kode.

Ada er ligesom C og C++ en ISO-standard. I modsætning til C og C++ har man en formaliseret proces til at vurdere om en Ada-oversætter svarer til standarden (denne proces er ikke perfekt).

Om overskueligheden vil jeg gerne citere redaktøren for C-standarden:

“Over 50,000 lines of code, you probably should be programming in Ada.”
– P. J. Plaugher

Kodeeksempler

Sig hej til SSLUG

Her er “standardprogrammet” til at introducere et programmeringssprog:

with Ada.Text_IO; use Ada.Text_IO;

procedure Hej_SSLUG is
begin
   Put_Line ("Hej SSLUG");
end Hej_SSLUG;

With bliver brugt til at markere at en pakke eller routine skal bruges af den efterfølgende procedure. Use bliver brugt som en slags alias-funktion, så man ikke behøver at bruge det fulde navn på de typer og routiner der er defineret i Ada.Text_IO.

Sig hej til SSLUG og resten af verden på samme tid

Ada har parallel processering indbygget i sproget, så jeg har lige udvidet det ovenstående program med en task, der kører parallelt med hovedproceduren. Hej_SSLUG_Og_Verden skriver Hej Verden og Hej SSLUG “samtidig”.

with Ada.Text_IO; use Ada.Text_IO;

procedure Hej_SSLUG_Og_Verden is

   task Hils_På_Verden;

   task body Hils_På_Verden is
   begin
      Put_Line ("Hej Verden");
   end;

begin
   Put_Line ("Hej SSLUG");
end Hej_SSLUG_Og_Verden;

Henvisninger

Opslagsværker:

Kurser:

Værktøjer:

Kode:

Spørgsmål?

Hvis du har nogle spørgsmål er du meget velkommen til at skrive til mig.