• nialv7@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    10 hours ago

    It’s not what you can use that language to do - all general purpose languages are Turing Complete, so what you can do with them is exactly equal. It is about what the language will do for you. Rust compiler will stop you from writing memory unsafe code, C compiler cannot do that.

    • Rednax@lemmy.world
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      10 hours ago

      But how does the Rust compiler do that? What does it actually check? Could I write a compiler in C that does this check on a piece of Rust code?

      C is so simplictic, that if I can write a piece of functionality in C, I must understand its inner workings fully. Not just how to use the feature, but how the feature works under the hood.

      It is often pointless to actually implement the feature in C, since the feature already has a good implementation (see the Rust compiler for the memory safety). But understanding these features, and being able to mentally think about what it takes in C to implement them, is still helpfull for gaining an understanding of the feature.

    • qjkxbmwvz@startrek.website
      link
      fedilink
      arrow-up
      3
      ·
      10 hours ago

      …are Turing Complete, so what you can do with them is exactly equal.

      But they’re only equal in the Turing complete sense, which (iirc) says nothing about performance or timing.