[POPLmark] Meta-comment

Daniel C. Wang danwang at CS.Princeton.EDU
Tue May 10 02:42:48 EDT 2005


Greg Morrisett wrote:

> {stuff deleted}
> -Greg
> p.s. Most fun reading I've had in a while...

Indeed.... I'd like to make a hopefully constructive meta-comment about 
the structure of the POPLMark and the various HOAS issues in general. I 
personally find the POPLMark's goals a bit under specified. The two 
questions outlined in the challenge are

1. What is the current state of the art in formalizing language 
metatheory and semantics? What can be recommended as best practices for 
groups (typically not proof-assistant experts) embarking on formalized 
language definitions, either small- or large-scale?)

2. What improvements are needed to make the use of tool support 
common-place? What can each community contribute?

The answer to both questions I would say heavily depends on what you 
want to do with the formalized metatheory.
Unfortunately, the whole challenge is a bit vague about the issue. In 
fact, I know enough about HOL, Twelf, and Coq that I would recomend each 
as a "best" solution for different problem domains. If we restrict 
ourselves to some common "generic" problem domain. I'd say they are all 
"equally good or bad".

For example lets consider the issue of closure conversion and 
HOAS/HOAJ.  If the application of the formalized metatheory is to be 
used in a PCC//TAL scenario the lack of an obvious way for HOAS/HOAJ and 
closure-conversion to co-exists is a moot point, and the benefits of 
HOAS are a big win or a wash depending on how much binding you have to 
deal with. However, if one were interested in doing translation 
validation HOAS/HOAJ is most likely a non-starter.

In general, I think many of the objections to HOAS have been presented 
in a "but what if.. I want to do X" fashion. I think unless there is 
some more concrete guidence about the sets of uses for the metatheory 
are given, one can always raise some hypothetical issue for any system 
and complain.

Karl brought up an interesting point about the trade off between 
possibility and feasibility. This is indeed a very delicate trade off. 
Each system makes a different set of choices for different sets of 
features.

I'd encourage the POPLMark authors to write a bunch of "use cases" for 
some of the benchmarks. i.e. assuming they have their ideal mechanized 
metatheory, what exactly would they do with it? Extract an executable 
type-checker from the specification? Emit a witness to be certified by a 
trusted verifier? Integrate the result into a larger verification 
system?  Comparing a particular solution to a benchmark against a set of 
fixed applications, I think would help focus and clarify the evaluation 
process.

I personally find it a bit irrksome that one of the biggest application 
for mechnaized-metatheory (FPCC/PCC/TALS) are not specificly mentioned 
in the challenge. In the past I've not complained because, I thought the 
POPLMark authors had some more general goals/applications in mind, but 
now I feel like the POPLMarks goals are general too the point of being 
"too fuzzy" for submitters to know what is actually on the minds of the 
POPLMark author's mind.



Unfortunately, I think the POPLMark as I currently understand it has 
devolved into a "binding micro-benchmark", and doesn't capature as wide 
a scope of problems as I think the authors intended.


More information about the Poplmark mailing list