Online compiler

Ada online compiler

Write Ada (GNAT 15) code below and run it, with input, in a sandbox on our servers. No sign-in, no ads. The same compiler is an API and an embeddable editor, for running Ada in your own app, course or docs.

By the OnlineCompiler.io team. Updated .

What runs your code

VersionAda GNAT 15
Compiled withgnatchop-15 -r -w -gnat2022 code.adb && gnatmake-15 -q -O2 -gnat2022 <main>.adb -o code.out
Run with./code.out
Limits30 seconds, 512 MB of memory, 2 CPUs, 64 KB of output per stream, no network
Typical run1.22 s, and 1.44 s for the slowest 1 in 20 (how we measured)

Good to know

  • A file can hold several units, such as packages and the main procedure, in any order. The main procedure is the one outside any package (the last, if there are several), and errors still give the line in your file, such as code.adb:7.
  • Compiles with gnatmake -O2 and Ada 2022 syntax on, such as [1, 2, 3] aggregates and @ in assignments.
  • Get_Line and Ada.Integer_Text_IO.Get read the Input tab. An unhandled exception, such as Constraint_Error, prints the file and line and exits with code 1.

Run Ada from your own code

Send the code and its input to the sync endpoint with an API key, and the output comes back in the response. The API docs cover the async endpoint with callbacks and every response field.

Terminal
curl -X POST https://api.onlinecompiler.io/api/run-code-sync/ \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "compiler": "gnat-15",
    "code": "with Ada.Text_IO; use Ada.Text_IO;\n\nprocedure Hello is\nbegin\n   Put_Line (\"Hello, \" & Get_Line & \"!\");\nend Hello;",
    "input": "Ada"
  }'

The response has output ("Hello, Ada!\n" here), error, exit_code, time and memory.

Put a runnable Ada example on your site

The editor above is the embeddable widget. Add the script and a div with your widget key, and your readers can edit and run the code without an account:

example.html
<script src="https://onlinecompiler.io/widget.js"></script>

<div class="runcode" data-key="YOUR_WIDGET_KEY" data-lang="gnat-15">
  <script type="text/plain">
    with Ada.Text_IO; use Ada.Text_IO;

    procedure Hello is
    begin
       Put_Line ("Hello, " & Get_Line & "!");
    end Hello;
  </script>
</div>

On a platform that takes an iframe but not a script, such as many course sites, use the iframe embed. For Docusaurus, MkDocs, Sphinx and Mintlify, see runnable code examples in docs.

Other languages

Python, C, C++, Java, C#, F#, Go, Rust, PHP, Ruby, Haskell, TypeScript, JavaScript, SQL, Bash, Fortran, Visual Basic, Kotlin, R, Swift, COBOL, Perl, Julia, Pascal, Octave, Assembly, Lua, OCaml, Common Lisp, Erlang, Elixir, Prolog, D, FreeBASIC, Dart, Clojure, Groovy, Scala, Zig, Nim, Crystal, PowerShell, Racket, Objective-C.

Frequently asked questions

Is this Ada online compiler free?

Yes. Running Ada on this page needs no account and shows no ads. To run Ada from your own app or site, the API and the widget are free up to 100,000 runs a month, commercial use included.

Can my Ada program read input?

Yes. Type it in the Input tab before you run, and the program reads it from standard input. The whole input is sent when you press Run, so a program can't ask for more while it runs.

Can I use Ada libraries?

The Ada standard library and GNAT's own packages. There is no Alire, and programs have no network access.

How long can a program run?

Up to 30 seconds, with 512 MB of memory and 2 CPUs. A program still running at 30 seconds is stopped with exit code 124, and output over 64 KB per stream is cut.

Where does my code run?

On our servers, in a fresh gVisor sandbox with no network access that is deleted when the run ends. Each run is kept in execution history with its output; the security page says what is stored.