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. Le langage continue d'évoluer en 2020, principalement avec GHC, constituant ainsi un standard de facto comprenant de nombreuses extensions.
La sortie de Miranda en 1985 provoqua un regain d'intérêt pour les langages fonctionnels à évaluation paresseuse et entraîna une explosion du nombre de tels langages expérimentaux, de sorte qu'en 1987 plus d'une douzaine d'entre eux étaient disponibles. Miranda était de loin le plus populaire mais son modèle propriétaire fermé n'encourageait pas les contributions et à la conférence FPCA '87 (Functional Programming Languages and Computer Architecture, se traduisant par langages de programmation fonctionnels et architecture des ordinateurs) à Portland en Oregon, une réunion de chercheurs éminents du domaine aboutit à la conclusion qu'il serait souhaitable d'établir un standard ouvert qui pourrait servir de base commune à de futures recherches sur les langages fonctionnels. Dans ce but ils formèrent un comité dont la tâche serait de mettre en commun les points forts des prototypes de l'époque.
Haskell 1.0 à 1.4
Le travail du comité se poursuivit de réunion en réunion et aboutit en 1990 à la définition de Haskell 1.0, suivi par diverses révisions pour les versions 1.1, 1.2, 1.3 et 1.4.
Haskell 98
Le rapport Haskell 98 établit un standard durable sur lequel toutes les implémentations subséquentes se basent. Une version révisée parait en .
Haskell 2010
Le procédé de révision du standard Haskell, nommé Haskell' (prononcé « Haskell Prime ») commença en 2006.
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.
In programming languages and type theory, a product of types is another, compounded, type in a structure. The "operands" of the product are types, and the structure of a product type is determined by the fixed order of the operands in the product. An instance of a product type retains the fixed order, but otherwise may contain all possible instances of its primitive data types. The expression of an instance of a product type will be a tuple, and is called a "tuple type" of expression.
Clean is a general-purpose purely functional computer programming language. It was called the Concurrent Clean System, then the Clean System, later just Clean. Clean has been developed by a group of researchers from the Radboud University in Nijmegen since 1987. The language Clean first appeared in 1987. Although development of the language has slowed, some researchers are still working in the language. In 2018, a spin-off company was founded that uses Clean.
In computing, a unique type guarantees that an object is used in a single-threaded way, with at most a single reference to it. If a value has a unique type, a function applied to it can be optimized to update the value in-place in the object code. Such in-place updates improve the efficiency of functional languages while maintaining referential transparency. Unique types can also be used to integrate functional and imperative programming. Uniqueness typing is best explained using an example.
We introduce formal verification as an approach for developing highly reliable systems. Formal verification finds proofs that computer systems work under all relevant scenarios. We will learn how to u
Understanding of the principles and applications of functional programming, the fundamental models of program
execution, application of fundamental methods of program composition, meta-programming thr
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
Couvre la génération de code pour un compilateur, traduisant un programme Amy à WebAssembly, y compris la gestion de la mémoire et la compilation de correspondance de motifs.
Explore l'analyse automatisée de terminaison à l'aide de paires de dépendances, couvrant les techniques classiques et modernes, les concours annuels et des outils comme AProVE.