Skip to content

Repository files navigation

Ada Quest

Ada Quest is an interactive on-ramp for learning Ada and SPARK through small systems bugs, compiler-style feedback, and proof-oriented missions.

The project exists to make Ada feel alive in the first ten minutes: useful, readable, safe by construction, and worth exploring beyond nostalgia.

What is here today

  • A static browser app with no install step
  • Four Ada/SPARK missions:
    • packet bounds with constrained subtypes and preconditions
    • unit-safe APIs with distinct numeric types
    • shared state with protected types
    • SPARK contracts for a bounded stack
  • A simple in-browser editor
  • Simulated compiler/proof checks for each mission
  • Starter-kit cards for future Alire and adaquest CLI flows
  • A launch/campaign board for contributors who want to grow the project

Important status

The current MVP simulates compiler and proof feedback in the browser. That is intentional for the first public seed.

The next major milestone is a real Ada runner that can compile mission code with GNAT and, where appropriate, run GNATprove for SPARK checks.

For more context, see docs/gnat-gnatprove.md.

Try it locally

Open index.html directly, or serve the folder locally:

python3 -m http.server 8765 --bind 127.0.0.1

Then visit:

http://127.0.0.1:8765/index.html

Validate mission fixtures

node scripts/validate-missions.js

or:

npm test

The validation script loads the app mission data and checks that every included solution passes the current simulated mission checks.

Contributing

Good first contributions include:

  • Add a beginner Ada mission
  • Improve mission wording for Ada newcomers
  • Add syntax highlighting
  • Convert mission data into JSON
  • Add shareable mission URLs
  • Create real Alire starter templates
  • Prototype a GNAT compile runner
  • Prototype a GNATprove runner

See CONTRIBUTING.md, ROADMAP.md, docs/mission-format.md, and docs/gnat-gnatprove.md.

Positioning

Ada Quest is not trying to win a language war.

The message is:

Ada is for software that has to keep its promises.

If Rust made people care about memory safety, Ada and SPARK can help people care about contracts, ranges, concurrency, proof, and whole-system intent.

License

MIT. See LICENSE.

About

Interactive Ada and SPARK missions for learning systems safety through small bugs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages