4,275 karma · joined October 22, 2013
Take a look at the Adacore site, especially the free books (PDF):
Ada for the Embedded C Developer
Embedded Spark & Ada Use Cases
I started with 6502 assembly and PET Basic in 1977, so for me, Zig is simpler, and jives more with me than Rust. OTOH, I chose Ada/SPARK for our product for the high-integrity, mission-critical aspect of our automation software. I programmed in Pascal back in 1988, and it has the same syntax, which I always found verbose and boring, but it is clear and structured and the concepts to achieve this level of high assurance are not too difficult. For ultiimate fun, I program in J/APL and now mainly BQN, so I am not a fan of verbosity!
I would have been more attracted to Rust if it had kept ML-like syntax from OCaml and not the Algol-like curly braces of C/C++.
So was the data moved in August to Amazon (AWS)? I am sure the $3.8bn USD the US gives annually will pay for it anyway. Because it is given as a loan, no accountability is required if it were a grant to Israel, and then the US forgives the loan, so there's not payback or interest for borrowing.
I loved the cassette drive and all-in-one chassis. Ah, typing in programs from magazines and creating programs from scratch with PET graphics on the keys! I miss those days. So much wonder and fun.
CPGs (Central Pattern Generators) were often implemented using simple RC (resistor-capacitor) circuits within his "nervous net" (NvNet) architectures. The RC circuits generated rhythmic patterns that drove the robots' motor behaviors, allowing gaits to emerge naturally from the interaction of these analog components with the environment and the robot's mechanical structure. This approach enabled adaptive, robust locomotion without requiring complex digital control systems.
His 6-legged robots could lose a leg, and the system would take feedback from the stuck or missing leg, and learn to walk with 5 or 4 legs. Amazing stuff.
AdaCore’s GNAT Pro suite includes qualified tools (e.g., GNAT Pro, CodePeer, GNATcheck) that support traceability, code coverage, and certification evidence for standards like MISRA, DO-178C, and EN 50128. These are battle-tested in aerospace, defense, and medical applications.
Ada is defined by an ISO standard, specifically ISO/IEC 8652. The latest revision, as of 2025, is Ada 2022 (ISO/IEC 8652:2023), which includes updates to the language features. Ada is also recognized as an ANSI standard through its adoption by the American National Standards Institute, aligning with the ISO specification. The standard defines the language’s syntax, semantics, and features, ensuring consistency across implementations including compilers.
Rust’s safety guarantees prevent many runtime errors, but its approach relies more on programmer discipline vs. Ada/SPARK2014's "correct by construction" methodology. Ada is designed for real-time systems, with built-in features like tasking, protected objects, and precise control over timing (e.g., Ravenscar profile), optimized for cyber-physical systems.
Excuse my verbosity, but I pulled a few things from our tech pitch deck, and a little of the above is in our business plan as well that I copy/pasted.
Two great books if you're interested:
Analysable Real-Time Systems: Programmed in Ada (2016)
Building High Integrity Applications with SPARK (2015)
A qualified compiler doesn't speak to the tooling built around it and how those need to be tied to the spec.
It should be between 0.002-0.004 in. thick, so each band per bundle is about 0.004 to 0.008 thick. Might take off a little bit of your overage.
The excitement kind of ebbed early on with seeing the video and realizing it had a plate/weight on one face.
"A few years later, the duo answered their own question, showing that this uniform monostable tetrahedron wasn’t possible. But what if you were allowed to distribute its weight unevenly?"
But the article progressed and mentioned John Conway, I was back!
If you have any questions check out the Google Groups (no Groups comments!) for Shen. I am eager to see the 5th edition, and I will probably buy the print version.
Shen uses a dependently typed Sequent-Calculus based Type System (SCTS). It uses type rules vs. type classes, and type checking is optional, you can turn it on or off. Haskell's type inference makes things a bit simpler, and is a battle-tested static type system with excellent type inference which lends itself better for functional programming and large-scale software engineering (for the moment). Shen's TC is more expressive, but requires more effort.
Aditya Siram has some old but goody YT videos on Shen.