Partage
  • Partager sur Facebook
  • Partager sur Twitter

Language de programmation en C

Anonyme
26 avril 2013 à 14:34:15

Bonjour, moi c'est Adre892. Je suis assez calé sur le C.

En savoir plus sur le projet...

Genèse

Un jour j'ai vu dans le forum du site du zéro quelqu'un qui voulait (aussi) faire un langage de programmation, puis 3 mois après je me suis pourquoi pas créer la variable String du C++ en C. Je l'ai faite puis il y a 2,3 jours je me suis dis "Je vais faire un langage de programmation a partir du C". J'ai décidé de l’appeler Le 

C Dérivé

Généralités et avancement

Ce sera un langage de programmation qui sera beaucoup basé sur l'Anglais. Je vais vous mettre un exemple de code en C puis en C Dérivé(sans les includes) :

C

int main(int argc, const char * argv[])
{
int nb,result;

     printf("veuillez tapez un nombre ");
     scanf("%d",&nb);
result = nb + 2;
printf("%d + 2 = %d\n",nb, result);

return 0
}


C Dérivé :

#include "variable.h"

int main(int argc, const char * argv[])
{
  nomber nb,result;
    write("veuillez taper un nombre ");
    readNomber(&nb);
result = nb + 2;
    writeNomber(nb);
    write(" + 2 = ");
    writeNomber(result);

return 0
}



et sa donne :

Veuillez tapez un nombre 20

20 + 2 = 22

Pour les deux.

Objectifs

Mon objectifs est de pouvoir faire programmer des personnes sans avoir trop a apprendre car le C Dérivé est très très proche voir pareil que l'Anglais. Il va avoir d'autre bibliothèque(parce-que la il n'y en a que 2 : le write qui permet d'écrire et le read qui permet de récupérer se qui a été tapez par l'utilisateur) que vous inventerez. Oui c'est mon langage et celui de tous les zéros aussi donc Vous.

Le projet et son originalité

Je le dis et le re-dit ce langage sera destiné au programmeurs débutant bien sur les autres pourront aussi l'utiliser mais je le fait en pensent a ceux qui n'y connaisse rien en programmation. Pourquoi ? Parce-que un ami a moi est un peu flemmard et ne veut pas apprendre les langages de programmation donc je le lui proposerai. Et pour aider ceux qui n'arrive pas a se souvenir des autres langage. Comment ? Le C Dérivé est basé sur les mots Anglais donc comme normalement tous le monde a des bonnes base sur l'anglais ça va être facile d'apprendre.


Recrutement

Je recrute tous le monde, je cherche des idées de bibliothèques. Comment en proposer une rien de plus simple m'envoyer votre idées par MP (Ne le commencer pas avant de m'avoir dit votre idées !) si j'accepte vous pouvez commencer la bibliothèque et me l'envoyer dès quelle est faite. Pour cela me re-envoyer un MP(dans le même sujet) et je vous donnerait mon adresse mail.

Il faudra m'envoyer le .c et le .h en fichier joint dans les mails.

Merci.



-
Edité par Anonyme 26 avril 2013 à 14:57:03

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 14:47:13

Bonjour à toi, A part utiliser des mots plus parlant pour les personnes novices pour coder, cela servira a quoi?

Grâce à ton langage tu propose de ne pas apprendre un langage très connu et d'apprendre un autre langage qui est le tiens. Désolé ce n'est pas pour troller mais j'aimerais bien savoir les autres avantages d'une refonte complète d'un puissant langage

-
Edité par Stazus 26 avril 2013 à 14:53:09

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 14:55:41

C'est une lib que tu veux faire en fait ?

Le C Dérivé est basé sur les mots Anglais donc comme normalement tous le monde a des bonnes base sur l'anglais ça va être facile d'apprendre.

C'est rarement basé sur des mots russes les langages de programmation :)


nomber nb,result;

Jte laisse corriger :)

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 15:07:24

Un langage basé sur sur l'anglais , Ça me rappelle trop  en PASCAL , un langage facile pour débutant , qui utilise write/read

-
Edité par kays0105 26 avril 2013 à 15:08:42

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 15:15:04

Stazus a écrit

Désolé ce n'est pas pour troller mais j'aimerais bien savoir les autres avantages d'une refonte complète d'un puissant langage

-
Edité par Stazus il y a 16 minutes


ba en fait a rien.:'(
  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 15:18:53

Après, cela peu être une bonne expérience pour toi afin de t'améliorer dans ce langage ^^

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 15:36:50

Tu peux toujours faire des libs qui permettent de faire certaines choses plus simplement et rapidement par exemple, ça resterait dans ton idée mais il faut que tu cibles ce que tu veux faire.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 17:08:00

une lib de créer elle permet de faire des retour a la ligne plus facilement :

void retour(nbRetour)
{
    while(nbRetour != 0)
    {
        printf("\n");
        nbRetour--;
    }
}

le main :

printf("........................");
retour(5);

le résultat ? le voici :

...............................




Fin du programme

sa fait le nombre de retour a la ligne que tu veux.



  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 17:16:30

