CakeML / CakeML/pure

Compilation of TypeClassLang

Open
#64 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Standard ML
Stars
44
Forks
5
PR merge metrics
No merged PRs in 30d

Description

Compilation of TypeClassLang uses dictionary construction (actually, tuple construction) on fully-annotated TypeClassLang programs to produce PureLang programs. This must be proved sound with respect to TypeClassLang semantics, which is defined via naive translation to PureLang. However, compilation should be much more intelligent. For example:
- declaring instances once and for all, rather than repeatedly constructing dictionaries (i.e. common subexpression elimination)
- inlining methods where possible to avoid constructing a full dictionary/tuple
- selectively monomorphising functions, bypassing dictionaries altogether
- partially applying dictionaries for derived instances
- *and so on*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the TypeClassLang semantics and its naive translation to PureLang, then inspect the current dictionary/tuple construction used by compilation. The issue requires a soundness proof and an agreed scope for optimization, such as common subexpression elimination, inlining, monomorphisation, or partial dictionary application.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.