Vanessa McHale's blog (1)
  • The Moral Imperative to Type Imperative Languages With Linear Logic

    by Vanessa McHale | Computer Science

    "Linear Types can change the world." Lafont has shown us how to create a linear abstract machine. Yet the moral imperative to use linear types in computer science is not widely appreciated.

  • APL Is Truly Different

    by Vanessa McHale | Programming

    APL is truly different from other languages; nearly every language uses lexical scoping to express composition. Both GHC Haskell and GCC/Clang use a stack for variables across procedures because it models how variables become available (FIFO). Putatively different languages are constrained by the same fundamentals.

  • Don't Bother With LLVM for Hobby Compilers

    by Vanessa McHale | Programming

    LLVM is widely used for compilers (rustc, Swift, Kitten), particularly in tutorials (kaleidoscope), but it need not be a default.

  • Imitating Cloc With Jacinda

    by Vanessa McHale | Jacinda

    Jacinda can imitate cloc by combining it with other command-line tools on the Unix command-line, viz.

  • Names in Haskell Compilers

    by Vanessa McHale | Haskell

    One common oversight in Haskell compilers is failing to intern identifiers using Ints and failing to prefer IntMaps and IntSets. The PureScript compiler, for instance, uses Maps as of writing.