Reference number : GC-2017-Q1-03435, amendment number : , agreement type : G, recipient legal name : Sekerinski, Emil (McMaster University), recipient country : CA, recipient province : nan, recipient city : Ontario, recipient postal code : nan, program name english : Discovery Grants Program - Individual, program name french : Programme de subventions à la découverte - individuelles, program purpose english : According to a study by the International Energy Agency in 2013, the power consumption of electronic devices is climbing 6% per year, twice the increase in overall global consumption. Natural Resources Canada estimates that 10% of household electricity goes into electronic devices. Independent of that, the effectiveness of code reuse has lead to code size and complexity that makes programs need more hardware and maintenance resources than ideally and makes hard guarantees about reliability difficult. Given our increased reliance on computing devices in communication, transportation, health, etc., these contradictory trends are difficult to sustain. We intend to advance programming techniques that address power consumption, reliability, and code reuse through lean programming . 
At the "low end" of computing, sensor networks have gained traction, e.g. for indoor/outdoor guidance, urban planning, structural integrity monitoring, building automation, environmental monitoring, farming, and asset management. Ultra-low-power processors of such sensors can be powered by harvesting energy , e.g. solar, thermal, motion, sound, moisture, and RF fields, and are expected to perform without maintenance for years, e.g. embedded in concrete. We intend to propose a method for reliable intermittent computation with unreliable energy sources. Recently, we developed pState, a tool for the design of embedded systems that includes correctness analysis, quantitative analysis (e.g. power consumption, transmission reliability, message delay), code generation, and worst-case execution time analysis. We plan to implement intermittent computations by generating code that uses a combination of volatile and non-volatile memory and extend pState's analysis to the reliability of intermittent computations. 
At the "high end" of computing, the increase in the number of processor cores since 2005 allowed an increase in performance while keeping power consumption constant. Although multi-core processors are common in smartphones and data centers, popular programming models do not scale well with the number of cores. Guarded atomic actions are appealing as they are "higher level" and easier to use than explicit signaling and message passing as commonly found. Our recent work has shown how guarded atomic actions in concurrent objects can be implemented highly efficiently and scale well with the number of cores. We plan to develop a production-quality programming language based on guarded atomic actions and address three research questions: (1) how to handle properly exceptions in atomic actions, (2) how to support code reuse through dynamic mixins , as a flexible and safe composition mechanism, with atomic actions, and (3) how to introduce ownership in such a language to allow better static checking, simplify correctness conditions, and improve code efficiency., program purpose french : According to a study by the International Energy Agency in 2013, the power consumption of electronic devices is climbing 6% per year, twice the increase in overall global consumption. Natural Resources Canada estimates that 10% of household electricity goes into electronic devices. Independent of that, the effectiveness of code reuse has lead to code size and complexity that makes programs need more hardware and maintenance resources than ideally and makes hard guarantees about reliability difficult. Given our increased reliance on computing devices in communication, transportation, health, etc., these contradictory trends are difficult to sustain. We intend to advance programming techniques that address power consumption, reliability, and code reuse through lean programming . 
At the "low end" of computing, sensor networks have gained traction, e.g. for indoor/outdoor guidance, urban planning, structural integrity monitoring, building automation, environmental monitoring, farming, and asset management. Ultra-low-power processors of such sensors can be powered by harvesting energy , e.g. solar, thermal, motion, sound, moisture, and RF fields, and are expected to perform without maintenance for years, e.g. embedded in concrete. We intend to propose a method for reliable intermittent computation with unreliable energy sources. Recently, we developed pState, a tool for the design of embedded systems that includes correctness analysis, quantitative analysis (e.g. power consumption, transmission reliability, message delay), code generation, and worst-case execution time analysis. We plan to implement intermittent computations by generating code that uses a combination of volatile and non-volatile memory and extend pState's analysis to the reliability of intermittent computations. 
At the "high end" of computing, the increase in the number of processor cores since 2005 allowed an increase in performance while keeping power consumption constant. Although multi-core processors are common in smartphones and data centers, popular programming models do not scale well with the number of cores. Guarded atomic actions are appealing as they are "higher level" and easier to use than explicit signaling and message passing as commonly found. Our recent work has shown how guarded atomic actions in concurrent objects can be implemented highly efficiently and scale well with the number of cores. We plan to develop a production-quality programming language based on guarded atomic actions and address three research questions: (1) how to handle properly exceptions in atomic actions, (2) how to support code reuse through dynamic mixins , as a flexible and safe composition mechanism, with atomic actions, and (3) how to introduce ownership in such a language to allow better static checking, simplify correctness conditions, and improve code efficiency., agreement title english : Theories and Tools for Sustainable Programming, agreement title french : Theories and Tools for Sustainable Programming, agreement number : RGPIN, agreement value : 130000.0, agreement start date : 2017-05-10, agreement end date : nan, description english : nan, description french : nan, expected results english : nan, expected results french : nan, additional information english : Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023), additional information french : Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier. (2017-2018 à 2022-2023), owner organization : nserc-crsng, owner organization title : Natural Sciences and Engineering Research Council of Canada | Conseil de recherches en sciences naturelles et en génie du Canada