Ticket #1536 (closed proposed-project: wontfix)

Opened 4 years ago

Last modified 12 months ago

Transformation and Optimisation Tool

Reported by: PhilippaCowderoy Owned by:
Priority: OK Keywords:
Cc: flippa@…, gwern0@… Topic: Tools
Difficulty: unknown Mentor: not-accepted

Description (last modified by bramsundar) (diff)

Equational reasoning in Haskell allows us to conceive and perform extremely complex transformations on code with a reasonable degree of reliability, but doing this by hand is tedious, somewhat error-prone and creates significant maintenance issues. Hand-fused code is common and without the unfused code to hand may be highly confusing! Unfused code is easier to modify, but then you have versioning problems. One way or another, this is not a desirable situation.

So let's build some tool support!

  • Support operations on either full Haskell or a desugared subset - YHC Core may make a good choice
  • Support basic transformations such as alpha-conversion, beta-reduction, case/ctor
  • Allow the user to build transformation strategies (perhaps via a Haskell EDSL?) from basic transformations and some form of AST querying
  • An addressing scheme for code that's resistant to both transformations and changes to the source code so that strategies can be reused as a program is developed
  • A user interface that allows strategies to be build up piece-by-piece while observing their results, somewhat akin to working with tactics in a proof assistant

Building the start of a library of strategies would also be useful - a "simplify" strategy akin to, say, GHC's simplifier would be an obvious go-to in many situations, for example.

Interested Mentors

  • Philippa Cowderoy <flippa@…>

Interested Students

  • Bharath Ramsundar <bharath.ramsundar@…>

Change History

Changed 4 years ago by PhilippaCowderoy

  • cc flippa@… added

Changed 4 years ago by bramsundar

  • description modified (diff)

Changed 4 years ago by bramsundar

  • description modified (diff)

Changed 4 years ago by PhilippaCowderoy

  • priority set to OK

Changed 3 years ago by guest

  • cc gwern0@… added

What sort of relation would this have with HERA? see  http://www.haskell.org/haskellwiki/Haskell_Equational_Reasoning_Assistant

Changed 12 months ago by tibbe

  • status changed from new to closed
  • resolution set to wontfix

A neat idea but I think (by looking at previous GSoC results) that this is way to hard for a student.

Note: See TracTickets for help on using tickets.