this post was submitted on 06 Apr 2025
7 points (100.0% liked)

Ada

115 readers
1 users here now

A community about the programming language, Ada.

About Ada Language

Ada is a modern, high-level programming language designed for developing reliable, efficient, and maintainable software systems. It was developed by the U.S. Department of Defense and is widely used in safety-critical and mission-critical applications. This community is dedicated to all things related to Ada, including discussions, tutorials, news, and projects.

Rules:

  1. Be respectful: Treat fellow community members with kindness and respect. Personal attacks, harassment, or any form of discrimination will not be tolerated.
  2. Stay on topic: Keep discussions focused on Ada language-related topics. Off-topic posts may be removed.
  3. No spam or self-promotion: Avoid excessive self-promotion or spamming of external links. Share relevant content and engage in meaningful discussions.
  4. Provide helpful and constructive feedback: When offering feedback on code or projects, be constructive and supportive. Help others learn and grow.
  5. Follow the instance wide rules.

founded 2 years ago
MODERATORS
ada
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 2 points 1 month ago (1 children)

This is kinda cool and while the original Ada compilers were slow, does anyone know if Ada was inherently harder to compile than PL/I which was pretty capable at the time?

Ada had a severe conceptual limitation, the program library that seemed to prevent separate compilation of Ada files. Ada buffs know the history of GNAT working around the limitation by using the actual program source files as the library.

I do think Ada 2012 (like C++11) brought about a huge change in Ada style and maybe culture. So Ada83 is mostly historical. Ada83 programs from that era that I've tried still compile and work just fine though. That's more than I can say about Python.

[โ€“] ada 2 points 1 month ago

Ada is good at compiling files separately. Slowdowns can occur in name resolution, for example in the statement Proc (Fun_1 (Fun_2 (Fun_3 (Fun_4 (Var))))); if you have function names overloaded, the number of combinations the compiler has to consider grows exonentially with the number of nesting levels. So it may take time to find the right combination. I think the Ada 83 compilers were slow because of their experimental status, when the authors tried to implement all the features of the language without worrying about performance. The computer capabilities of those years were minuscule.

In this frontend, they stored the parse tree in the file system: Diana