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:
- Referencemanualen:
http://www.adahome.com/rm95/
- Stilvejledning:
http://www.adaic.com/docs/95style/html/cover.html
Kurser:
- Ada95 Lovelace Tutorial:
http://www.adahome.com/Tutorials/Lovelace/lovelace.htm
Værktøjer:
- GNU Ada-oversættere:
http://libre.adacore.com/libre/
- GNU Ada-oversætter der genererer JBC (applets):
http://www.acm.org/sigs/sigada/education/pages/jgnat.html
- GRASP kodeanalysator (et ret sejt værktøj):
http://www.eng.auburn.edu/department/cse/research/grasp/
- Pretty printer (også god til C):
http://www.infres.enst.fr/~demaille/a2ps/
Kode:
- GtkAda (svarer til Gtk+):
http://libre.adacore.com/libre/tools/gtkada/
- Ada-pakker til genbrug:
http://www.adapower.com/reuse/
- Jacobs blandede landhandel:
http://edb.jacob-sparre.dk/Ada/
Spørgsmål?
Hvis du har nogle spørgsmål er du meget velkommen til at skrive til mig.