CSI3525: Concepts des Langages de Programmation - PowerPoint PPT Presentation

About This Presentation
Title:

CSI3525: Concepts des Langages de Programmation

Description:

ML est un langage fonctionnel a portee locale comme le Scheme. ... Il utilise des declaration de types, des inferences de types et il est fortement type. ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 14
Provided by: siteUo
Category:

less

Transcript and Presenter's Notes

Title: CSI3525: Concepts des Langages de Programmation


1
CSI3525Concepts des Langages de Programmation
  • Notes 6
  • Langages de Programmation Fonctionelle II
    Introduction au ML

2
Introduction
  • ML est un langage fonctionnel a portee locale
    comme le Scheme.
  • Neanmoins, il differe du Scheme de facon
    significative
  • Il utilise des declaration de types, des
    inferences de types et il est fortement type.
    Scheme, au contraire, nutilise pratiquement pas
    de types.
  • Il utilise une syntaxe plus proche du Pascal et
    du C que du Scheme.
  • ML fait du traitement dexception et il incorpore
    un module qui permet limplementation de types de
    donnees abstraites.

3
Types de Donnees Primitives et Symboles Reserves
  • Type de donnees Primitives entiers, reels,
    booleens, chaines de caracteres.
  • Pour entiers et reels, indique la negativite
    (e.g., 3, 2.4, etc.).
  • ML reconnait les majuscules et les minuscules
    (e.g.,True ltgt true).
  • Les caracteres de controle sont representes
    comme en C (e.g., \n pour aller a la ligne, \t
    pour tab, etc.).

4
Types de Donnees Structurees
  • Listes Mixtes (tuples) une sequence dobjets de
    types varies separes par des virgules et compris
    dans des parentheses. (E.g., (12, abc, 3) ou
    (2, a, (3, 4.3), xyz, (true, 7)) .
  • Le nieme membre dune liste mixte peut etre
    accede par n (e.g. 2(2, 4, 6) 4)
  • Une liste est une liste mixte qui consiste
    dobjets du meme type. (e.g., a, b, c,
    d ou 1,2,3,4).
  • nil est la liste vide.

5
Types Definis par lUsager
  • datatype identificateur expression_de_type
  • Examples
  • datatype couleur rouge orange vert
  • datatype arbre
    nul noeud of int
    arbre arbre arbre

6
Attachements de Valeurs a des Identificateurs
  • val identificateur expression
  • Example val X 7
  • Notez que nest pas un symbole daffectation
    mais plutot un symbole dattachement X 8
    retournerait false.
  • De plus, une fois quune valeur est attachee a X,
    on ne peut plus en attacher dautre, a moins que
    lon change denvironement en utilisant la
    construction
  • let val nom_d_environement expression_1
    in expression_2 end

7
Expressions I
  • Expressions Arithmetiques
  • Negation ,
  • operateurs multiplicatifs , /, div, mod,
  • operateurs additifs , -
  • operateurs relationnels , ltgt, gt, lt, gt, lt.
  • Expressions Booleennes
  • andalso, orelse, not
  • andalso et orelse utilisent levaluation
    paresseuse.
  • Expressions de chaines de caracteres
  • concatenation
  • exemple abc def abcdef

8
Expressions II
  • Expression Conditionnelle
  • if expression then partie_vrai else partie_fausse
  • la partie else nest pas optionelle.
  • Expression de Boucle
  • while expression_1 do expression_2
  • expression_2 doit changer lassociation dune
    variable dans lenvironement local pour que
    expression_1 puisse-t-etre changee.
  • Expressions de Listes
  • tete de liste L hd(L)
  • queue de liste L tl(L)
  • constructtion de liste hd(L)tl(L) L
  • fusion de deux listes 1, 2 _at_ 3, 4
    1,2,3,4
  • coercion entre liste et chaine explode, implode

9
Specifications et Definitions de Fonctions
  • Specifications de Sequences

  • (expression_1 expression_2
    expression_3)
  • Definition de Fonctions
  • fun nom_de_fonction (parametres) expression
  • Exemple fun addition(aint, bint)int ab
  • Note 1 int n a pas besoin d etre specifie
    partout
  • Note2 Les fonctions peuvent etre polymorphiques
    et il y a possibilite de  pattern matching 

10
Exceptions
  • ML permet aux programmeurs de definir des
    exceptions. Une exception est un evenement
    inhabituel (ou bien une erreur ou non) qui peut
    etre detecte par le hardware ou le logiciel et
    qui peut necessiter un traitement special.
  • ML a un systeme de traitement dexception qui
    intervient lorsquune exception est relevee.
  • Definition exception nom_de_l_exception
  • Invocation raise nom_de_l_exception
  • Traitement expression handle traitement avec
  • traitement(motif1) gt expression1
  • traitement(motif2) gt expression2 etc...

11
Passer des Fonctions comme Arguments
  • Comme en Scheme, les fonctions peuvent etre
    passees comme arguments
  • Exemple
  • - fun fait_x(xint --gt int, yint) x(y)
  • val fait_x fn (int --gt int) int --gt
    int
  • - fun double(x) 2x
  • val double fn int --gt int
  • - fait_x(double,4)
  • val it 8 int

12
Fonctions Primitives Entrée/Sortie
  • use nom_de_fichier (lit un programme)
  • print(x) (imprime un objet primitif x)
  • open_in(nom_de_fichier) (ouvre nom_de_fichier
    et retourne un pointeur de type instreamau
    fichier ouvert.
  • input(pointeur_fichier, t) (retourne une chaine
    de caracteres de longueur t constitues par les t
    caracteres consecutifs du fichier de reference)
  • end_of_stream(pointeur_fichier) retourne vrai si
    la fin du fichier a ete atteinte.

13
Autres Fonctions Primitives
  • hd(liste) (retourne le 1er element de la
    liste)
  • tl(liste) (retourne la liste constituee de
    tous les elements sauf le premier).
  • explode(chaine) (convertit chaine en une liste
    de chaines dun seul caractere)
  • implode(liste) (prend une liste de chaines et
    retourne une seule chaine)
  • size(chaine) (retourne le nombre de caracteres
    dans la chaine)
  • ord(x) (retourne la valeur numerique du
    caractere x)
  • chr(i) (retourne le caractere represente par
    la valeur numerique i.
Write a Comment
User Comments (0)
About PowerShow.com