[P4] Fwd: EIT Digital and static source code analysis

Sándor Laki lakis at elte.hu
Tue Mar 7 15:03:19 CET 2017


FYI



-------- Forwarded Message --------
Subject: 	EIT Digital and static source code analysis
Date: 	Tue, 7 Mar 2017 12:04:42 +0000
From: 	STARYNKEVITCH Basile <Basile.STARYNKEVITCH at cea.fr>
To: 	lakis at elte.hu <lakis at elte.hu>



Dear Sándor Laki,

Your /Deeply Programmable High-speed Data Planes /slides have interested 
me. We could bring you our static source code analysis expertise 
complementary to your P4C compiler.
------------------------------------------------------------------------

The EIT Digital <https://www.eitdigital.eu/> organization is announcing 
its 2018 call for collaborative project proposal on march 17^th , 2017.

Your organization is considering joing a consortium to work on a 
proposal, in one of the /Digital Wellbeing/, /Digital Finance/, /Digital 
Industry/, /Digital Infrastructure/, /Digital Cities/ topics of that call.

I (Basile Starynkevitch <mailto:basile.starynkevitch at cea.fr>) am a 
research engineer in the software safety lab (Laboratoire de Sûreté des 
Logiciels) of CEA, LIST <http://www-list.cea.fr/> (the Information 
Technology focused institute, 800 persons, of CEA <http://www.cea.fr>, a 
public applied research organization of 16000 persons in France).

The /LSL/ lab (software safety laboratory) of /CEA, LIST/ has expertise 
in static source code analysis, both in a formal methods approach 
through its flagship product Frama-C <http://frama-c.com/> and in more 
heuristic approaches by leveraging on existing compilers like with GCC 
MELT <http://gcc-melt.org/>, which is a domain specific language to work 
on GCC <http://gcc.gnu.org/> internal representations, or Clang/LLVM 
<http://clang.llvm.org/>.

We are looking to join a consortium working on a proposal for EIT 
Digital <https://www.eitdigital.eu/>. As soon as you have software 
/source code/ for one of the topics (/Digital Wellbeing/, /Digital 
Finance/, /Digital Industry/, /Digital Infrastructure/, /Digital 
Cities/) relevant to that call, we propose to to develop a specialized 
tool (preferably open source, above existing technologies), for 
developers & engineers writing source code (in C, C++, and Ada if 
needed...) targeting that topic. We are considering contributing to a 
project by working in /some/ (one or several) of these aspects:

  * If your domain (one of /Digital Wellbeing/, /Digital Finance/,
    /Digital Industry/, /Digital Infrastructure/, /Digital Cities/) has
    some common or (de-facto) standard application programming interface
    <https://en.wikipedia.org/wiki/Application_programming_interface>
    (or API, cf. note 1), we could develop a specialized tool
    (preferably open source, above existing technologies), for
    developers & engineers writing source code (in C, C++, and Ada or Go
    if needed...) targeting that domain and using that API. This tool
    could assist your domain's application software developer by
    analysing and checking the /validity of the source code against
    coding rules, invariants, and good practices/ specific to these
    software frameworks and domains. Such a tool would work both on
    small and large software pieces.
  * If your domain contains safety critical cyber-physical software
    where cybersecurity
    <https://en.wikipedia.org/wiki/Computer_security> threats are
    important (risking lives or large assets), we could develop a
    software proving tool using formal methods
    <https://en.wikipedia.org/wiki/Formal_methods> targeting your
    domain. This approach (related to proof assistants
    <https://en.wikipedia.org/wiki/Proof_assistant>) is particularily
    suitable for critical small pieces of software (less than a few
    hundred thousands of source code lines; cf. note 2).
  * If your domain has an eco-system of legacy code with hundred of
    millions of lines (cf. note 3), we propose to adopt a /big data/ or
    /machine learning/ approach to develop a tool to help in several
    software engineering tasks: /code retrieval/, i.e. finding some
    piece of code related to some subject in a large set of software
    packages; /code comprehension/, i.e. helping the newbie software
    developer to use a big software library, cf. note 4; /code
    verification/, i.e. using machine learning techniques to help
    debugging and testing some piece of software.

We are also more broadly interested in /bringing static source code 
analysis techniques/ to software developers on EIT Digital 
<https://www.eitdigital.eu/> topics.

Feel free to contact me (|basile.starynkevitch at cea.fr| 
<mailto:basile.starynkevitch at cea.fr>) and to forward this message 
(downloadable on 
|http://gcc-melt.org/EIT_Digital2017-interest-Starynkevitch.html|) to 
your colleagues and partners.

I look forward to discussing with you.

*Basile Starynkevitch*,
mobile: +33 6 8501 2359; office: +33 1 6908 6595
CEA LIST Nano-Innov b862 PC 174 -/91191 GIF/YVETTE CEDEX/, France
|basile.starynkevitch at cea.fr| <mailto:basile.starynkevitch at cea.fr>


------------------------------------------------------------------------


    Notes

*note 1*: So an API 
<https://en.wikipedia.org/wiki/Application_programming_interface> is 
defined as a set of functions or abstract classes' declarations, e.g. in 
some C or C++ |#include|-ed header files 
<https://en.wikipedia.org/wiki/Include_directive> or their equivalent in 
another programming language, etc...

*note 2*: We are of course well aware that formal methods (notably sound 
static analyzers) do not scale well to huge multi-million lines 
software, and may require expertise to be used. They are particularily 
suitable for development of small but costly critical software.

*note 3*: an example of eco-system of legacy code is the GENIVI 
<http://www.genivi.org/> alliance in the automotive sector. Other 
industrial domains have also such alliances, or are building them.

*note 4*: Quite often, a software developer has to use large 
infrastructure code (such as Qt <http://qt.io/> GUI framework, the POSIX 
<http://pubs.opengroup.org/onlinepubs/9699919799/> API, RDBMS libraries 
like libmysqlclient 
<https://dev.mysql.com/doc/refman/5.7/en/c-api-implementations.html>, 
etc...) and mastering such libraries require years of work. We suggest 
to develop tools helping that effort.

------------------------------------------------------------------------

Please forward this message to your partners. Thanks.

Regards.

Dr Basile Starynkevitch - research engineer at CEA, LIST, DILS
CEA LIST Nano-Innov b862 PC 174 - 91191 GIF/YVETTE CEDEX, France
mobile: +33 [0]6 8501 2359; office: +33 [0]1 6908 6595
http://gcc-melt.org/


---
Ezt az e-mailt az Avast víruskereső szoftver átvizsgálta.
https://www.avast.com/antivirus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/p4/attachments/20170307/0ab0fde5/attachment.html>


More information about the P4 mailing list