je sais pas comment l'appeller vous pouvez me donner une idé?

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 17:24:54

*troll* C useless */troll*

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 17:25:40

Xviniette a écrit:

*troll* C useless */troll*

sa veut dire quoi ?



  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 17:28:10

Ah je comprends mieux pourquoi tu as écrit "nomber" maintenant :) (C'est number en anglais, et useless veut dire inutile si jamais)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 17:34:35

c'est pas inutile !
  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 17:51:48

Tout ce que tu fais, c'est renommer des fonctions et écrire des fonctions basiques avec des noms franglais, qui prendrait 30 secondes à être codées ? Ça ne sert à rien, même pour s'entraîner à utiliser le C ! Oui, car renommer des fonctions même un débutant sait le faire, et toute personne sachant utiliser les boucles et printf (bases) pourraient écrire une fonction retour. Et si c'est vraiment pour t'entrainer, ne le montre pas sur un forum de présentation de projets.

Ensuite, tu dis dans ta présentation qu'un de tes amis est un peu feignant et ne veux pas apprendre un langage de programmation. S'il ne veut pas apprendre ça, dis lui que c'est qu'il ne veut pas programmer.

Enfin, tu dis que ça serait plus simple à retenir. Mouais, retenir des noms un coup anglais (write), un coup français (retour), je ne suis pas sûr que c'est plus simple que retenir printf.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 17:51:50

Salut, tu peux programmer pour des micro-contrôleurs avec ton langage ?

Et j'aimerais une lib qui implémente DoubleWhile condition1 , condition2 , un nouveau mot clé qui permet de faire deux boucles While imbriquées avec une seule ligne. Ce serait pratique. Si tu arrive à implémenter TripolWhile , ce serait parfait.

Merci, et bonne chance.

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 18:04:48

@dri1 a écrit:

Et j'aimerais une lib qui implémente DoubleWhile condition1 , condition2 , un nouveau mot clé qui permet de faire deux boucles While imbriquées avec une seule ligne. Ce serait pratique. Si tu arrive à implémenter TripolWhile , ce serait parfait.

Pas très souple ta solution.

Idéalement, il vaudrait mieux avec un mot-clef EllipseWhile condition 1, condition 2, ..., condition n qui permet de faire n boucles Whileimbriquées avec une seule ligne. Ce qui permettrait de remplacer en une seule fois toutes les précédentes, en plus de la boucle whilestandard.

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 18:45:54

Si tu imbriques deux boucles, c'est que des paramètres vont varier selon les boucles donc tu dois bien écrire ce code quelque part, les conditions ne suffisent pas.
  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 18:57:59

Mais non car grâce à la fonction EllipseInstruction number boucle, instruction1, instruction2, … tu peux déterminer les instruction à mettre à chacune !

C'est ça la beauté de la chose. L'exercice est plutôt délicat mais ça en vaut la peine, n'est pas codeur C qui veut et pratiquement tout bon codeur C a une fonction similaire dans sa trousse à outil.

  • Partager sur Facebook
  • Partager sur Twitter
Je soutiens activement le projet Fedora.
26 avril 2013 à 19:08:50

ça ne fait qu'une instruction par boucle, c'est assez rare. Si le but est d'en répéter une seule, en général il existe déjà des fonctions qui le font.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2013 à 19:18:56

Renault s'est mal exprimé je crois, si on regarde son prototype, on voit très nettement (et Dieu sait que suis miope, non myaupe, non miaupe, oh et puis zut) : EllipseInstruction number boucle, instruction1, instruction2, … .

number est donc le nombre de boucles imbriqués, boucle renvoie à EllipseWhile et enfin les différents groupes d'instructions séparés par des virgules. En fait, ces instructions sont réparties de manière symétrique (les premières et les dernières appartiennent en fait à la grande boucle). Si on ne veut qu'il ne se passe rien à un endroit, on met le mot clé nothing, à créer pour l'occasion.

C'est clair ?

-
Edité par Anonyme 26 avril 2013 à 19:22:21

  • Partager sur Facebook
  • Partager sur Twitter
26 avril 2013 à 19:30:17

C'est si beau, je ne l'aurais pas mieux dit moi même.

Avec otus ces éléments il y a de quoi bâtir une bibliothèque bien sympathique, puissante et qui rendra la programmation plus simple et élégante !

  • Partager sur Facebook
  • Partager sur Twitter
Je soutiens activement le projet Fedora.
26 avril 2013 à 22:33:36

En te débrouillant bien, tu peux créer un OS dans une seule de ces boucles. Ça me paraît plutôt intéressant !

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 avril 2013 à 13:54:25

@dri1 a écrit:

Renault s'est mal exprimé je crois, si on regarde son prototype, on voit très nettement (et Dieu sait que suis miope, non myaupe, non miaupe, oh et puis zut) :
EllipseInstruction number boucle, instruction1, instruction2, … .

number est donc le nombre de boucles imbriqués, boucle renvoie à EllipseWhile et enfin les différents groupes d'instructions séparés par des virgules. En fait, ces instructions sont réparties de manière symétrique (les premières et les dernières appartiennent en fait à la grande boucle). Si on ne veut qu'il ne se passe rien à un endroit, on met le mot clé nothing, à créer pour l'occasion.

C'est clair ?

-
Edité par @dri1 il y a environ 18 heures

Je ne vois pas a quoi servirai cette boucle pouvez-vous me faire un exemple ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 avril 2013 à 14:46:28

Si c'est comme ça je m'en vais du site du zéro. Le niveau commence à être trop élevé pour moi.

Direction le site du moins un...

PS : Moi je veux une fonction MakeCoffee() qui quand on l'appelle fait le café, sans se prendre la tête avec les descripteurs HID / profils USB / bus I2C machin machin parce que j'en ai marre ça fait trop de boulot et j'ai besoin de café.

Merci.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 avril 2013 à 15:01:44

Adre892 a écrit:

Je ne vois pas a quoi servirai cette boucle pouvez-vous me faire un exemple ?

En fait, là, ils sont tous en train de moquer de toi parce que tu débute. C'est la nouvelle mode dans le staff du Site du Zéro !

Pour ton projet, le problème ici est que tu ne réalise que des choses triviales, alors que les vrais problèmes restent à résoudre. Par exemple, à la première ligne de code effectif de ton exemple, je lis ça : const char * argv[] .Tu admettras que c'est quand même difficile à lire pour quelqu'un qui n'a jamais programmé (d'ailleurs même pour un débutant en programmation, c'est quoi au juste ce code ? Un tableau (d'adresse constante) de pointeurs sur des caractères ? Et c'est quoi un pointeur ? Oups, on arrive déjà dans du très bas niveau...).

