TLDR; do you know of any general purpose languages that can also compile a function to some representation of AND/OR gates (or NAND gates, or whatever)?

Yes, a A LOT of additional info is needed, like defining how input/output works at the circuit level, and I am interested in how those would be specified. I’m not interested in printing an actual circuit, just the boolean-logic level. And I’m mostly asking because I feel like most compilers can’t generate a clean/mathematical representation from their AST. There’s hard-coded optimizations, and then there’s hard-coded mappings from the IR to assembly, but at no point (AFAIK) is the code turned into a algebraic/logical system where something like De Morgan’s Law can be applied. And that seems really sad to me.

So you could say my real question is: what compilers have a strong logical/algebraic internal representation of their own AST?

Maybe something like Haskell or Prolog do this. The Wolfram Language almost certainly does but it’s closed source.

  • chaotic_disorganizer@feddit.de
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

    You will need a hardware description language (HDL). Verilog and VHDL are two very established ones but they are tricky. A newcomer is Bluespec, which is now open source so if you wanna go down that rabbit hole, I’d recommend this one.

    • jeffhykin@lemm.eeOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      11 months ago

      Sorry, I meant a general language rather than one that is described as a “hardware description language”. I went ahead and edited the post to be more clear about that.

      Thanks for the info though as others might still be interested in it!