
Voici la présentation de Rhombus, un langage de programmation à usage général basé sur Racket.
Rhombus est un nouveau langage construit sur Racket. Il offre le même type d'extensibilité du langage que Racket lui-même, mais en utilisant la notation traditionnelle (infixe). Bien que Rhombus soit loin d'être le premier langage à supporter les macros de style Lisp sans les parenthèses de style Lisp, Rhombus offre une nouvelle synthèse de la technologie des macros qui est pratique et expressive.
Un élément clé est l'utilisation d'espaces de liaison multiples pour des sous-langages spécifiques au contexte. Par exemple, les expressions et les formes de recherche de motifs peuvent utiliser les mêmes opérateurs avec des significations différentes et sans créer de conflits. Les liaisons contextuelles, à leur tour, facilitent la conception d'un langage qui réduit la distance notationnelle entre le langage de base et les macro-facilités. Par exemple, les répétitions peuvent être définies et utilisées dans les contextes de liaison et d'expression en général, ce qui permet une transition plus douce de la programmation à la métaprogrammation.
Enfin, comme la gestion des informations statiques (telles que les types) est également nécessaire pour développer les macros au-delà de Lisp, Rhombus inclut dans son protocole d'expansion un support pour la communication d'informations statiques entre les liaisons et les expressions. L'implémentation de Rhombus démontre que tous ces éléments peuvent fonctionner ensemble dans un langage cohérent et convivial.
Objectif de Rhombus
Les langages de programmation modernes reflètent un consensus sur les constructions de base, notamment l'abstraction fonctionnelle, les variables à portée lexicale, les fermetures, les objets et la correspondance des formes. Pourquoi, dans ce cas, créer un autre langage de programmation à usage général ?
Au-delà des principes de base, il existe encore plus de bonnes idées de constructions de programmation qu'il n'est possible d'en intégrer dans une seule spécification de langage. En outre, des domaines spécifiques bénéficient d'un support linguistique adapté à ces domaines. L'extensibilité du langage permet d'équilibrer les objectifs concurrents d'un langage de taille gérable et d'un langage adapté à un large éventail de tâches.
De nombreux langages récents intègrent un système de macros pour permettre l'extensibilité, mais rares sont ceux qui affirment que les nouveaux systèmes de macros ont atteint l'expressivité et la fluidité des macros telles qu'elles existent dans la tradition Lisp, dont fait partie Racket. En même temps, cette expressivité a été difficile à démêler de la notation minimaliste de Lisp, axée sur les parenthèses.
Rhombus est conçu pour être :
- accessible et facile à utiliser pour les besoins quotidiens (qui ne nécessitent pas de macros), ce qui signifie en partie une syntaxe conventionnelle ; et
- aussi extensible que Racket, tout en rendant les fonctionnalités de pointe de Racket plus cohérentes et accessibles à un large public.
Pour rappel, Racket est un langage de programmation polyvalent et multiparadigme. Le langage Racket est un dialecte moderne de Lisp et un descendant de Scheme. Il est conçu comme une plateforme pour la conception et la mise en œuvre de langages de programmation. Outre le langage Racket, Racket est également utilisé pour désigner la famille de langages de programmation et l'ensemble des outils permettant de développer sur et avec Racket. Racket est également utilisé pour l'écriture de scripts, l'enseignement de l'informatique et la recherche.
La plateforme Racket fournit une implémentation du langage Racket (y compris un système d'exécution, des bibliothèques et un compilateur prenant en charge plusieurs modes de compilation : code machine, indépendant de la machine, interprété et JIT) ainsi que l'environnement de développement intégré (EDI) DrRacket écrit en Racket. Racket est utilisé par le programme de sensibilisation ProgramByDesign, qui vise à faire de l'informatique "une partie indispensable du programme d'études des arts libéraux".
Le noyau du langage Racket est connu pour son système de macros étendu qui permet de créer des langages intégrés et spécifiques à un domaine, des constructions de langage telles que des classes ou des modules, et des dialectes distincts de Racket avec une sémantique différente.
Sources : Site officiel du langage Rhombus, Dépôt GitHub Rhombus
Et vous ?


Voir aussi :



Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.