Si ton projet te motive vraiment, en revanche, tu peux faire ça de façon beaucoup plus intéressante en réalisant un interpréteur.

-
Edité par Anonyme 27 avril 2013 à 15:02:35

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 avril 2013 à 15:08:53

je vais demander de faire fermer mon sujet parce que là sa devient n'importe quoi !
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 avril 2013 à 15:17:22

j'ai envoyé une demande normalement il va être supprimer.
  • Partager sur Facebook
  • Partager sur Twitter
27 avril 2013 à 15:33:53

Gwenn a écrit:

En fait, là, ils sont tous en train de moquer de toi parce que tu débute. C'est la nouvelle mode dans le staff du Site du Zéro !

Je ne pense pas, être débutant n'est pas un motif de moquerie, on est tous passés par là et c'est normal de se planter, de réinventer la roue ou de ne pas comprendre des tas de principes.

Par contre, quel que soit son niveau, la réflexion et la cohérence sont fortement recommandés, et ne nécessitent aucune compétence particulière - donc il n'y a pas de problème de "débutant" qui tienne sur ce point.

Je prends ton projet en exemple, Adre892. Si je comprends bien, le but à l'origine était de faire un langage proche du C mais plus simple, plus proche du langage naturel. OK, pourquoi pas, c'est un projet intéressant sur bien des points (une recherche sur les langages de programmation en langage naturel devrait te donner quelques idées des réalisations existantes).

Là où tu t'y es mal pris - ce qui explique les réactions obtenues - c'est que tu a enchaîné un certain nombre d'erreurs :

  • Tu aurais du te demander ce qu'il y a de compliqué, d'éloigné de l'anglais (le langage naturel, donc) dans le C pour le rendre plus clair. Visiblement, ça n'a pas été fait, puisque dans tes exemples ce que tu remplaces est déjà ce qui est le plus proche de l'anglais dans le C : "int" (pour "integer", entier), printf ("print formatted", affichage formaté), etc. Par contre, comme l'a dit Gwenn, tu n'as pas touché à ce qui est difficilement compréhensible en C : les notations de tableaux, de pointeurs, d'adresses, ...
  • En résumé, ta principale erreur est d'avoir voulu mélanger deux choses incompatibles : "faire un langage proche du langage naturel", et "faire un langage proche du C".
  • Tu veux baser ton langage sur l'anglais, mais tu prouves que tu ne connais absolument pas cette langue ("nomber") (PS : d'ailleurs "number", nombre, est moins clair que l'original, "integer", qui montre bien que la variable contient un entier et pas n'importe quel nombre). Le pire c'est que tu insistes dessus en disant que le fait que ton langage soit proche de l'anglais est son principal avantage.
  • Ta présentation est très peu soignée et émaillée d'une grande quantité de fautes diverses, ce qui ne donne pas du tout une image de sérieux.
  • Enfin, tu recrutes des gens sur un sujet mal définit, sans qu'on sache vraiment pourquoi faire ni dans quel but.

Cela dit, si tu t'intéresses vraiment à ce genre de concept, je t'invite à regarder du côté de Linotte : http://langagelinotte.free.fr/wordpress/

@Gwenn : une lecture qui te fera du bien.

-
Edité par SpaceFox 27 avril 2013 à 15:35:33

  • Partager sur Facebook
  • Partager sur Twitter