Journal Nouveau langage de programmation : Parangon-Lang

Posté par .
8
31
mai
2012

Bonjour,

Ce nouveau langage se veut être un héritier des langages Basic.
Il se veut simple mais moderne. ça particulier, c'est qu'il est un langage à prototypes.
Les commandes de base offertes par le langage seront réduites au strict minimum. Un système de greffon va être ajouté afin détendre le langage par l'ajout de modules (en Java, Python et Ruby).

Voici un exemple très simple mais qui démontre la légèreté de la syntaxe :

def Capitale de la France

fun main
    capitale := ""
    begin
        while capitale != "Paris" : {
            print "Quelle est la capitale de la France ?"
            input capitale
        }
        print "Bravo, tu es trop fort !"

Le langage est encore jeune. La documentation est très faible car elle se résume pour l'instant à cette page : http://parangon-lang.googlecode.com/svn/documentations/10minutes.html

L'environnement de développement est simple mais fonctionnelle :

Parangon-lang Studio

Pour les curieux, c'est par ici : http://code.google.com/p/parangon-lang/

Le code n'est pas encore disponible pour des raisons purement pratiques. Il le sera sous la licence GPL V2.

PS : ce langage est basé sur mes travaux effectués sur le langage Linotte.

  • # Juste une question

    Posté par (page perso) . Évalué à 7.

    Est-ce que ça tourne sous MultiDeskOS ?

    * Ils vendront Usenet^W les boites noires quand on aura fini de les remplir.

  • # y'a un interpreteur gforth dedans ?

    Posté par . Évalué à 2.

    y'a un interpreteur gforth dedans ?

  • # À propos d'un nouveau langage… (rien à voir avec ton projet)

    Posté par (page perso) . Évalué à 1.

    Des langages, il y en a à la pelle. Par contre c'est un peu la misère au niveau des IDE, du coup je me demande si il ne faudrait pas commencer par l'ide, et adapter un langage en fonction de ce que l'on a besoin pour avoir un truc vraiment homogène et pratique à utiliser. Je dois avouer que intellij c'est quand même vraiment sympa à l'utilisation. Mais il y a des petits trucs, par exemple si on clic sur une fonction, on va à sa définition. Mais dans certains cas si plusieurs fonctions override une autre, il ne va pas savoir laquelle choisir.

    • [^] # Re: À propos d'un nouveau langage… (rien à voir avec ton projet)

      Posté par . Évalué à 5.

    • [^] # Re: À propos d'un nouveau langage… (rien à voir avec ton projet)

      Posté par (page perso) . Évalué à 6.

      Bonjour,

      J'ai eu l'occasion de travailler pendant plusieurs années avec Visual Studio .NET 2003 (ça remonte). Je ne suis pas du tout pro-Microsoft, mais j'ai toujours du reconnaitre à contre coeur que rien n'équivalait cet environnement. Complètement automatique au doigt et à l'oeil, et qui comprend les surcharges, avec documentation intégrée, système de projets assez efficace pour ce que j'en faisais, compilation rapide, coloration syntaxique suffisante (en fait, les mots-clé étaient colorés, mais ils sont très nombreux en Visual Basic).

      J'ai testé Eclipse, Netbeans, Anjuta, et je me suis résolu à utiliser Kate comme « environnement » sous Linux. Il m'a toujours convenu.

      Maintenant que tous les anti-Microsoft ont la souris sur « Inutile », je peux mettre en avant le « équivalait », au passé, de mon premier paragraphe. Un jour, j'ai testé KDevelop. Je me souviens encore d'un billet de blog que j'avais rédigé, et qui est maintenant effacé. C++, Qt, KDevelop, c'est le bonheur sublime qui m'a fait oublier la simplicité du Visual Basic, les fonctionnalités de .NET et l'intégration de Visual Studio. KDevelop est l'équivalent libre de tout ça, et est en plus bien meilleur.

      Outre le fait que ça gère les projets CMake, QMake, Makefile normal et complètement personnalisé, c'est multi-langages. Que ce soit pour le C++ (support first-class), le Python (support expérimental) et le PHP (support stable), il propose une coloration syntaxique poussée (mots-clé, mais aussi chaque variable, fonction, membre, attribut peut avoir sa couleur si on veut), une compréhension de code (erreurs à la compilation, sans devoir lancer GCC), refactoring (modifier le nom d'une variable propose de corriger toutes ses utilisations, même chose pour les attributs, classes, fonctions, méthodes, etc), c'est un bonheur à utiliser.

      Puis viennent les greffons Git, SVN et Mercurial (je pense), le support de GDB (un très bon support, avec pretty-print des types Qt, donc QString("machin") au lieu de QString object at 0x4f900000), les extraits de code, la documentation intégrée (HTML + Doxygen dans les en-tête qu'on utilise, avec support de la surcharge de fonctions), etc.

      À tester donc, par tous ceux qui font du C++. La création de projets est un tout petit peu longuette à mon gout, mais déjà très simple, et KDevelop aide vraiment dès que le projet est un peu gros, avec l'auto-complètement des attributs et méthodes possibles, mais aussi ses possibilités de refactoring. Son site web expose des fonctionnalités un peu plus avancées, comme créer une classe qui dérive d'une ou plusieurs autres, puis taper le nom d'une méthode virtuelle dans une des classes ascendantes, et hop, KDevelop complète le type de retour et tous les arguments. Puis, dans le .cpp, on tape à nouveau ce nom, et il ajoute automatiquement le « Type MaClasse::(paramètres){ … } ».

    • [^] # Re: À propos d'un nouveau langage… (rien à voir avec ton projet)

      Posté par . Évalué à 2.

      Sinon tu as smalltalk
      l'ide est fait pour le langage et inversement… au point que tu en es dépendant. Mais c'est vraiment un excellent environnement de dev

  • # Bravo!

    Posté par (page perso) . Évalué à 5.

    Je trouve impressionnant que tu fasse tant d'efforts pour créer un langage "accessible"
    Mais je me permettrais une critique de taille : il me semble que tu n'arrives pas a "renoncer".
    Le langage comporte des notions un peu subtiles pour un débutant (les prototypes en particulier).
    Du coup, ca fait un langage trop difficile pour un débutant et trop verbeux pour un utilisateur avance - bon j'avoue ne m'être fait une opinion que sur les quelques minutes de lecture de la page de documentation, mais c'est l'impression qui s'en dégage, pour moi en tout cas.
    Peut être devrais tu, disais-je "renoncer" à inclure trop de concepts dans ton langage quitte à le rendre moins puissant, ce n'est pas, me semble-t-il, son propos d'être utilisable pour produire des gros codes complexes, mais plutôt de donner à ceux qui le veulent, un moyen accessible de s'initier à la programmation.

    Mais l'idée d'avoir un langage simple possédant des primitives graphiques faciles a utiliser, bref un BASIC mais un peu plus moderne (fonctions, bloc try / catch, etc…) me semble très bonne.

    Ceci n'est pas une signature

    • [^] # Re: Bravo!

      Posté par . Évalué à 2.

      Merci pour ton retour et tes encouragements.

      La notion de prototypes est venue naturellement quand j'ai voulu ajouter la possibilité d'étendre le langage par l'intermédiaire de greffons.

      Il fallait pour cela, apporter aux objets du langage, une notion "d'extensibilité", et c'est comme cela que sont arrivés les prototypes !

      Ainsi, la notion de greffons s'appuie tout simplement sur les prototypes. Une méthode fonctionnelle d'un objet est soit une méthode du programme ajouté par le développeur (par l'intermédiaire de la commande ASSIGN) ou alors une méthode d'un autre objet qui ne fait pas partie du langage même (et même d'un autre langage de programmation avec la jsr223).

      Je te rejoins sur le fait que ce n'est pas très simple à utiliser pour un débutant. ça peut même faire peur !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.