Difference between revisions of "ING2 internship"

From LRDE

(Replaced content with "{{DISPLAYTITLE:Internship Proposals for Engineering Students}} <metakey>lrde,stage,internship</metakey> {{#ask: Category:Jobs Job type::Engineering Internship [[...")
Line 1: Line 1:
  +
{{DISPLAYTITLE:Internship Proposals for Engineering Students}}
== Propositions de stages pour les étudiants de l'EPITA ==
 
   
  +
<metakey>lrde,stage,internship</metakey>
=== Cycle Ingenieur ===
 
   
  +
{{#ask: [[Category:Jobs]] [[Job type::Engineering Internship]] [[Language::en]] [[Job reference id::~*2015*]]
 
  +
| ?Job research field
 
  +
| format = valuerank
{| class="wikitable"
 
  +
| liststyle = ul
! !! '''Bison : points d'entrée multiples'''
 
  +
| template = Offers/ItemTemplate
|-
 
  +
| userparam = en/Engineering Internship/2015
|Dates || Septembre/Octobre 2013 - Janvier 2014
 
 
}}
|-
 
| Prérequis || No mathematical knowledge needed. Good level in C required. C++ is a plus: it will be used, but at a very simple level. Java will also be used (again, limited knowledge will suffice).
 
|-
 
|Descriptif || Bison generates parsers for a given grammar. In some case, one is interesting in parsing different aspects of a grammar (for instance, "parse this expression", or "parse this declaration", or "parse this program"). There is no built-in support for this in Bison. It is however easy to implement. The internship consists in adding this feature in the front-end (i.e., find a means for the user to declare that she wants to have several "entry points"), and in the back-ends (i.e., prepare Java, C, and C++ parsers with the needed support: typically generating a "parse_foo()" function for each "foo" entry-point). There are many other things to develop in Bison, this is just an initial assignment: more will come as the first one is properly addressed.
 
|-
 
| Pistes possibles ||| (i) Sort the error messages: Bison has several passes, and each pass generates its own error messages. As a result, there is sometimes an error on line 3, then on line 2 and then on line 1. Sort them to issue them in a more natural order; (ii) Colorize the diagnostics: Today compiles such as GCC or clang issue messages in color. Do that in Bison too ; (iii) Optimize the generator parsers: Currently Bison aims at producing ''small'' parsers (small tables). It might be interesting to release some of these optimizations (since nowadays we have much more memory available) to see if we gain some speedup. That would result in a -O option, as in compilers (with -Os, -O2, etc.).
 
|-
 
|Rémunération || 500€ brut/mois
 
|-
 
|Contact || akim@lrde.epita.fr
 
|}
 
 
{| class="wikitable"
 
! !! '''Vaucanson : Isomorphismes d'automates'''
 
|-
 
|Dates || Septembre/Octobre 2013 - Janvier 2014
 
|-
 
| Prérequis || Good C++ understanding is needed. There is no need to fully understand how the Vaucanson platform works. Basic understanding of automaton theory is needed too. However some algorithms are most probably tricky to implement, so consider this assignment as quite difficult.
 
|-
 
|Descriptif || The Vaucanson platform aims at providing access to the best existing algorithms on finite automata. To this end, it is needed to compare it to other platforms. This requires: (i) I/O support with other platforms Vaucanson 2 already supports several such formats as output, but input is needed, and maybe more output formats. (ii) A means to compare two automata: To make sure that two implementations of the same algorithm result in the same automaton, one must be able to check that two automata are isomorphic. This is actually not related to automata per se, but rather belongs to graph theory. Several techniques exist (two of which have been implemented in Vaucanson 1). Implement one or several of them; (iii) Benchmarking tools: To compare several tools, we must be able to measure their performances on fammilies of automata. Some generators already exist in Vaucanson 2, other might be interesting to import from Vaucanson 1. Actually, automatic generation of automata would be most useful too. The internship will cover several or all of these tiles. All of them are needed to provide a complete benchmarking tool for automata, yet every individual bit is interesting in its own right. The intern will have to address the various aspects in turn.
 
|-
 
|Rémunération || 500€ brut/mois
 
|-
 
|Contact || akim@lrde.epita.fr
 
|}
 
 
{| class="wikitable"
 
! !! '''Spot : Traduction de formules de logique temporelle en automates''' ||
 
|-
 
|Dates || Septembre/Octobre 2013 - Janvier 2014
 
|-
 
| Contexte || Stage plutôt orienté développement/recherche.
 
|-
 
| Prérequis || Savoir programmer en C++. Avoir apprécié le cours de théorie des langage rationnels (niveau spé).
 
|-
 
|Descriptif || La bibliothèque Spot fournit des algorithmes pour fabriquer un model checker, c'est-à-dire un outil qui sert à prouver que tous les comportements possible d'un système vérifient une propriété donnée. On y trouve entre autres des algorithmes pour traduire des formules de logique temporelle (qui expriment les propriétés) en automates (pour automatiser la preuve). L'une de ces logiques s'appelle PSL (Property Specification Language) et est déjà supportée, mais de façon sous optimale. L'objectif du stage est de réimplementer la traduction de PSL en automates proprement. Cela passe par l'introduction d'un nouveau type d'automate, similaire aux automates non-déterministes du cours de THLR, mais avec des transitions finales au lieu d'avoir des états finaux. Comme il existe déjà une traduction, et que Spot est déjà équippé avec tout ce qu'il faut pour comparer des traductions entre elles, il sera facile de rapidement débugger la nouvelle approche.
 
|-
 
|Intérêt pour le candidat || Rédevelopper une théorie des automates pour un nouveau type d'automates, découvrir les logiques temporelles et leurs applications
 
|-
 
|Rémunération || 500€ brut/mois
 
|-
 
|Contact || adl@lrde.epita.fr
 
|}
 

Revision as of 16:20, 10 November 2015


<metakey>lrde,stage,internship</metakey>