"Hackett: a metaprogrammable Haskell" by Alexis King

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ก.ค. 2024
  • What would you get if you combined a cutting edge, state of the art macro system with a tried and true, industrial-strength type system? The answer is Hackett, a programming language that embeds the power of the Haskell type system within the Racket macro system. Traditional approaches to macro-enabled Haskells have been relatively straightforward, bolting a macroexpander onto the frontend of an otherwise mundane compiler, but this is a shallow, unsatisfying embedding--by its very nature, the typechecker does not run until macroexpansion is complete, so the wealth of static information embedded in the type system is inaccessible to macro authors. In contrast, Hackett applies and extends recent research first published at POPL 2017 that enables interleaving macroexpansion and typechecking, opening up entirely new ways for programmers to tinker with their language and construct embedded DSLs.
    While Hackett is still in development, it is already starting to bear fruit as a vehicle to explore this relatively unexplored design space. In this talk, we will take a look at some real Hackett code to get a feel for what the language is like, survey some of the underlying Racket technologies that make a sampling of Hackett's features possible, and also discuss some of the ways Hackett is likely to grow and develop in the near future. Finally, we'll compare and contrast Hackett's approach to metaprogramming with other approaches in the design space to see what makes Hackett unique.
    Speaker: Alexis King
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 8

  • @alurma
    @alurma 3 หลายเดือนก่อน +1

    A great talk, thanks

  • @ice2642
    @ice2642 3 ปีที่แล้ว +1

    Congratulations, very cool this language. I will try.

  • @ThePierf
    @ThePierf 5 ปีที่แล้ว +1

    Interesting, will keep and eye on this. Another language named Lux attempted something similar last year, but I always felt the syntax and the function application was to clunky, although monadic lisp is spectacular

  • @peterbergman5710
    @peterbergman5710 11 หลายเดือนก่อน

    Very cool

  • @julianleviston3156
    @julianleviston3156 5 ปีที่แล้ว +2

    You didn't like Template Haskell?

    • @simonbeaumont8612
      @simonbeaumont8612 5 ปีที่แล้ว +16

      Julian Leviston Did you not watch the talk up to and including that very obvious question?

    • @timoffex
      @timoffex 3 ปีที่แล้ว +2

      For those who are searching for it, Alexis' response is at 26:37

    • @alihammadshah
      @alihammadshah 2 ปีที่แล้ว +1

      @@simonbeaumont8612 Life is short.