11. A system for supporting context-dependent expression compilation in a programming language environment, comprising: one or more microprocessors; a compiler, running on the one or more microprocessors, that operates to perform the steps comprising: providing a context object that operates to compile an expression in at least one of a plurality of programming contexts encapsulated by the context object; using the context object to derive a target type associated with the expression, wherein the target type associated with the expression is dependent on the at least one of a plurality of programming contexts; deriving a function descriptor for the target type; and using the context object to perform a compatibility check for the expression in the programming language environment including checking whether any type associated with the expression is consistent with the function descriptor for the target type.
11. A system for supporting context-dependent expression compilation in a programming language environment, comprising: one or more microprocessors; a compiler, running on the one or more microprocessors, that operates to perform the steps comprising: providing a context object that operates to compile an expression in at least one of a plurality of programming contexts encapsulated by the context object; using the context object to derive a target type associated with the expression, wherein the target type associated with the expression is dependent on the at least one of a plurality of programming contexts; deriving a function descriptor for the target type; and using the context object to perform a compatibility check for the expression in the programming language environment including checking whether any type associated with the expression is consistent with the function descriptor for the target type. 12. The system according to claim 11 , wherein: the expression is a lambda expression that provides a list of formal parameters and a body.