Pages: [1] 2   Bas de page
Imprimer
Auteur Fil de discussion: Eplith: Un nouveau langage de programmation  (Lu 1048 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« 03 Juin 2012, 12:21:31 »

Bonjour,

Eplith est un nouveau langage de programmation que j'ai entièrement créé.

Il est écrit en C++, flex et bison. J'ai également utilisé la boost library.

Eplith est un language interprété, simple et rapide.

Par exemple, pour une factorielle comme ci dessous, Lua met 0,004s à exécuter un code similaire, Ruby 0.008s et Eplith 0.006s ( données obtenues grâce au programme 'time' de mon ubuntu. )

Factorielle:

Code:
function factorial(n) {

if(n == 0) {

return 1;

} else {

return n * factorial(n - 1);

}

}

puts(factorial(18)); // Prints 18!

Voilà la documentation ( encore incomplète ): https://github.com/Quent42340/Eplith/wiki

J'ai compilé une version de mon interpréteur que vous pouvez télécharger ici: https://github.com/downloads/Quent42340/Eplith/Eplith ( compilé sous linux x86_64 )

Voici une version iPhone: https://github.com/downloads/Quent42340/Eplith/Eplith-0.1a-iPhone

Eplith sur Twitter: http://twitter.com/eplith

Eplith devBlog: http://eplith-language.blogspot.fr/

Adresse email consacrée à Eplith: eplith.language@gmail.com

NB: Eplith est fait pour être compilé sous un système de type Unix.

Voilà !

PS: Le lien ci dessous est le lien de la tarball, c'est à dire de l'archive contenant les sources de cette version. Merci de vous en tenir à la licence incluse dans cette archive.

PS2: Eplith est également compilable sur iPhone ( je l'ai fait sur mon iPhone 4 ) avec les outils appropriés.

Qu'en pensez-vous ?

Tarball: https://github.com/Quent42340/Eplith/zipball/v0.1a
« Dernière édition: 03 Juin 2012, 21:17:29 par Quent42340 » Journalisée

PypeBros Hors ligne
Hero Member
*****
Messages: 710


Voir le profil WWW
Posez-vous les bonnes questions

« Réponse #1 : 03 Juin 2012, 13:35:28 »

belles performances de s'approcher tout seul du niveau de Lua, même si je ne suis pas suffisamment expert de ce langage pour savoir si la factorielle est un bon représentant de ce qu'il peut atteindre.

Par contre, je dois avouer que je n'ai pas trouvé dans ta présentation sur github de réponse à la question qui me chatouille la langue: quel objectif souhaitais tu atteindre qui t'as fait choisir de développer un nouveau langage ?
Journalisée

Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #2 : 03 Juin 2012, 13:40:20 »

En fait si j'ai créé Eplith, au départ c'était pour m'améliorer, connaître plein de nouvelles choses en programmation, tout ça, mais maintenant que je l'ai fait j'ai envie d'en faire un vrai langage qui viendra se ranger aux côtés de Lua et de Ruby, même si c'est un peu prétentieux..
Journalisée

Darkmath Hors ligne
Administrateur
*****
Messages: 521


Voir le profil WWW
« Réponse #3 : 03 Juin 2012, 14:06:55 »

Se ranger à leurs côté, ok; mais avec quelles différences?
Pourquoi utiliser Eplith plutôt qu'un de ces autres langages?
Par ailleurs, es-tu seul à travailler sur ce langage et si oui, comptes-tu le rester?
Journalisée

Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #4 : 03 Juin 2012, 14:23:59 »

Se ranger à leurs côté, ok; mais avec quelles différences?

Justement, faut que je continue à améliorer Eplith pour en faire un langage à part entière. Et donc lui rajouter quelques fonctions que Lua n'aura pas, par exemple.

Pourquoi utiliser Eplith plutôt qu'un de ces autres langages?

Après ça c'est un choix.

Par ailleurs, es-tu seul à travailler sur ce langage et si oui, comptes-tu le rester?

Oui, je suis seul. Et non je ne compte pas le rester, mais pour l'instant je n'ai trouvé personne qui voudrait m'aider..
Journalisée

Darkmath Hors ligne
Administrateur
*****
Messages: 521


Voir le profil WWW
« Réponse #5 : 03 Juin 2012, 14:59:06 »

Après ça c'est un choix.

Bien sûr, mais il doit bien y avoir des raisons de faire ce choix... Je ne choisis pas de faire du Java ou du C++ au hasard, c'est parce que les langages ont des différences qu'on les choisit. On peut choisir un langage pour ces performances, pou sa simplicité, pour la tonne de bibliothèques qui l'accompagne mais sûrement pas au hasard.

Je comprends bien que ton langage est encore (très) jeune mais ma question visait surtout à comprendre quelles spécificités tu souhaites intégrer à ton langage que ne possèdent pas Lua ou ruby, par exemple.
Journalisée

Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #6 : 03 Juin 2012, 15:30:11 »

Ça pour l'instant, je ne sais pas encore. Je comptais faire un système équivalent aux métatables de Lua mais ce serait trop ressemblant, donc je ne sais pas...
Et l'avantage d'Eplith c'est qu'il est facilement intégrable à du code C++.
Bien sûr il faudrait que je mette le sample à jour, mais en gros c'est pas bien dur de faire interagir un script Eplith avec un programme C++.
J'ai également fait en sorte que le système d'ajout de fonctions C++ dans Eplith soit vraiment simple, pour pouvoir l'agrandir le plus possible.

EDIT: Il manque quelques fonctions à Lua que je compte bien rajouter à Eplith également.
Journalisée

lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #7 : 03 Juin 2012, 16:44:37 »

0.006s? donc 6 ms pour executer une vingtaine de fois la meme fonction recursivement? c'est enorme!

avec mon interpreteur, ca prend 0.0003s... mon pc date de 4 ans... et je suis loin d'avoir créé un interpreteur rapide

http://www.seccia.org
Journalisée
Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #8 : 03 Juin 2012, 16:54:03 »

En comparaison avec d'autres interpréteurs c'est pas si énorme que ça. Et ton interpréteur est fait pour Windows, je ne peux pas comparer, je suis sous Linux. Je suis quand même curieux de savoir comment tu as calculé ces 0.0003s.
Journalisée

lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #9 : 03 Juin 2012, 17:09:18 »

avec la fonction QueryPerformanceCounter... (centieme de ms)
Journalisée
Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #10 : 03 Juin 2012, 17:24:10 »

Est-ce que tu ne pourrais pas compiler une version linux que je pourrais exécuter pour comparer ? Parce-que 'time' compte toute l'exécution de lui-même et du programme qui lui est passé en argument. Et je ne sais pas comment fonctionne ta fonction. Enfin si tu veux comparer bien sûr.
Journalisée

lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #11 : 03 Juin 2012, 17:32:00 »

ca tourne pas sous linux, c'est une logiciel que j'avais fait ya deja pas mal d'années qui tourne que sous windows.

actuellement je bosse sur un logiciel qui permettra de créer des jeux d'aventure point n click cross-platform

http://age.seccia.com
Journalisée
Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #12 : 03 Juin 2012, 17:33:47 »

Oui ok, enfin si tu peux éviter de faire de la pub pour tes projets sur la page de mon projet...
« Dernière édition: 03 Juin 2012, 20:48:29 par Quent42340 » Journalisée

PypeBros Hors ligne
Hero Member
*****
Messages: 710


Voir le profil WWW
Posez-vous les bonnes questions

« Réponse #13 : 04 Juin 2012, 09:06:07 »

'time' prend aussi en compte le chargement du programme en mémoire, l'interprétation du format ELF, la résolution des librairies, etc... et pas uniquement l'évaluation de la fonction. Si tu veux quelque-chose de convenable, il faut intégrer la mesure *dans ton code*, idéalement qqch comme
Code:
before = get_precise_time();
for (int i=0;i<65536;i++)
    benchmark();
after = get_precise_time();

timing = (after-before)/65536;

Evidemment "get_precise_time()" n'existe pas. Il faudra faire un tour sur StackOverflow() pour trouver la bonne.
Journalisée

Quent42340 Hors ligne
Jr. Member
**
Messages: 57


Voir le profil WWW
« Réponse #14 : 04 Juin 2012, 17:08:01 »

Merci PypeBros, je regarderais ça pour la prochaine version. Mais en fait le temps d'execution m'importe peu, Time me suffit pour avoir une idée d'où je me situe. Smiley
Journalisée

Pages: [1] 2   Haut de page
Imprimer

Aller à: