Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

langage informatique



  1. #1
    Boson_2_higgs

    langage informatique


    ------

    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"

  2. Publicité
  3. #2
    umfred

    Re : language informatique

    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

  4. #3
    domlefebvre

    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"....

  5. #4
    erik

    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

  6. A voir en vidéo sur Futura
  7. #5
    Boson_2_higgs

    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"

  8. #6
    umfred

    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)

  9. Publicité
  10. #7
    domlefebvre

    Re : langage informatique

    Bonjour,

    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 à 17h01.

  11. #8
    Boson_2_higgs

    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"

  12. #9
    black templar

    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+

  13. #10
    JPL
    Responsable des forums

    Re : langage informatique

    Citation 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

  14. #11
    overmind

    Re : langage informatique

    Citation 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+
    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.

  15. #12
    JPL
    Responsable des forums

    Re : langage informatique

    Langage, overmind (désolé).
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  16. Publicité
  17. #13
    umfred

    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.

  18. #14
    domlefebvre

    Re : langage informatique

    Citation 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

  19. #15
    JPL
    Responsable des forums

    Re : langage informatique

    [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

  20. #16
    domlefebvre

    Re : langage informatique

    Citation Envoyé par JPL
    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é.
    Et non malheureusement! J'ai fait ma thèse sur un HP1000 modèle E, en service dans la Marine Nationale entre 1979 et 1981! Note bien que ce n'était pas le dernier modèle, mais c'était le seul adapté à voler sur Atlantique! Il avait un disque dur de 5 Mo monté sur cardan: un vrai poème!
    Dire qu'à l'Ecole, on avait des IBM370 avec des terminaux 3270 super... Et sans compter les octets générés par ce foutu compilateur FORTRAN!

  21. #17
    Boson_2_higgs

    Re : langage informatique

    Merci à tous pour votre participation . J'ai une nouvelle question : on m'a dis que de gens ( enfin des monstres ) arrivent à programmer directement en binaire !
    Véridique ? [je pense que oui]
    Mais comment font ils, déjà qu'en language informatique c'est compliquée alors placer des 1 et des 0 au pif ...mezzo!
    @+
    "Rien n'est impossible , mais bien peu de choses sont réalisables,c'est le grand jeu de la vie"

  22. #18
    overmind

    Re : langage informatique

    Il est peu probable que des gens s'amusent à écriree des programmes en tapant des 0 et des 1 à la suite (ne serait ce que pour des raisons de lisibilité...).
    Cependant il y a plein de gens qui écrivent des shellcodes, ce qui revient à peu près au même, et donne ce genre de trucs:

    "\x31\xc9\x83\xe9\xec\xd9\xee\ xd9\x74\x24\xf4\x5b\x81\x73\x1 3\xdf"
    "\x2b\x53\x18\x83\xeb\xfc\xe2\ xf4\xb5\x4a\x0b\x81\x8d\x43\x4 3\x1a"
    "\xce\x77\xda\xf9\x8d\x69\x01\ x5a\x8d\x41\x43\xd5\x5f\xb2\xc 0\x49"
    "\x8c\x79\x39\x70\x87\xe6\xd3\ xa8\xb5\xe6\xd3\x4a\x8c\x79\xe 3\x06"
    "\x12\xab\xc4\x72\xdd\x72\x39\ x42\x87\x7a\x04\x49\x12\xab\x1 a\x61"
    "\x2a\x7b\x3b\x37\xf0\x58\x3b\ x70\xf0\x49\x3a\x76\x56\xc8\x0 3\x4c"
    "\x8c\x78\xe3\x23\x12\xab\x53\ x18"

    C'est un code pour BSD sur x86 qui ouvre un shell sur le port 4444; source metasploit.

  23. Publicité
  24. #19
    Mr.Feynman

    Re : langage informatique

    Salut ,
    moi aussi j'ai quelques questions ( et attention j'y connais mais rien du tout, alors vous allez rire ):

    1) Le binaire a part pour la programmation, sa sert pas aussi a coder des messages ou des choses dans le genre ?

    2) Quand vous parlez de language informatique, vous parlez de language SQL, PHP ,HTML etc....

    3) ( le meilleur pour la fin ) pourquoi on programme pas tout directement au lieu de faire des 0 et des 1 ? en gros pourquoi on se complique la vie ?

  25. #20
    overmind

    Re : langage informatique

    Citation Envoyé par Mr.Feynman Voir le message
    Salut ,
    moi aussi j'ai quelques questions ( et attention j'y connais mais rien du tout, alors vous allez rire ):

    1) Le binaire a part pour la programmation, sa sert pas aussi a coder des messages ou des choses dans le genre ?

    2) Quand vous parlez de language informatique, vous parlez de language SQL, PHP ,HTML etc....

    3) ( le meilleur pour la fin ) pourquoi on programme pas tout directement au lieu de faire des 0 et des 1 ? en gros pourquoi on se complique la vie ?
    1) Le binaire serta aussi bien à coder l'information que les abstractions qui traitent cette information.

    2) SQL ou HTML ne sont pas des languages de programmation à part entière, PHP un peu plus, mais tout cela est encore très imprégné de la sphère web. Quand on te dit "langage de programmation" pense plutôt au C par exemple.

    3) On peut se compliquer la vie pour de nombreuses raisons:
    - ça fait très "uber leet" de coder en binaire, idéal pour briller en non-société.
    - la raison la plus courante:
    L'écriture de vers/virus/exploits/.../ nécessite l'exploitation de failles de sécurité, or la plupart d'entre elles se présentent sous forme d'un débordement de tampon plus ou moins enterré dans certains bugs du programme. Pour exploiter ce genre de choses, on doit injecter du code dans la mémoire du processus, mais pour y arriver, il faut que le code passe par l'interface du programme (ex: une barre d'url...) ceci impose des restrictions dans les octets à utiliser, par exemple pas de \x00 ( 00000000 en binaire) ou pas de caractères non ascii.
    Or aucun compilateur, ni assembleur ne permet ce genre de fantaisie.

Discussions similaires

  1. Langage C
    Par frue20 dans le forum Logiciel - Software - Open Source
    Réponses: 23
    Dernier message: 05/04/2007, 00h57
  2. Langage C
    Par lui dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 14/02/2007, 19h47
  3. langage c
    Par yannicklepaleo dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 31/08/2006, 21h38
  4. puces informatique ,broquante informatique ? ,vide grenier ...
    Par Tix dans le forum Matériel - Hardware
    Réponses: 7
    Dernier message: 10/07/2006, 09h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.