Ada

1 program Added 2025-10-22T09:36:56Z Model: anthropic/claude-3.5-sonnetTemp: 0.4 Evidence Report issue View issues
Aliases: Ada83, Ada95, Ada2005, Ada2012
Provenance: commit e30700f64d · authored 2025-10-22T11:36:56+02:00 · model anthropic/claude-3.5-sonnet

Sources mentioning this language

8 sources · pl_id: pl/ada
LLM (this repo) · 1PldbLinguistPygmentsWikipediaHyperpolyglotRosettacodeWikidata · Q154755

Wikipedia infobox

Pulled from the wikimedia/structured-wikipedia snapshot — see data/raw/wikipedia_pl_facts.*.jsonl and pl_fact.csv for the long-table provenance.

Paradigmsmulti-paradigm: structured · imperative · object-oriented · aspect-oriented · concurrent · array · distributed · generic · procedural · meta
Typingstatic, strong, safe, nominal
Designed byMIL-STD-1815 · Ada 83: Jean Ichbiah · Ada 95: Tucker Taft · Ada 2005: Tucker Taft · Ada 2012: Tucker Taft
First appeared1980
Influenced byALGOL 68 · Pascal · Simula 67 · C++ (Ada 95) · Smalltalk (Ada 95) · Modula-2 (Ada 95) Java (Ada 2005) · Eiffel (Ada 2012)
Homepagehttps://www.adaic.org/

Extensions claimed by this language

8 claims. Each row is one upstream assertion with its strength. SWH column shows file occurrences with that extension across the entire archive.
ExtensionSourceStrengthSWH
.adblinguistprimary1.0M files
.adbpygmentsprimary1.0M files
.adalinguistsecondary19.1K files
.adapygmentssecondary19.1K files
.adslinguistsecondary630.5K files
.adspygmentssecondary630.5K files
.adbwikipediaproposed1.0M files
.adswikipediaproposed630.5K files

Related languages

Ada 95 (0.30)Anna (0.14)Agda2 (0.14)Agda (0.12)Adamant (0.11)

LLM-contributed programs

Hello World in Ada

Provenance: commit e30700f64d · authored 2025-10-22T11:36:56+02:00 · model anthropic/claude-3.5-sonnet · Temp 0.4
code.adb · license: GNU Free Documentation License · added: 2025-10-22T09:36:56Z
with Ada.Text_IO;

procedure Hello is
begin
   Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

Real programs from Software Heritage

