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

JavaScript Discussion :

jLang : extension du ECMAScript


Sujet :

JavaScript

  1. #1
    Membre habitu�
    Inscrit en
    Juin 2005
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Par d�faut jLang : extension du ECMAScript
    Bonjour,
    Pour r�pondre � mes besoins, j'ai �tendu la syntaxe du Javascript pour ajouter
    • la syntaxe de base orient�e objet
    • les namespaces
    • la r��criture des op�rateurs
    • l'inlining de fonction


    J'en ai profit� pour cr�er un site internet (en anglais) pour partager ce programme :

    http://www.jlang.org/

    Je viens de le mettre en ligne il y a quelques jours. Que penses-vous de ces ajouts faits au langage ?

    Voici un exemple de syntaxe :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace Library.Example {  
     
        private class Displayer {  
     
            public inline function sayHello() {  
                alert( 'Hello world' );  
            }  
        }  
     
        private var d = new Displayer();  
        d.sayHello();  
    }

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Citation Envoy� par Spirit 203 Voir le message
    Bonjour,
    Pour r�pondre � mes besoins, j'ai �tendu la syntaxe du Javascript pour ajouter
    • la syntaxe de base orient�e objet
    • les namespaces
    • la r��criture des op�rateurs
    • l'inlining de fonction


    J'en ai profit� pour cr�er un site internet (en anglais) pour partager ce programme :

    http://www.jlang.org/

    Je viens de le mettre en ligne il y a quelques jours. Que penses-vous de ces ajouts faits au langage ?

    Voici un exemple de syntaxe :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace Library.Example {  
     
        private class Displayer {  
     
            public inline function sayHello() {  
                alert( 'Hello world' );  
            }  
        }  
     
        private var d = new Displayer();  
        d.sayHello();  
    }
    Ben c'est un langage qui est une simple surcouche au JS, et apr�s quand on doit interagir avec le DOM on �crit �a comment ?

  3. #3
    Membre habitu�
    Inscrit en
    Juin 2005
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Par d�faut
    Justement, cr�er les specs d'une surcouche du langage javascript est trivial. En revanche, cr�er un transformateur l'est moins. Je ne m'amuse pas � dire "voici un nouveau langage, faites le transformateur". La justification de l'existence du site est que je met � la disposition de la communaut� un transformateur de cette surcouche vers le javascript.

    On peut donc �crire un script avec cette surcouche, appliquer la transformation, et ex�cuter le r�sultat dans un navigateur.

  4. #4
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    je n'ai pas tout compris concernant l'impl�mentation direct au seins d'une page html :-/

  5. #5
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    Bonjour

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace Library.Example {  
     
        private class Displayer {  
     
            public inline function sayHello() {  
                alert( 'Hello world' );  
            }  
        }  
     
        private var d = new Displayer();  
        d.sayHello();  
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    jlangc -o test.js test.jl
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function b ()  
    {  
    }  
     
    b.prototype.sayHello = function sayHello () {  
        alert("Hello world");  
    };  
    alert("Hello world");
    Voil� le genre de chose qu'ici j'appelais "une satisfaction intellectuelle encombrante".

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre habitu�
    Inscrit en
    Juin 2005
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Par d�faut
    Je reconnais que l'ajout de la syntaxe orient�e objet n'�tait pas n�cessaire (et d'ailleurs, ne m'a quasiment rien co�t� en temps - justes quelques heures -), mais il y a d'autres fonctionnalit�s que je ne pense pas pouvoir qualifier de "satisfaction intellectuelle encombrante" :

    http://www.jlang.org/Compatibility

  7. #7
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Class = function (extend, body) {
       theClass = function () {
     
       if ((typeof(body) == 'undefined') && (typeof(extend) == 'object')) {
          for (property in extend) {
           this[property] = extend[property];
          }
       } else if (typeof(body) == 'object') {
          if(typeof(extend) == 'function') {
             this.superclass = extend;
             this.prototype = extend;
             this.superclass();
             delete this.superclass;
          }
          for (property in body) {
           this[property] = body[property];
          }
       } 
     
       if (typeof this.initilize == 'function')
          this.initilize();
       };
       return theClass;
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    classA = Class ({
      name: 'truc',
      alert: function () {
        alert(this.name);
      },
      initilize: function () {
        alert('init classA object');
      }
    });
    classB = Class (classA, {//class  classB inherit classA...
      prenom: 'chose',
      alert: function () {
        alert(this.name + ' ' + this.prenom);
      },
      initilize: function () {
        alert('init classB object');
      }
    });
    var A = new classA();
    var B = new classB();
     
    A.alert();
    B.alert();
    il y a plein de fa�on de faire de l'h�ritage et de la d�finition de classe en JavaScript
    la programmation � objet � base de classe n'est pas obligatoirement meilleure que celle � base de prototype. et il est souvent bien plus simple d'apprendre le langage que de passer par un traducteur qui de toute fa�on aura des limite et ne permettra pas d'�crire aussi facilement que dans le langage d'origine.

    ton jl se veux proche de C++ ou java mais il est obligatoirement diff�rent et t'impose des limites quant � ton outils jlanc
    tu as donc les limite de java comme par exemple l'impossibilit� de cr�e des objet sans classe et les limite de ton outil certain subtilit� de java ne pouvant �tre traduite en js

    mais c'est toujours amusant de jouer avec ce genre de chose.
    �a donne parfois des proches �tonnantes
    pour les pro de Objective-C (Langage C objet dynamique et compil�) il y a
    Objective-J
    Objective-J est un fichier js de 200k
    la version publique en fait 24k

    A+JYT

Discussions similaires

  1. Comment r�cup�rer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    R�ponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Quel SGBD correspond aux fichiers � extension .DAT
    Par jcpitaud dans le forum Autres SGBD
    R�ponses: 4
    Dernier message: 12/04/2006, 20h11
  3. [TP]rendre une unité avec l'extension tpu
    Par mmm dans le forum Turbo Pascal
    R�ponses: 2
    Dernier message: 28/10/2003, 20h09
  4. Manipulation de fichiers - gestion d'extensions
    Par ulukai dans le forum Linux
    R�ponses: 13
    Dernier message: 02/07/2003, 15h28
  5. Algo de tri, extension
    Par Mouse dans le forum Langage SQL
    R�ponses: 5
    Dernier message: 27/02/2003, 00h14

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