Programming Languages

Contract inference for relationally parametric polymorphic contracts

Guha et al have de­vel­oped a way to spec­ify re­la­tion­ally para­met­ric poly­mor­phism in con­tracts and check con­for­mance at run­time. These ideas were re­al­ized in the Racket pro­gram­ming lan­guage. Cur­rently, the util­ity of para­met­ric con­tracts is lim­ited due to the fact that para­met­ric con­tracts must be in­stan­ti­ated ex­plic­itly in many cir­cum­stances; im­plicit in­stan­ti­a­tion only works for prim­i­tive types.

The task for this the­sis is to ex­tend the con­tract in­fer­ence mech­a­nism to work in more cases; in par­tic­u­lar, in­fer­ence should also work for struc­tures.

This the­sis is well-suited for a stu­dent with a good back­ground in dy­namic lan­guages and/or func­tional pro­gram­ming. Pro­gram­ming skills in Racket are a plus.

Fur­ther In­for­ma­tion

Con­tact

Klaus Os­ter­mann