Notes de la séance 2 de TransProg M2
====================================
Introduction à Scala
Scala est le langage de programmation que nous utiliseront pour le projet.
- Prise en main de Scala : Tutoriel Scala pour développeurs Java
Attention:
- On utilisera le fragment fonctionnel de Scala (effets de bord limités aux affichages à l’écran)
- Pour compiler le projet on utilise sbt, il n’est donc pas obligatoire d’installer Scala.
Le cours 2 : Visite guidée de Fopix
Fopix est le langage maison qui nous servira de point de départ.
-
l’AST de Fopix et ses constructions
-
la syntaxe concrète : voir exemples, ou les PrettyPrint et Parser fournis
-
caractéristiques principales :
- des fonctions récursives générales, pas d’application partielle
- un poil de fonctionnel : la tête d’un appel de fonction est à calculer (cf.
Call
) - dans un premier temps vous pourrez vous concentrer sur le cas simple des
Call(Fun(f),args)
Op
: opérations binaires de base (arithmétique et comparaisons)Prim
: quelques autres opérations primitives fournies- En particulier, parmi ces primitives, des opérations sur des tableaux impératifs :
mkNew(size)
,mkGet(array,index)
,mkSet(array,index,value)
TP2
- Prise en main du compilateur
trac
, de son architecture, de ses options - Commencer à compléter FopixInterp, l’interpréteur de Fopix
- Quels sont les choix de sémantique à effectuer pour cet interpréteur ? Proposer votre choix favori et me demander pour confirmation.
NB: Pour valider vos choix de sémantique, j’ai mis en ligne un petit interpréteur Fopix de référence (merci scalajs).