<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:CTRL-A</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="New Results - Programming support for Autonomic Computing"/>
    <meta name="dc.title" content="New Results - Programming support for Autonomic Computing"/>
    <meta name="dc.creator" content="Gwenaël Delaval"/>
    <meta name="dc.creator" content="Lucie Muller"/>
    <meta name="dc.creator" content="Eric Rutten"/>
    <meta name="dc.creator" content="Gwenaël Delaval"/>
    <meta name="dc.creator" content="Soguy Mak Kare Gueye"/>
    <meta name="dc.creator" content="Eric Rutten"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2019-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="CTRL-A"/>
    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
      <!-- MathJax -->
    </script>
    <script type="text/javascript" src="../static/js/piwik.js">
      <!-- Piwik JS -->
    </script>
    <noscript>
      <p>
        <img src="https://piwik.inria.fr/matomo.php?idsite=49&amp;rec=1" style="border:0;" alt=""/>
      </p>
      <!-- Piwik Img -->
    </noscript>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Ctrl-a</a>
        </div>
        <span>
          <a href="uid1.html">Team, Visitors, External Collaborators</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Objective: control support for
autonomic computing</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid5.html&#10;&#9;&#9;  ">Modeling and control techniques
for
autonomic computing</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid9.html&#10;&#9;&#9;  ">
Self-adaptive and reconfigurable computing systems in HPC and the IoT</a></li></ul></div>
      <div class="TdmEntry">
        <a href="./uid11.html">Highlights of the Year</a>
      </div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid13.html&#10;&#9;&#9;  ">Heptagon</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li class="tdmActPage"><a href="uid19.html&#10;&#9;&#9;  ">Programming support for Autonomic Computing</a></li><li><a href="uid20.html&#10;&#9;&#9;  ">Design methods for reconfiguration controller design in computing systems</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid31.html&#10;&#9;&#9;  ">Bilateral Grants with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid33.html&#10;&#9;&#9;  ">Regional Initiatives</a></li><li><a href="uid34.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid40.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid49.html&#10;&#9;&#9;  ">International Initiatives</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid54.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid80.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid97.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentmajor" href="bibliography.html">Major publications</a>
          </li>
          <li>
            <a id="tdmbibentyear" href="bibliography.html#year">Publications of the year</a>
          </li>
          <li>
            <a id="tdmbibentfoot" href="bibliography.html#References">References in notes</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2019</a> | <a href="http://www.inria.fr/en/teams/ctrl-a">Presentation of the Project-Team CTRL-A</a> | <a href="https://team.inria.fr/ctrl-a/">CTRL-A Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="ctrl-a.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="ctrl-a.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-ctrl-a-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../ctrl-a/ctrl-a.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-ctrl-a-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid13.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid20.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      New Results</h2>
        <h3 class="titre3">Programming support for Autonomic Computing</h3>
        <a name="cid1"/>
        <h4 class="titre4">Reactive languages</h4>
        <p class="participants"><span class="part">Participants</span> :
	Gwenaël Delaval, Lucie Muller, Eric Rutten.</p>
        <p>Our work in reactive programming
for autonomic computing systems
is focused on the specification and compilation of declarative control objectives,
under the form of contracts,
enforced upon classical mode automata as defined in synchronous languages.
The compilation involves a phase of Discrete Controller Synthesis,
integrating the tool ReaX,
in order to obtain
an imperative executable code.
The programming language Heptagon / BZR
(see Section Software and Platforms)
integrates our research results
<a href="./bibliography.html#ctrl-a-2019-bid1">[5]</a>.</p>
        <p>An ongoing topic is on abstraction methods for compilation using discrete controller synthesis (needed for example, in order to program the controllers for systems where the useful data for control can be of arbitrary types (integer, real, ...), or also for systems which are naturally distributed, and require a decentralized controller).</p>
        <p>Recent work concerns
compilation and diagnosis for discrete controller synthesis.
The compilation involving a phase of controller synthesis can fail to find a solution,
if the problem is overconstrained.
The compiler does notify so to the programmer,
but the latter would need a diagnosis in order to understand where and how to debug the program.
Such diagnosis is made especially difficult by the declarative nature of the synthesis.</p>
        <p>This was the object of
the
M1 TER
internship of Lucie Muller
<a href="./bibliography.html#ctrl-a-2019-bid8">[19]</a>.</p>
        <a name="cid2"/>
        <h4 class="titre4">Domain-specific languages</h4>
        <p class="participants"><span class="part">Participants</span> :
	Gwenaël Delaval, Soguy Mak Kare Gueye, Eric Rutten.</p>
        <p>Our work in
Domain-specific languages
(DSLs)
is founded on our work in
component-based programming
for autonomic computing systems
as examplified by e.g., <span class="smallcap">Fractal </span>.
We
consider essentially the problem of specifying
the control of components assembly reconfiguration,
with an approach based on
the integration within such a component-based framework
of
a
reactive language as in Section <a title="Programming support for Autonomic Computing" href="./uid19.html#cid1">7.1.1</a>
<a href="./bibliography.html#ctrl-a-2019-bid2">[4]</a>.
In recent work,
we proposed
an
extension of
a
classical Software
Architecture Description Languages (ADL)
with Ctrl-F,
DSL for the specification of
dynamic reconfiguration
behavior
in a
<a href="./bibliography.html#ctrl-a-2019-bid3">[1]</a>.
Based on this experience,
we also
proposed a
DSL
called Ctrl-DPR <a href="./bibliography.html#ctrl-a-2019-bid9">[6]</a>,
allowing designers to easily generate Autonomic Managers
for DPR FPGA systems
(see Section
<a title="Design methods for reconfiguration controller design in computing systems" href="./uid20.html#cid4">7.2.3</a>).</p>
        <p>Ongoing work
involves
a
generalization
from our
past
experiences in
software components,
DPR FPGA,
as well as
IoT <a href="./bibliography.html#ctrl-a-2019-bid7">[8]</a>, and Cyberphysical Systems.
As we observed a similarity in objects and structures
(e.g., tasks, implementation versions, resources, and
upper-level application layer),
we are considering a more general DSL,
which could be specialized towards such different target domains,
and
where
the compilation towards reactive models could be studied and improved,
especially considering the features of Section <a title="Programming support for Autonomic Computing" href="./uid19.html#cid1">7.1.1</a>.
This direction will also lead us to
study the definition of
software architecture
patterns
for multiple loops
Autonomic Managers,
particularly
hierarchical,
with lower layers autonomy
alleviating management burden from the upper layers
as in Section <a title="Design methods for reconfiguration controller design in computing systems" href="./uid20.html">7.2</a>.</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid13.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid20.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
