B-FJ
Block Workspace
No run yet.
Drop a loose expression block in the workspace, then press ⟲ Load.

Control — focus e

Control — recomposed (plug(e, κ))

Kontinuation κ (top first)

Drop a loose expression block in the workspace, then press ⟲ Load.
Block-Featherweight-Java

Block-Featherweight-Java

A block-based IDE for Featherweight Java

B-FJ builds Featherweight Java (Igarashi/Pierce/Wadler) programs with grammar-aware blocks, and animates their CK-machine reduction, substitution reduction derivation, and typing derivation.

Work in the workspace saves to a .bfj file; generated source exports to .fj.

B-FJ extends the Thrasos renderer as BFJ-Thrasos, using distinct connector shapes per FJ non-terminal to reduce grammatical production errors.

class Pair extends Object {
  Object fst;
  Object snd;
  Pair(Object fst, Object snd) {
    super();
    this.fst = fst;
    this.snd = snd;
  }
  Pair setfst(Object newfst) {
    return new Pair(newfst, this.snd);
  }
}

Save workspace

Choose a file name

Export FJ code

Choose a file name

Load example

This example

Your workspace already has blocks. Replace them with this example, or merge the example alongside them?