Effect systems refine types with information about the behaviour of programs. They have been used for many purposes, such as optimizing programs, determining resource usage, and finding bugs. So far, however, work on effect systems has largely concentrated on call-by-value languages. We consider the problem of designing an effect system for a lazy language. This is more challenging because it depends on the ability to locate the first use of each variable. Coeffect systems, which track contextual requirements of programs, provide a method of doing this. We describe how to track variable usage in a coeffect system that can be instantiated for different reduction strategies, including call-by-need. We then add effects to the result, allowing work that has been done on effect systems for call-by-value languages to be applied to lazy languages.
Contents
- Regular Articles
-
Open AccessCall-by-need effects via coeffectsJuly 26, 2018
-
August 1, 2018
-
August 22, 2018
-
Open AccessOn synchrony in dynamic distributed systemsAugust 25, 2018
-
October 5, 2018
-
December 31, 2018
-
Open AccessA qualitative survey on frequent subgraph miningDecember 31, 2018
-
December 31, 2018
-
Open AccessSoftware complex for modeling and optimization of program implementation on parallel calculation systemsDecember 31, 2018
- Special Issue on Informatics 2017
-
Open AccessSpecial Input Devices Integration to LIRKIS CAVEMay 31, 2018
-
June 28, 2018
-
July 11, 2018
-
July 25, 2018
-
Open AccessA methodology for the professional training of the management and evaluation of HPC systemsJuly 25, 2018
-
July 25, 2018
-
August 1, 2018
-
Open AccessAnalysis of possibilities for measurement effect of visibility in experimental FSO systemAugust 1, 2018
-
November 20, 2018