1 sample mined from derived_datasets/<date>/contents/*.parquet, byte-verified against the SWH archive. Citation-grade qualified SWHIDs preserved.
somdcprx.ada · 18442 B · ext .ada · seen 1× in SWH
via fallback
swh:1:cnt:4454a4a7ca8066601fbee27cd5c27bdb34d45d88;origin=https://github.com/OS2World/DEV-SAMPLES-Ada-PowerAdaSOM;anchor=swh:1:rev:f4bfd87cb82679644c713515a591e96de375c530;path=/bindings/somdcprx.ada
Open in SWH · Raw bytes (SWH) · GitHub raw
Show source

-------------------------------------------------------------------------------
-- Emitted on: Tue Jun 24 05:06:44 1997
-- Emitted by: OC Systems SOM IDL to Ada95 Interface Stub Emitter.
-------------------------------------------------------------------------------

WITH SOM;
WITH SOMDObject;
WITH SOMClass;
WITH SOMObject;
WITH Corba;  USE Corba;
WITH Corba.Object;
WITH SOM;
WITH System;

PACKAGE SOMDClientProxy IS


   TYPE Ref IS NEW SOMDObject.Ref WITH NULL RECORD;

   FUNCTION To_Ref (
      som_object : IN SOM.SOMObjectPtr)
      RETURN          Ref;

   Major_Version : CONSTANT SOM.integer4 := 2;
   Minor_Version : CONSTANT SOM.integer4 := 1;

   FUNCTION New_Class (
      Major_Version : IN SOM.integer4;
      Minor_Version : IN SOM.integer4)
      RETURN             SOM.SOMClassPtr;

   FUNCTION New_Instance
      RETURN Ref;

   PROCEDURE Free_Instance(
      Instance : IN OUT Ref);
      


   PROCEDURE somdTargetFree (
      Self : IN Ref;
      Ev : IN SOM.Environment);
     
     -- Forwards _somFree method call to the remote target object.

   FUNCTION somdTargetGetClass (
      Self : IN Ref;
      Ev : IN SOM.Environment)
      RETURN SOM.SOMObjectPtr;
     
     -- Forwards _somGetClass method call to the remote target object.

   FUNCTION somdTargetGetClassName (
      Self : IN Ref;
      Ev : IN SOM.Environment)
      RETURN Corba.String;
     
     -- Forwards _somGetClassName method call to the remote target object.

   PROCEDURE somdProxyFree (
      Self : IN Ref;
      Ev : IN SOM.Environment);
     
     -- Performs _somFree method call on the local proxy object.

   FUNCTION somdProxyGetClass (
      Self : IN Ref;
      Ev : IN SOM.Environment)
      RETURN SOM.SOMObjectPtr;
     
     -- Performs _somGetClass method call on the local proxy object.

   FUNCTION somdProxyGetClassName (
      Self : IN Ref;
      Ev : IN SOM.Environment)
      RETURN Corba.String;
     
     -- Performs _somGetClassName method call on the local proxy object.

   PROCEDURE somdReleaseResources (
      Self : IN Ref;
      Ev : IN SOM.Environment);
     
     -- Instructs the proxy to free any memory it owns for use by the client.

   PROCEDURE create_request (
      Self : IN Ref;
      Ev : IN SOM.Environment;
      ctx : IN SOM.SOMObjectPtr;
      operation : IN SOM.Identifier;
      arg_list : IN SOM.SOMObjectPtr;
      result : IN OUT SOM.NamedValue;
      request : OUT SOM.SOMObjectPtr;
      req_flags : IN SOM.Flags;
      IDL_Result : OUT SOM.ORBStatus);

   PROCEDURE create_request_args (
      Self : IN Ref;
      Ev : IN SOM.Environment;
      operation : IN SOM.Identifier;
      arg_list : OUT SOM.SOMObjectPtr;
      result : OUT SOM.NamedValue;
      IDL_Result : OUT SOM.ORBStatus);

   FUNCTION is_proxy (
      Self : IN Ref;
      Ev : IN SOM.Environment)
      RETURN Corba.Boolean;

   PROCEDURE release (
      Self : IN Ref;
      Ev : IN SOM.Environment);

   PROCEDURE somDispatch (
      Self : IN Ref;
      retValue : OUT SOM.somToken;
      methodId : IN SOM.somId;
      ap : IN SOM.va_list;
      Result : OUT Corba.Boolean);

   PROCEDURE somDispatchV (
      Self : IN Ref;
      methodId : IN SOM.somId;
      descriptor : IN SOM.somId;
      ap : IN SOM.va_list);

   FUNCTION somDispatchL (
      Self : IN Ref;
      methodId : IN SOM.somId;
      descriptor : IN SOM.somId;
      ap : IN SOM.va_list)
      RETURN Corba.Long;

   FUNCTION somDispatchD (
      Self : IN Ref;
      methodId : IN SOM.somId;
      descriptor : IN SOM.somId;
      ap : IN SOM.va_list)
      RETURN Corba.Double;

   FUNCTION somDispatchA (
      Self : IN Ref;
      methodId : IN SOM.somId;
      descriptor : IN SOM.somId;
      ap : IN SOM.va_list)
      RETURN SOM.VoidPtr;

   PROCEDURE somFree (
      Self : IN Ref);

   FUNCTION somGetClass (
      Self : IN Ref)
      RETURN SOM.SOMObjectPtr;

   FUNCTION somGetClassName (
      Self : IN Ref)
      RETURN Corba.String;

   PROCEDURE somDestruct (
      Self : IN Ref;
      doFree : IN Corba.Octet;
      ctrl : IN OUT SOM.somDestructCtrl);

   PROCEDURE somDefaultInit (
      Self : IN Ref;
      ctrl : IN OUT SOM.somInitCtrl);

END SOMDClientProxy; 

WITH SOMObject;
WITH SOMClass;

PACKAGE BODY SOMDClientProxy IS

   

   FUNCTION "="(l,r : IN SOM.address) RETURN boolean RENAMES SOM."=";

 
   -- Class data structure.
   TYPE classData IS
   RECORD
      classObject : SOM.SOMAnyPtr;
      somdTargetFree : SOM.somMToken;
      somdTargetGetClass : SOM.somMToken;
      somdTargetGetClassName : SOM.somMToken;
      somdProxyFree : SOM.somMToken;
      somdProxyGetClass : SOM.somMToken;
      somdProxyGetClassName : SOM.somMToken;
      set_binding : SOM.somMToken;
      get_binding : SOM.somMToken;
      reset_binding : SOM.somMToken;
      get_ctx_seq : SOM.somMToken;
      set_ctx_seq : SOM.somMToken;
      somdReleaseResources : SOM.somMToken;
      get_memoryMgr : SOM.somMToken;
   END RECORD;
   PRAGMA Preserve_Layout( classData );

   SOMDClientProxyClassData : classData;
   FOR SOMDClientProxyClassData USE AT standard.system.label("SOMDClientProxyClassData");

   
   -- Auxilary class data structure.
   TYPE CClassData IS
   RECORD
      parentMtab        : SOM.somMethodTabs;
      instanceDataToken : SOM.somDToken;
   END RECORD;
   PRAGMA Preserve_Layout( CClassData );

   SOMDClientProxyCClassData : CClassData;
   FOR SOMDClientProxyCClassData USE AT standard.system.label("SOMDClientProxyCClassData");
   -- Documentation indicates that this is not needed.


   FUNCTION To_Ref (
      som_object : IN SOM.SOMObjectPtr)
      RETURN          Ref
   IS
   BEGIN
      IF 
         SOMObject.somIsA(
            SOMObject.Ref'(som_object => som_object), 
            SOMDClientProxyClassData.classObject) 
      THEN
         RETURN Ref'(som_object => som_object);
      ELSE
         RAISE program_error;
      END IF;
   END To_Ref;



   FUNCTION New_Class (
      Major_Version : IN SOM.integer4;
      Minor_Version : IN SOM.integer4)
      RETURN             SOM.SOMClassPtr
   IS
      FUNCTION SOMDClientProxyNewClass (
         Major_Version : IN SOM.integer4;
         Minor_Version : IN SOM.integer4)
         RETURN             SOM.SOMClassPtr;
      PRAGMA interface (C, SOMDClientProxyNewClass);
      PRAGMA interface_information (SOMDClientProxyNewClass, ".SOMDClientProxyNewClass");
   BEGIN
      RETURN SOMDClientProxyNewClass(major_version, minor_version);
   END New_Class;

   FUNCTION New_Instance
      RETURN Ref
   IS
      Result : Ref;
      Dummy  : SOM.SOMClassPtr;
   BEGIN
      IF SOMDClientProxyClassData.classObject = SOM.null_address THEN
         Dummy := New_Class(Major_Version, Minor_Version);
      END IF;
      Result.som_object := 
         SOMClass.somNew(
            SOMClass.To_Ref(SOMDClientProxyClassData.classObject));
      RETURN Result;
   END New_Instance;


   PROCEDURE Free_Instance(
      Instance : IN OUT Ref)
   IS
   BEGIN
      SOMObject.somFree(SOMObject.To_Ref(Instance.som_object));
   END Free_Instance;


   PROCEDURE somdTargetFree (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
   IS
     
     -- Forwards _somFree method call to the remote target object.
      PROCEDURE SOMDClientProxy_somdTargetFree(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken);
      PRAGMA interface (assembly, SOMDClientProxy_somdTargetFree);
      PRAGMA interface_information (SOMDClientProxy_somdTargetFree, ".xsomcall2");

   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMDClientProxy_somdTargetFree (
         Self.som_object,
         Ev,
         SOMDClientProxyClassData.somdTargetFree);
   END somdTargetFree;

   FUNCTION somdTargetGetClass (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
      RETURN SOM.SOMObjectPtr
   IS
     
     -- Forwards _somGetClass method call to the remote target object.
      FUNCTION SOMDClientProxy_somdTargetGetClass(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken)
         RETURN SOM.SOMObjectPtr; 
      PRAGMA interface (assembly, SOMDClientProxy_somdTargetGetClass);
      PRAGMA interface_information (SOMDClientProxy_somdTargetGetClass, ".xsomcall2");
      Result : ALIASED SOM.SOMObjectPtr;
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      Result :=
         SOMDClientProxy_somdTargetGetClass (
            Self.som_object,
            Ev,
            SOMDClientProxyClassData.somdTargetGetClass);
      RETURN Result;
   END somdTargetGetClass; 

   FUNCTION somdTargetGetClassName (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
      RETURN Corba.String
   IS
     
     -- Forwards _somGetClassName method call to the remote target object.
      FUNCTION SOMDClientProxy_somdTargetGetClassName(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken)
         RETURN Corba.String; 
      PRAGMA interface (assembly, SOMDClientProxy_somdTargetGetClassName);
      PRAGMA interface_information (SOMDClientProxy_somdTargetGetClassName, ".xsomcall2");
      Result : ALIASED Corba.String;
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      Result :=
         SOMDClientProxy_somdTargetGetClassName (
            Self.som_object,
            Ev,
            SOMDClientProxyClassData.somdTargetGetClassName);
      RETURN Result;
   END somdTargetGetClassName; 

   PROCEDURE somdProxyFree (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
   IS
     
     -- Performs _somFree method call on the local proxy object.
      PROCEDURE SOMDClientProxy_somdProxyFree(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken);
      PRAGMA interface (assembly, SOMDClientProxy_somdProxyFree);
      PRAGMA interface_information (SOMDClientProxy_somdProxyFree, ".xsomcall2");

   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMDClientProxy_somdProxyFree (
         Self.som_object,
         Ev,
         SOMDClientProxyClassData.somdProxyFree);
   END somdProxyFree;

   FUNCTION somdProxyGetClass (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
      RETURN SOM.SOMObjectPtr
   IS
     
     -- Performs _somGetClass method call on the local proxy object.
      FUNCTION SOMDClientProxy_somdProxyGetClass(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken)
         RETURN SOM.SOMObjectPtr; 
      PRAGMA interface (assembly, SOMDClientProxy_somdProxyGetClass);
      PRAGMA interface_information (SOMDClientProxy_somdProxyGetClass, ".xsomcall2");
      Result : ALIASED SOM.SOMObjectPtr;
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      Result :=
         SOMDClientProxy_somdProxyGetClass (
            Self.som_object,
            Ev,
            SOMDClientProxyClassData.somdProxyGetClass);
      RETURN Result;
   END somdProxyGetClass; 

   FUNCTION somdProxyGetClassName (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
      RETURN Corba.String
   IS
     
     -- Performs _somGetClassName method call on the local proxy object.
      FUNCTION SOMDClientProxy_somdProxyGetClassName(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken)
         RETURN Corba.String; 
      PRAGMA interface (assembly, SOMDClientProxy_somdProxyGetClassName);
      PRAGMA interface_information (SOMDClientProxy_somdProxyGetClassName, ".xsomcall2");
      Result : ALIASED Corba.String;
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      Result :=
         SOMDClientProxy_somdProxyGetClassName (
            Self.som_object,
            Ev,
            SOMDClientProxyClassData.somdProxyGetClassName);
      RETURN Result;
   END somdProxyGetClassName; 

   PROCEDURE somdReleaseResources (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
   IS
     
     -- Instructs the proxy to free any memory it owns for use by the client.
      PROCEDURE SOMDClientProxy_somdReleaseResources(
         Self : IN SOM.SOMObjectPtr; 
         Ev : IN SOM.Environment;
         subprogram_value : IN SOM.somMToken);
      PRAGMA interface (assembly, SOMDClientProxy_somdReleaseResources);
      PRAGMA interface_information (SOMDClientProxy_somdReleaseResources, ".xsomcall2");

   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMDClientProxy_somdReleaseResources (
         Self.som_object,
         Ev,
         SOMDClientProxyClassData.somdReleaseResources);
   END somdReleaseResources;

   PROCEDURE create_request (
      Self : IN Ref; 
      Ev : IN SOM.Environment; 
      ctx : IN SOM.SOMObjectPtr; 
      operation : IN SOM.Identifier; 
      arg_list : IN SOM.SOMObjectPtr; 
      result : IN OUT SOM.NamedValue; 
      request : OUT SOM.SOMObjectPtr; 
      req_flags : IN SOM.Flags; 
      IDL_Result : OUT SOM.ORBStatus)
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMDObject.create_request (
         SOMDObject.Ref'(som_object=>Self.som_object),
         Ev,
         ctx,
         operation,
         arg_list,
         result,
         request,
         req_flags,
         IDL_Result);
   END create_request;

   PROCEDURE create_request_args (
      Self : IN Ref; 
      Ev : IN SOM.Environment; 
      operation : IN SOM.Identifier; 
      arg_list : OUT SOM.SOMObjectPtr; 
      result : OUT SOM.NamedValue; 
      IDL_Result : OUT SOM.ORBStatus)
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMDObject.create_request_args (
         SOMDObject.Ref'(som_object=>Self.som_object),
         Ev,
         operation,
         arg_list,
         result,
         IDL_Result);
   END create_request_args;

   FUNCTION is_proxy (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
      RETURN Corba.Boolean
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      RETURN 
         SOMDObject.is_proxy (
            SOMDObject.Ref'(som_object=>Self.som_object),
            Ev);
   END is_proxy;

   PROCEDURE release (
      Self : IN Ref; 
      Ev : IN SOM.Environment)
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMDObject.release (
         SOMDObject.Ref'(som_object=>Self.som_object),
         Ev);
   END release;

   PROCEDURE somDispatch (
      Self : IN Ref; 
      retValue : OUT SOM.somToken; 
      methodId : IN SOM.somId; 
      ap : IN SOM.va_list; 
      Result : OUT Corba.Boolean)
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMObject.somDispatch (
         SOMObject.Ref'(som_object=>Self.som_object),
         retValue,
         methodId,
         ap,
         Result);
   END somDispatch;

   PROCEDURE somDispatchV (
      Self : IN Ref; 
      methodId : IN SOM.somId; 
      descriptor : IN SOM.somId; 
      ap : IN SOM.va_list)
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      SOMObject.somDispatchV (
         SOMObject.Ref'(som_object=>Self.som_object),
         methodId,
         descriptor,
         ap);
   END somDispatchV;

   FUNCTION somDispatchL (
      Self : IN Ref; 
      methodId : IN SOM.somId; 
      descriptor : IN SOM.somId; 
      ap : IN SOM.va_list)
      RETURN Corba.Long
   IS
   BEGIN
      IF NOT SOM.somIsObj(Self.som_object) THEN RAISE program_error; END IF;
      RETURN 
         SOMObject.somDispatchL (
            SOMObject.Ref'(som_object=>Self.som_object),
            methodId,
            descriptor,
            ap);

…(truncated)…

Contribute — propose a file extension

Tell us where to find evidence about Ada (mapped to pl/ada). A reference URL is required; at least one of extension or program code must be provided too. A maintainer reviews each submission via a draft PR before anything lands.
Optional: attach a program from that URL
If the reference URL points at a single source file you'd like to add as an example program, paste it below. The workflow will write it under languages/Ada/programs/<sha>/. Keep under ~200 lines.
(or open the pre-filled issue directly)
← ad-hoc Ada (programming language) →