salut, je voudrai savoir qu'est ce qui m'empêche de créer un nouveau language informatique si j'ai pas envie de me farcir le language C ou autre ? oui c'est bp plus dur d'en créer un que d'en apprendre un tout fait , mais serait ce possible en réalité ?
j'ai pas la prétention de vouloir le faire rassurez vous car en programation j'y connais rien.
Juste par curiosité.
merci @+
"Rien n'est impossible , mais bien peu de choses sont réalisables,c'est le grand jeu de la vie"
Rien ne t'en empêche, si tu as le temps et les connaissances pour développer les outils adéquats (compilateur, linker,....). Mais si ça reste un outil de programmation perso, en cas de problème tu ne pourra compter que sur toi pour le débugger
22/07/2006 - 10h08
domlefebvre
Date d'inscription
mai 2005
Localisation
Voisins le bretonneux (78)
Âge
54
Messages
701
Re : language informatique
Bonjour,
Créer un langage informatique! Cela demande des connaissances approfondies en logique, en informatique théorique, en théorie et technique des compilateurs et en programmation. Entre autres, pour créer un langage, il faut d'abord connaître un langage informatique, le minimum minimorum étant le langage machine (rien que ça...).
Alors, crois moi, il est largement plus simple d'apprendre le C!
Ceci, dit, c'est sans doute une aventure passionnante! Si tu veux une idée de la chose, lit le "Compiler construction" de F. Bauer. C'est un relativement vieux bouquin (la deuxième édition date de 1975) mais c'est le meilleur que je connaisse sur la construction d'un compilateur. Il aborde les sujets théoriques la grammaire et la syntaxe, mais aussi tous les "petits" problèmes pratiques, et quand je dis "petits"....
22/07/2006 - 10h40
erik
Date d'inscription
août 2004
Messages
3 097
Re : language informatique
Pour pouvoir créer un nouveau langage il faut déja en connaitre un (de préférence le c ou le c++).
En effet une fois que tu as défini ton langage (sur le papier), il va falloir que tu écrives un compilateur (ou un interpréteur) pour que ton "code nouveau langage" puisse s'executer sur une machine. Et ce compilateur est un programme qu'il va falloir écrire dans un langage qui existe déja.
Si tu passes à proximité d'une bibliothèque scientifique, jette un oeil à la bible de l'écriture des compilateur : A.V. Aho, R. Sethi et J.D. Ullman, « Compilateurs, principes, techniques et outils », InterEditions, cela te donnera une idées des connaissance qu'il faut avoir pour écrire un nouveau langage
23/07/2006 - 01h30
Boson_2_higgs
Date d'inscription
octobre 2004
Localisation
Tours(37)
Âge
24
Messages
1 333
Re : language informatique
Bonjour !
Rassurez vous je posai la question par simple curiosité mais cette année on nous avait inculqué ( ? ) des bases de C à l'IUT et ça me paraissait assez charabiatique ! enfin c'était aussi très mal expliqué donc je me suis dis : pourquoi pas faire plus simple ?!
mais il est vrai que je n'ai aucune conaissance particulière et que cela risque d'être un gros problème!
le language machine c'est très proche du binaire nan?
merci @+
"Rien n'est impossible , mais bien peu de choses sont réalisables,c'est le grand jeu de la vie"
23/07/2006 - 01h34
umfred
Date d'inscription
mars 2006
Âge
33
Messages
1 344
Re : language informatique
le binaire est la base au dessus tu as l'assembleur (code machine qui utilise des mnémoniques) ensuite tu as les langages évoluées (C, C++, Pascal) et au dessus le langage orienté oblet (VB, VisualC++, Delphi, etc etc)
Juste une petite précision. Il ne faut pas confondre le binaire, qui est un "alphabet", une base dans laquelle on exprime des inofrmations, avec le langage machine. Ce dernier est un ensemble de grammaire et de syntaxe directement compréhensible par le processeur. On écrit le langage machine en hexa, ou dans qq cas particuliers (et anciens!) en octal (les fana d'HP se souviennent de la programmation des HP1000...)
Dernière modification par JPL ; 23/07/2006 à 18h01.
24/07/2006 - 01h21
Boson_2_higgs
Date d'inscription
octobre 2004
Localisation
Tours(37)
Âge
24
Messages
1 333
Re : langage informatique
Ah d'accord ! je te remercie ainsi que tous les autres pour vos précisions. Néanmoins je me demande : comment au tout début ont ils fait pour que la machine comprenne le language puisque rien n'avait ete inventé !? ils sont passé du papier à la machine et poum ça a marché ? merci de m'éclairer
a+
"Rien n'est impossible , mais bien peu de choses sont réalisables,c'est le grand jeu de la vie"
24/07/2006 - 02h34
black templar
Date d'inscription
février 2004
Localisation
Lille
Âge
23
Messages
604
Re : langage informatique
C'est simple, un P.C. marche à l'électricité ... Oui bon, je sais, tout le monde sait ça.
Dans les circuit, soit le courant passe (1), soit il ne passe pas (0).
Après, avec les composant électronique, on a créé des système permettant d'accomplir différentes taches (comme des additioneurs binaires).
De là, on a batit différent niveau d'architecture dans le PC, avec des languages de plus en plus de haut niveau. Et voila.
Mais à la base, tout est géré par de la logique, l'algèbre de boole (ou un truc comme ça )
Même la mémoire est à la base un circuit.
(J'espère que j'ai bien parlé Français, je suis fatigué ...
Bonne nuit.)
A+
24/07/2006 - 15h56
JPL
Date d'inscription
septembre 2003
Localisation
Banlieue bordelaise
Messages
41 566
Re : langage informatique
Envoyé par Boson_2_higgs
Ah d'accord ! je te remercie ainsi que tous les autres pour vos précisions. Néanmoins je me demande : comment au tout début ont ils fait pour que la machine comprenne le language puisque rien n'avait ete inventé !? ils sont passé du papier à la machine et poum ça a marché ? merci de m'éclairer
a+
Un processeur est un circuit dans lequel sont câblées un certain nombre d'opérations arithmétiques et logiques (en fait il n'y a pas de différence, ce sont toujours des opérations logiques) et des espaces (registres : longtemps de 8 bits, actuellement de 32 bits pour la plupart des processeurs) pour manipuler les données qui subissent ces opérations. Chaque opération est désignée par un numéro différent et la programmation consiste à créer une séquences d'opérations en énumérant les numéros des opérations successives à effectuer. Chaque fois qu'on envoie un numéro dans le processeur l'opération correspondante est effectuée sur les données qu'il contient. Il faut aussi entrer les données dans le processeur, et sortir les résultats mais ce n'est pas très différent.
Autrement dit tout processeur contient un langage machine qui est constitué par l'éventails des opérations qu'il peut exécuter et leur numéro. Le langage d'assemblage est un moyen un peu moins fastidieux de manipuler le langage machine (on n'a pas besoin de connaître ces numéros) et les langages évolués sont un moyen de faire des programmes complexes sans se soucier, ou presque, de ces détails de basse intendance parce que c'est le compilateur qui s'en charge.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
Ah d'accord ! je te remercie ainsi que tous les autres pour vos précisions. Néanmoins je me demande : comment au tout début ont ils fait pour que la machine comprenne le language puisque rien n'avait ete inventé !? ils sont passé du papier à la machine et poum ça a marché ? merci de m'éclairer
a+
On peut parfaitement coder des programmes simples directement en language machine, pour écrire des shellcodes par exemple (c'est la seule utilité réelle aujourd'hui). On peut de la même manière coder le premier assembleur en mettant le programme assemblé"à la main" dans une petite mémoire genre eeprom.
24/07/2006 - 16h12
JPL
Date d'inscription
septembre 2003
Localisation
Banlieue bordelaise
Messages
41 566
Re : langage informatique
Langage, overmind (désolé).
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
24/07/2006 - 18h07
umfred
Date d'inscription
mars 2006
Âge
33
Messages
1 344
Re : langage informatique
J'ai entendu dire qu'au tout début, pour rentrer le programme dans une eeprom, c'était un opérateur qui au moyen de switch, composait le code binaire de l'instruction (instruction sur 8 bits = 8 switchs), puis appuyait sur un bouton pour valider celle-ci (signal Clock en fait).
Bien sur le programme a été traduit en binaire avant .
Ensuite, ça a été le système à carte perforée (style orgue de barbarie) qui a grandement facilité le process de programmation.
Et enfin (je pense), le système actuel (avec les ports de l'époque) de boitier de programmation avec support DIL.
24/07/2006 - 19h08
domlefebvre
Date d'inscription
mai 2005
Localisation
Voisins le bretonneux (78)
Âge
54
Messages
701
Re : langage informatique
Envoyé par umfred
J'ai entendu dire qu'au tout début, pour rentrer le programme dans une eeprom, c'était un opérateur qui au moyen de switch, composait le code binaire de l'instruction (instruction sur 8 bits = 8 switchs), puis appuyait sur un bouton pour valider celle-ci (signal Clock en fait).
Bien sur le programme a été traduit en binaire avant .
Ensuite, ça a été le système à carte perforée (style orgue de barbarie) qui a grandement facilité le process de programmation.
Et enfin (je pense), le système actuel (avec les ports de l'époque) de boitier de programmation avec support DIL.
C'est presque ça! D'abord, il ne s'agissait pas d'EEPROM, techno qui n'est apparue que tardivement... Au début des années 80, c'était des EPROMs, et avant des mémoires à tore ou à transistors! Dans la marine, en 1980 nous faisions de la recherche en traitement du signal acoustique sur des HP1000 qui possédaient 16 ko de mémoire à tores. On les programmait avec des rubans perforés. Et non, le programme n'était pas traduit en binaire. Voilà comment on procédait:
on écrivait notre algo de calcul que l'on traduisait en organigramme, puis on potassait le manuel du processeur qui indiquait le code octal de chaque instruction et on constituait la liste d'instructions octal, que l'on entrait sur une espèce de série de clés.
Heureusement, on a très vite disposé d'un bon compilateur FORTRAN qui nous a épargné tout ça. Le vrai problème avec les compilateurs, c'était leur taux d'expansion: une instruction FORTRAN produisait entre 10 et 20 instructions machines. A 2 ou 3 octets l'instruction machine, nos 16 ko de mémoire étaient vite saturés. Donc on codait en langage machine lorsqu'on n'avait plus de place...
C'était il y a seulement 25 ans! Et je ne le referai plus
[QUOTE=domlefebvreC'était il y a seulement 25 ans! Et je ne le referai plus [/QUOTE]
Euh... probablement plus tôt parce qu'en 81 (il y a 25 ans) les mémoires à tores n'étaient plus employées depuis pas mal de temps et le premier IBM PC naissait.
Ceci étant dit j'ai fait mes premiers tout petits programmes sur un calculateur Wang qui utilisait certainement une mémoire à tores. Depuis j'ai tout oublié.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac