IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation système Discussion :

Crumb : un nouveau langage de programmation où il n'y a pas de mots-clés et où tout est une fonction


Sujet :

Programmation système

  1. #1
    Communiqués de presse

    Femme Profil pro
    Traductrice Technique
    Inscrit en
    Juin 2023
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Traductrice Technique

    Informations forums :
    Inscription : Juin 2023
    Messages : 1 699
    Points : 118 961
    Points
    118 961
    Par défaut Crumb : un nouveau langage de programmation où il n'y a pas de mots-clés et où tout est une fonction
    Crumb : un nouveau langage de programmation où il n'y a pas de mots-clés et où tout est une fonction

    Crumb 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.


    Nom : 2.png
Affichages : 3930
Taille : 3,9 Ko

    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 - Visualiser dans une fenêtre à part
    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, "}";
    Nom : 1.png
Affichages : 2721
Taille : 13,0 Ko

    Tokens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 - Visualiser dans une fenêtre à part
    1
    2
    3
    "hello world"
    "this is\nsplit between new lines"
    "\e[31mthis text is in red\e[0m"
    Les codes d'échappement dans crumb sont équivalents à leurs codes d'échappement C respectifs. La liste des codes d'échappement pris en charge est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "\a"
    "\b"
    "\f"
    "\n" 
    "\r"
    "\t"
    "\v"
    "\e"
    "\\"
    "\""
    Les nombres entiers sont des groupes de caractères numériques, qui peuvent être précédés de -, par exemple :
    Les flottants sont comme les entiers, mais ils contiennent une décimale, par exemple :
    Les identificateurs sont des ensembles de caractères qui ne sont pas séparés par des espaces, qui ne commencent pas par des guillemets ou des chiffres, et qui ne sont pas des symboles réservés, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    hello
    x₂
    symbol1
    +
    Les commentaires commencent par "//" et se terminent à la fin d'une ligne, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    951
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 951
    Points : 2 910
    Points
    2 910
    Par défaut
    Le concept de base est intéressant mais bon :

    (loop 100 {i ->
    i = (add i 1)

    (if (is (remainder i 15) 0) {
    (print "fizzbuzz\n")
    } {
    (if (is (remainder i 3) 0) {
    (print "fizz\n")
    } {
    (if (is (remainder i 5) 0) {
    (print "buzz\n")
    } {
    (print i "\n")
    })
    })
    })
    })
    Ca pique les yeux toutes ces paranthèses.

    En outre je pars du principe que si la syntaxe des langages c'est largement enrichis plutôt que de rajouter toujours des fonctions, c'est justement parce que les fonctions ne sont as toujours l'outil appropriés quand bien même 95% de mon code soit de la définition ou de l'appel à d'autres fonctions.

Discussions similaires

  1. Réponses: 290
    Dernier message: 31/05/2013, 11h43
  2. Réponses: 130
    Dernier message: 04/02/2011, 11h11
  3. Choix d'un nouveau langage de programmation
    Par ProgVal dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 09/01/2010, 16h20
  4. Comment rajouter un nouveau langage de programmation ?
    Par Acropole dans le forum Eclipse
    Réponses: 2
    Dernier message: 12/11/2009, 16h40
  5. Nouveau langage de programmation : le langage G
    Par G-FACTION dans le forum Autres langages
    Réponses: 10
    Dernier message: 19/07/2009, 20h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo