Sucre syntaxique et sel syntaxique sont des expressions utilisées en informatique à propos des langages de programmation.
Sucre syntaxique est une expression imaginée par Peter J. Landin pour désigner les extensions à la syntaxe d'un langage de programmation qui :
ne modifient pas son expressivité ;
le rendent plus agréable à écrire comme à lire.
Le sucre syntaxique exprime le fait de donner au programmeur des possibilités d'écriture plus succinctes ou plus intuitives.
Dans le langage Perl, par exemple, on peut omettre des parenthèses obligatoires dans d'autres langages :
Ce langage permet également d'écrire :
Le sucre syntaxique peut être facilement traduit (désucré) si l'on veut vraiment produire un programme dans la syntaxe de base, plus stricte et plus obscure, du langage. Un simple préprocesseur peut effectuer ce travail de désucrage. Par exemple, en C la notation tableau[i] est du sucre syntaxique pour l'expression *(tableau+i).
L'utilisation de la notation infixe x+y peut être considérée aussi comme du sucre syntaxique pour la notation polonaise inverse x y +.
Les macros de Lisp ou Scheme permettent de sucrer, syntaxiquement parlant, des programmes écrits dans ces langages ; toutes sortes d'extensions syntaxiques y sont possibles.
Lorsqu'APL était intensivement utilisé dans les infocentres, chaque utilisateur se créait son sucre syntaxique en définissant ses propres opérateurs :
∇z←a if b
z←b/a
On nomme par opposition sel syntaxique les fonctionnalités conçues pour rendre plus difficile l'écriture de programmes erronés.
En pratique, le sel syntaxique est comme un passage obligé par lequel le programmeur doit passer pour prouver qu'il sait ce qu'il fait, sans que le code écrit pour cela n'exprime une action particulière du logiciel. Certains programmeurs considèrent l'obligation de déclarer les variables et leur type comme du sel syntaxique.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
This seminar teaches the participants to use advanced Python concepts for writing easier to read, more flexible and faster code.
It teaches concepts in a hands-on and tangible fashion, providing examp
The course introduces the foundations on which programs and programming languages are built. It introduces syntax, types and semantics as building blocks that together define the properties of a progr
We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language in
C# (C sharp en anglais britannique) est un langage de programmation orientée objet, commercialisé par Microsoft depuis 2002 et destiné à développer sur la plateforme Microsoft .NET. Il est dérivé du C++ et très proche du Java dont il reprend la syntaxe générale ainsi que les concepts, y ajoutant des notions telles que la surcharge des opérateurs, les et les délégués. Il est utilisé notamment pour développer des applications web sur la plateforme ASP.NET, ainsi que des jeux vidéo avec le moteur de jeux Unity.
C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes, dont la programmation procédurale, la programmation orientée objet et la programmation générique. Ses bonnes performances, et sa compatibilité avec le C en font un des langages de programmation les plus utilisés dans les applications où la performance est critique. Créé initialement par Bjarne Stroustrup dans les années 1980, le langage C++ est aujourd'hui normalisé par l'ISO.
Haskell est un langage de programmation fonctionnel fondé sur le lambda-calcul et la logique combinatoire. Son nom vient du mathématicien et logicien Haskell Curry. Il a été créé en 1990 par un comité de chercheurs en théorie des langages intéressés par les langages fonctionnels et l'évaluation paresseuse. Le dernier standard est Haskell 2010 : c'est une version minimale et portable du langage conçue à des fins pédagogiques et pratiques, dans un souci d'interopérabilité entre les implémentations du langage et comme base de futures extensions.
Couvre les représentations intermédiaires dans les compilateurs, en se concentrant sur CPS / L3 IR fonctionnel avec des continuations locales et des constructions de contrôle.
Formal verification of real-world software systems remains challenging for a number of reasons, including lack of automation, friction in specifying properties, and limited support for the diverse programming paradigms used in industry. In this thesis we m ...
EPFL2022
, ,
While theoretical and empirical insights suggest that the capacity to represent and process complex syntax is crucial in language as well as other domains, it is still unclear whether specific parsing mechanisms are also shared across domains. Focusing on ...
MLsub extends traditional Hindley-Milner type inference with subtyping while preserving compact principal types, an exciting new development. However, its specification in terms of biunification is difficult to understand, relying on the new concepts of bi ...