Difference between revisions of "Jobs/M2 DV 2014 conception-dsl"

From LRDE

 
(21 intermediate revisions by 3 users not shown)
Line 1: Line 1:
  +
{{Job
{| class="wikitable"
 
  +
|Reference id=M2 DV 2014 conception-dsl
! !! '''Lisp pour la conception et le développement de DSLs.'''
 
  +
|Title=Lisp for the design and the development of DSLs
|-
 
| Dates || stage de 5-6 mois en 2014
+
|Dates=5 - 6 months in 2014
 
|Research field=Dynamic Languages
|-
 
 
|Related project=Climb
| Research field ||
 
 
|Advisor=Didier Verna
|-
 
  +
|Prerequisites=Skills in functional programming are essential. Prior knowledge of Lisp, Haskell and/or Scala would help.
| Related project ||
 
  +
|Objectives=DSL design and implementation is booming. There are many approaches to this problem, one is about using the extensibility capabilities of a general-purpose programming language in order to meet specific requirements. Many multi-paradigm approaches (eg functional languages / compile-time meta-programming) also offer benefits. Lisp is a language that is particularly well suited for this type of problem, but it is almost totally absent from the literature on DSLs. Indeed, most researchers are not (or not anymore) familiar with this language. They prefer a language based on a static approach, or have simply forgotten everything Lisp is capable of.
|-
 
  +
The purpose of this internship is to (begin to) fill the gap by adding Lisp to the comparative literature. The work will consist in the study of literature demonstrating some useful approaches for the design of DSLs, further it should propose an alternative approach with Lisp and then compare the results. The steps of this training will include: (i ) Familiarization with Common Lisp and in particular its extensibility capabilities. (ii) Getting acquainted with the literature on the design and implementation of DSLs in other languages. (iii ) Choice of an application-centric approach or a comparative approach based on this literature and implementation of a Lispish equivalent. (iv) Finally, analysis of the results following the aspects such as: ease of implementation, expressiveness, performance etc. .
| Advisor ||
 
  +
|Benefit for the candidate=Familiarization with multiple programming languages​​, including Lisp, Haskell and Scala. Experience in the field of DSLs (Domain Specific Languages​​).
|-
 
 
|Contact=didier@lrde.epita.fr
| Context || Stage plutôt orienté développement/recherche.
 
 
|Compensation=800€ euros gross/month
|-
 
  +
|Future work opportunities=If you have performed the internship satisfactorily, we would like it to be followed by a PhD thesis.
| General presentation of the field ||
 
  +
|Type=Master Internship
|-
 
  +
|Language=en
| Prerequisites || Avoir des connaissances en programmation fonctionnelle. Une connaissance préalable de Lisp, Haskell et/ou Scala serait un plus.
 
  +
|Context=Internship rather development / research oriented.
|-
 
 
}}
|Internship objectives || La conception et l'implémentation des DSLs est un domaine en plein essor. Il existe de nombreuses approches à ce problème, dont l'une consiste à utiliser les capacités d'extensibilité d'un langage de programmation généraliste, pour l'adapter à des besoins spécifiques. De nombreuses approches multi-paradigmes (par ex. langages fonctionnels / méta-programmation à la compilation) offrent également des avantages. Lisp est un langage particulièrement bien adapté à ce type de problématique, mais il est presque totalement absent de la littérature sur les DSLs. En effet, la plupart des chercheurs du domaine ne sont pas (ou plus) familiers avec ce langage, préfèrent une approche basée sur un langage statique, ou encore ont simplement oublié tout ce dont Lisp est capable. Le but de ce stage est de (commencer à) restaurer l'équilibre, en rajoutant Lisp à la littérature comparative. Le travail consistera en l'étude de la bibliographie démontrant certaines approches utiles à la conception de DSLs, de proposer une approche alternative avec Lisp, puis de comparer les résultats obtenus. Les étapes de ce stages seront les suivantes: (i) Familiarisation avec le langage Common Lisp et en particulier avec ses capacités d'extensibilité ; (ii) Prise de contact avec la littérature sur la conception et l'implémentation de DSLs dans d'autres langages ; (iii) Choix d'une approche applicative ou d'un comparatif basé sur cette bibliographie et implémentation d'un équivalent Lispien ; (iv) Finalement, analyse des résultats selon des axes tels que: facilité d'implémentation, expressivité, performances etc.
 
|-
 
|Benefit for the candidate || Familiarisation avec plusieurs langages de programmation, dont Lisp, Haskell et Scala. Expérience dans le domaine des DSLs (Domain Specific Languages).
 
|-
 
| References ||
 
|-
 
| Place ||
 
|-
 
|Compensation || 800€ brut/mois
 
|-
 
|Future work opportunities ||
 
|-
 
|Contact || didier@lrde.epita.fr
 
|}
 

Latest revision as of 16:38, 29 October 2014

Lisp for the design and the development of DSLs
Reference id

M2 DV 2014 conception-dsl

Dates

5 - 6 months in 2014

Research field

Dynamic Languages

Related project

Climb

Advisor

Didier Verna

General presentation of the field
Prerequisites

Skills in functional programming are essential. Prior knowledge of Lisp, Haskell and/or Scala would help.

Objectives

DSL design and implementation is booming. There are many approaches to this problem, one is about using the extensibility capabilities of a general-purpose programming language in order to meet specific requirements. Many multi-paradigm approaches (eg functional languages / compile-time meta-programming) also offer benefits. Lisp is a language that is particularly well suited for this type of problem, but it is almost totally absent from the literature on DSLs. Indeed, most researchers are not (or not anymore) familiar with this language. They prefer a language based on a static approach, or have simply forgotten everything Lisp is capable of. The purpose of this internship is to (begin to) fill the gap by adding Lisp to the comparative literature. The work will consist in the study of literature demonstrating some useful approaches for the design of DSLs, further it should propose an alternative approach with Lisp and then compare the results. The steps of this training will include: (i ) Familiarization with Common Lisp and in particular its extensibility capabilities. (ii) Getting acquainted with the literature on the design and implementation of DSLs in other languages. (iii ) Choice of an application-centric approach or a comparative approach based on this literature and implementation of a Lispish equivalent. (iv) Finally, analysis of the results following the aspects such as: ease of implementation, expressiveness, performance etc. .

Benefit for the candidate

Familiarization with multiple programming languages​​, including Lisp, Haskell and Scala. Experience in the field of DSLs (Domain Specific Languages​​).

References
Place LRDE: How to get to us
Compensation

800€ euros gross/month

Future work opportunities

If you have performed the internship satisfactorily, we would like it to be followed by a PhD thesis.

Contact

didier@lrde.epita.fr