• bitcrafter@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    The borrow checker is a lot deeper than merely making pointer use a bit safer; it provides a model for data ownership based on affine types.

    Also, to the extent that “Ada requires the programmer to give enough information to the compiler so as to ensure that it actually outputs what you want it to,” if I understand you correctly, that is basically true of every language with a static type system. At the extreme end, we have dependently typed languages which essentially let you express arbitrary mathematical propositions in your types and, if the program compiles, then you know that they will always be satisfied without having to do any checks at runtime.