Crumb : un nouveau langage de programmation où il n'y a pas de mots-clés et où tout est une fonctionCrumb est un langage de programmation de haut niveau, fonctionnel, interprété, dynamiquement typé, à usage général, avec une syntaxe laconique et une bibliothèque standard verbeuse.
Il présente les caractéristiques suivantes :
- Strictement aucun effet secondaire pour vous aider à écrire du code fonctionnel
- La possibilité de localiser les effets des fichiers Crumb importés.
- Le typage dynamique et le "garbage collection".
- 0 mot-clé, tout est une fonction.
Syntaxe
Crumb utilise une définition syntaxique particulièrement laconique. La syntaxe entière peut être décrite en 6 lignes d'EBNF. De plus, il n'y a pas de mots réservés, et seulement 7 symboles réservés.
EBNF
| Code : | Sélectionner tout |
1 2 3 4 5 6 7 | program = start, statement, end;
statement = {return | assignment | value};
return = "<-", value;
assignment = identifier, "=", value;
value = application | function | int | float | string | identifier;
application = "(", {value}, ")";
function = "{", [{identifier}, "->"], statement, "}"; |
Tokens
| Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | "="
"("
")"
"{"
"}"
"->"
"<-"
identifier
int
float
string
start
end |
Spécificités
Les chaînes de caractères sont des caractères entourés de guillemets, par exemple :
| Code : | Sélectionner tout |
1 2 3 | "hello world" "this is\nsplit between new lines" "\e[31mthis text is in red\e[0m" |
| Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | "\a" "\b" "\f" "\n" "\r" "\t" "\v" "\e" "\\" "\"" |
| Code : | Sélectionner tout |
1 2 3 | 1234 -14 345 |
| Code : | Sélectionner tout |
1 2 3 | 13.45 -2.3 745.0 |
| Code : | Sélectionner tout |
1 2 3 4 | hello x₂ symbol1 + |
| Code : | Sélectionner tout |
1 2 | // this is a program that prints hi (print "hi") // this prints hi |
Vous pourrez voir plus d'information dans la source.
Source : GitHub
Et vous ?
Pensez-vous que ce langage de programmation soit crédible ou pertinent ?
Pensez-vous que ce langage de programmation soit utile à quelque chose ? Si oui à quoi ?
Que pensez-vous de ce langage de programmation ?
Selon vous, quelle est la différence avec le langage de programmation Lisp ?Voir aussi :
La version 3.6b d'ARM uLisp, une variante du langage de programmation Lisp conçue pour microcontrôleurs, est disponible. Elle prend en charge la sauvegarde d'images sur toutes les cartes ATSAMD21
Un développeur publie un langage de programmation qui peut être traduit automatiquement en C, C++, C#, Java, JavaScript, etc., avec une traduction rapide et sans machine virtuelle
Le langage fonctionnel et impératif Janet, qui reprend des fonctionnalités de Lua et Clojure, s'apparente à une version légère de Lisp implémentée en C
Vous avez lu gratuitement 17 174 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.