[Grace-core] Statically-known and family-polymorphism

James Noble kjx at ecs.vuw.ac.nz
Wed Nov 19 13:13:49 PST 2014


> There should be a name for this hierarchy, because it comes up for all manner of programming-language problems.

well yeah, I was hoping someone would come up with a reference to something...

> If you are writing a checker, these are the different times where a property is possible to verify. If you are writing an optimizer, these are the different places where the optimizer will know enough to be both effective and  safe.

right.

> You can usually do things too late. A context-independent static will still be static under any of the other definitions. At least in the old days, Alan Kay encouraged his collaborators to err towards doing everything late, because he wanted to explore fundamentally new constructs.

indeed!  and I quite like that approach. 
But then it would be good to be able to make things more static as and when necessary - 
ideally without duplicating too much of the language design.

> For completeness, "link time", or maybe "whole-program static", is sometimes interesting. It goes between "context-dependent static" and "context-dependent dynamic". An example would be whole-program dead code removal.

yes, link time is interesting.  In fact, I probably shouldn't have said "compile time" at all; 
once you have modules you can really only do anything once you've linked together
(and may have to re-do it when e.g you have different versions of modules at compile then link time). 

> Another example, from my world of the last few years, is stratifying a Datalog program.

right, so I wonder if the logical or functional people have a better handle on this

cheers

James


More information about the Grace-core mailing list