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);
}
}