Un programme informatique pour me guérir de ma mélancolie.
2 participants
Page 1 sur 1
Un programme informatique pour me guérir de ma mélancolie.
Bonjour. Je suis arrivé à la conclusion que je dois faire quelque chose, n'importe quoi. Je dois avoir un projet si je veux me survivre à moi même. Quelque chose de concret, montrable. Quelque chose qui me permet de juger de ma propre évolution. Après un bilan de compétence, j'ai décidé que le mieux pour moi, serait de créer un programme informatique. Le coût d'entré est raisonnable ou à tout le moins maîtrisable, et je suis en mesure de démarrer tout de suite, d'ailleurs j'ai déjà démarré. Après quelque tergiversations, je me suis rendu compte que je ne suis pas très à l'aise avec l'ensemble des outils de programmations qui sont à notre disposition actuellement. Que ce soit au niveau des cpus ou des langages de programmations : tout est si inutilement complexe. Alors oui bien sûr, une certaine complexité est inévitable, mais il est vite apparent que la simplicité n'est tout simplement pas un objectif répandu. Pourtant il existe des aphorismes tels que
Et d'où vient la complexité, de nos processeurs X86 par exemple, ou encore du langage C (oui le langage C, je ne parle pas du C++, juste du bon vieux c99) sinon de l'envie et parfois du besoin probablement prématuré d'optimiser ? Bon historiquement ça se justifiait quand les logiciels coutaient moins cher à produire que le matériel pour les faire tourner. Et également c'est complexifié par les logiques marketings et commerciales.
De ce constat, j'ai eu envie de reconstruire une informatique qui serait sinon réellement simplifiée, du moins raisonnablement simple. A ce titre j''éprouve le besoin de construire la spécification d'une machine virtuelle, pour laquelle j'écrirais un assembleur. Cette machine devra être une vrai machine, avec au moins un écran et une souris, c'est à dire équivalent à un pc ordinaire. Elle fonctionnera par émulation (comme la machine virtuelle java) Le réseau viendra plus tard, mais il est évident que c'est également désirable. Une fois que j'aurais construit cette machine virtuelle, et qu'elle sera stabilisée au moins un peu, j'essaierai de créer un langage de programmation, quelque chose de simple qui puisse être à la fois compilé vers la machine virtuelle préalablement établie, mais également qui soit traduisible en C. Une fois que j'en serais à cette étape aujourd'hui un peu lointaine, il sera temps de me poser et de décider où je vais. J'ai dans l'idée qu'un second langage de programmation, plus orienté productivité que le premier sera désirable.
Je ne souhaite pas vraiment exposer toutes mes idées aux moteurs de recherches, c'est pourquoi j'ai choisis dors et déjà d'appliquer une stratégie drastique de maîtrise de la diffusion de cet exercice : utiliser les balises "caché" disponibles ici. Elles font que seuls les personnes qui ont participé à ce fil seront à même de pouvoir lire les éléments techniques que je juge un peu sensibles (par exemple le choix des jeux d'instructions que je mets à l'essai, et du choix de l'encodage binaire, mais également les éventuels liens vers des démonstrations en ligne qui sont certainement nécessaire, si je veux réussir à présenter publiquement l'avancée de ce petit projet personnel). Je ne m'attends pas forcément ce qu'il y ait foule. J'ignore totalement si avoir une audience est pour moi une motivation ou une inhibition, ce sera à découvrir. Ca dépendra peut être aussi de l'audience. Ce procédé de balises "caché" me permettra d'avoir une idée de qui est susceptible de lire, du profil des gens (au moins un peu) intéressés. Je signalerais systématique l'existence des balises cachées quand j'en utiliserais. Je ne garanti pas que je vais persister longtemps dans le fait de documenter et verbaliser ici : je veux juste tester, et évaluer si j'avance ou non plus vite en m'imposant cette montrabilité.
Donald Knuth a écrit: « On devrait oublier les petites optimisations locales, disons, 97 % du temps : l'optimisation prématurée est la source de tous les maux1. »
Randall Hyde a écrit: « What Hoare and Knuth are really saying is that software engineers should worry about other issues (such as good algorithm design and good implementations of those algorithms) before they worry about micro-optimizations such as how many CPU cycles a particular statement consumes. »
Et d'où vient la complexité, de nos processeurs X86 par exemple, ou encore du langage C (oui le langage C, je ne parle pas du C++, juste du bon vieux c99) sinon de l'envie et parfois du besoin probablement prématuré d'optimiser ? Bon historiquement ça se justifiait quand les logiciels coutaient moins cher à produire que le matériel pour les faire tourner. Et également c'est complexifié par les logiques marketings et commerciales.
De ce constat, j'ai eu envie de reconstruire une informatique qui serait sinon réellement simplifiée, du moins raisonnablement simple. A ce titre j''éprouve le besoin de construire la spécification d'une machine virtuelle, pour laquelle j'écrirais un assembleur. Cette machine devra être une vrai machine, avec au moins un écran et une souris, c'est à dire équivalent à un pc ordinaire. Elle fonctionnera par émulation (comme la machine virtuelle java) Le réseau viendra plus tard, mais il est évident que c'est également désirable. Une fois que j'aurais construit cette machine virtuelle, et qu'elle sera stabilisée au moins un peu, j'essaierai de créer un langage de programmation, quelque chose de simple qui puisse être à la fois compilé vers la machine virtuelle préalablement établie, mais également qui soit traduisible en C. Une fois que j'en serais à cette étape aujourd'hui un peu lointaine, il sera temps de me poser et de décider où je vais. J'ai dans l'idée qu'un second langage de programmation, plus orienté productivité que le premier sera désirable.
Je ne souhaite pas vraiment exposer toutes mes idées aux moteurs de recherches, c'est pourquoi j'ai choisis dors et déjà d'appliquer une stratégie drastique de maîtrise de la diffusion de cet exercice : utiliser les balises "caché" disponibles ici. Elles font que seuls les personnes qui ont participé à ce fil seront à même de pouvoir lire les éléments techniques que je juge un peu sensibles (par exemple le choix des jeux d'instructions que je mets à l'essai, et du choix de l'encodage binaire, mais également les éventuels liens vers des démonstrations en ligne qui sont certainement nécessaire, si je veux réussir à présenter publiquement l'avancée de ce petit projet personnel). Je ne m'attends pas forcément ce qu'il y ait foule. J'ignore totalement si avoir une audience est pour moi une motivation ou une inhibition, ce sera à découvrir. Ca dépendra peut être aussi de l'audience. Ce procédé de balises "caché" me permettra d'avoir une idée de qui est susceptible de lire, du profil des gens (au moins un peu) intéressés. Je signalerais systématique l'existence des balises cachées quand j'en utiliserais. Je ne garanti pas que je vais persister longtemps dans le fait de documenter et verbaliser ici : je veux juste tester, et évaluer si j'avance ou non plus vite en m'imposant cette montrabilité.
Dernière édition par daurinak le Lun 5 Juil 2021 - 17:12, édité 1 fois
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Et ben ....
Tu te mets la barre très haut et je suivrai avec le plus grand intérêt ton chantier.
Rien moins que révolutionner la Silicon Valley !
Quelles sont les premières pistes concrètes que tu peux montrer ?
Tu te mets la barre très haut et je suivrai avec le plus grand intérêt ton chantier.
Rien moins que révolutionner la Silicon Valley !
Quelles sont les premières pistes concrètes que tu peux montrer ?
Confiteor- Messages : 9067
Date d'inscription : 01/04/2017
Age : 65
Localisation : Drôme
Re: Un programme informatique pour me guérir de ma mélancolie.
J'ai des prototypes en C, mais j'aimerais te (vous) montrer quelque chose plutôt en javascript via une page web. Va falloir que je me sorte les doigts comme ils disent, ce qui est bien l'idée de ce fil ^ ^Confiteor a écrit:Quelles sont les premières pistes concrètes que tu peux montrer ?
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Les jeux d'instructions des premiers ordinateurs :
https://en.wikipedia.org/wiki/Manchester_Baby
https://en.wikipedia.org/wiki/EDSAC
C'était objectivement plus élégant et accessible que ça (votre pc) :
ou que ça (votre tablette android/smartphone) [cpu a jeu d'instruction réduit ...] :
https://en.wikipedia.org/wiki/Manchester_Baby
- Jump to the instruction at the address obtained from the specified memory address S[a] (absolute unconditional jump)
- Jump to the instruction at the program counter plus (+) the relative value obtained from the specified memory address S[a] (relative unconditional jump)
- Take the number from the specified memory address S, negate it, and load it into the accumulator
- Store the number in the accumulator to the specified memory address S
- Subtract the number at the specified memory address S from the value in accumulator, and store the result in the accumulator
- Skip next instruction if the accumulator contains a negative value
- Stop
https://en.wikipedia.org/wiki/EDSAC
- Add
- Subtract
- Multiply-and-add
- AND-and-add (called "Collate")
- Shift Left
- Arithmetic shift Right
- Load multiplier register
- Store (and optionally clear) accumulator
- Conditional Goto
- Read Input tape
- Print character
- Round accumulator
- No-op
- Stop.
C'était objectivement plus élégant et accessible que ça (votre pc) :
- https://en.wikipedia.org/wiki/X86_instruction_listings
ou que ça (votre tablette android/smartphone) [cpu a jeu d'instruction réduit ...] :
- https://www.element14.com/community/servlet/JiveServlet/previewBody/41836-102-1-229511/ARM.Reference_Manual.pdf
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Salut daurinak,
je suis curieuse de voir sur quoi tu travailles,
je suis curieuse de voir sur quoi tu travailles,
Dernière édition par margot le Jeu 9 Déc 2021 - 17:22, édité 1 fois
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Bienvenue \o/margot a écrit:Salut daurinak,
je suis curieuse de voir sur quoi tu travailles,
pour ton souhait d'un langage simple qui pourrait se compiler en langage C il existe Genie, le langage est jeune et donc forcément il n'a pas encore beaucoup d'adeptes mais il est libre, tu peux l'utiliser et contribuer à l'améliore de plus il répond exactement à ton souhait secondaire, il se compile en langage C ou directement en binaire exécutable, https://wiki.gnome.org/Projects/Genie
Dans les jeune langages dont la popularité monte, on a aussi :
- - nim
- - zig
Dans les "vieux" langages (récents) dont la popularité est respectable encore aujourd'hui :
- - rust
Ces langages essayent tous de remplacer le C. Il y en a littéralement des centaines d'autres. Pourtant assez peu se distinguent vraiment. A un plan bas niveau, on aussi la machine virtuelle java, et également la plateforme WASM, et le langage intermédiaire de LLVM. La encore il existe un foisonnement de projets, et d'envies de trouver le langage qui résoudra les problèmes que tout le monde rencontre au quotidien, mais là encore il existe finalement assez peu de variations dans les philosophies.
Si on retourne dans les années 50, on a eu une explosion de langages, qui étaient vraiment différents les uns les autres.
- - le langage pascal (équivalent au C, mais un peu moins flexible pour écrire des drivers)
- - le langage forth ( basé sur l'idée de pile, mais vraiment abscons à l'usage, pour les programme même de taille modeste).
- - lisp ( aujourd'hui très connu à et à la mode, à travers la catégorie "programmation fonctionnelle")
- - small talk (l'idée que tout est objet, un des environnement les plus productifs parait t'il. Comparable à Delphi (un environnement basé sur le pascal))
il y avait aussi des trucs exotiques comme le Prolog. Tous des langages nettement distinguables les uns des autres. Forth, lips et smalltalk pouvaient être présentés dans leurs fondamentaux et décrits entièrement au niveau syntaxique par une simple feuille A4. (un peu comme les premiers jeux d'instructions que j'ai pris en exemple un peu plus haut)
Et du coup, pourquoi le langage Genie en particulier ? Comment en as tu entendu parler ?
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
..
Dernière édition par margot le Jeu 9 Déc 2021 - 17:21, édité 2 fois
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Le souci avec un jeu d'instructions limité, c'est qu'il faut se farcir toutes les couches intermédiaires. Si tu as une instruction CPU qui te calcule le cosinus, eh bien tu vas bien plus vite que si tu dois te farcir le calcul à la main avec un jeu d'instructions limité.
Donc, en fait, ça dépend de ce que tu fais. Plus tes opérations sont proches du processeur, et plus ton désir de pureté se justifie. Pour des gens qui font de l'info de gestion (moi) ou scientifique, avoir des proc qui font même la lessive, c'est le panard absolu. Pour travailler sur du bas niveau, ce qui semble être ton objectif, c'est nettement plus discutable, en effet.
(et ton projet me fait dire que je n'ai pas 10% de ton talent - je sais direct que j'irais, moi, droit dans le mur sur un projet pareil)
Pour les langages des années 50, tu as oublié COBOL, un truc encore très différent, volontairement hyper-verbeux (moins que son infâme prédécesseur le flow-matic, quand même) conçu à la base pour être programmable par des comptables. Evidemment, les comptables ont vite rappelé les programmeurs, mais ça reste un langage aussi facile à lire qu'à écrire (et très limité dans son périmètre, aussi, très performant dans les batches comptables, assez inutile ailleurs)
Donc, en fait, ça dépend de ce que tu fais. Plus tes opérations sont proches du processeur, et plus ton désir de pureté se justifie. Pour des gens qui font de l'info de gestion (moi) ou scientifique, avoir des proc qui font même la lessive, c'est le panard absolu. Pour travailler sur du bas niveau, ce qui semble être ton objectif, c'est nettement plus discutable, en effet.
(et ton projet me fait dire que je n'ai pas 10% de ton talent - je sais direct que j'irais, moi, droit dans le mur sur un projet pareil)
Pour les langages des années 50, tu as oublié COBOL, un truc encore très différent, volontairement hyper-verbeux (moins que son infâme prédécesseur le flow-matic, quand même) conçu à la base pour être programmable par des comptables. Evidemment, les comptables ont vite rappelé les programmeurs, mais ça reste un langage aussi facile à lire qu'à écrire (et très limité dans son périmètre, aussi, très performant dans les batches comptables, assez inutile ailleurs)
RonaldMcDonald- Messages : 11447
Date d'inscription : 15/01/2019
Age : 48
Localisation : loin de chez moi, dans un petit coin de paradis
Re: Un programme informatique pour me guérir de ma mélancolie.
Il y a aussi SQL, qui pour le coup est toujours d'actualité, au point que j'avais oublié que c'était un patriarche. Il y a aussi BASIC, mais c'est vrai que globalement basic est tout simplement obsolète, et ne mérite plus vraiment d'être mentionné. Ce qui n'est pas le cas de ceux que j'ai cité, qui restent très étudiés.RonaldMcDonald a écrit:
Pour les langages des années 50, tu as oublié COBOL
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
margot a écrit:J'avoue que tu m'as un peu perdue avec la philosophie, quelque part il faudra rediviser ton projet, pour ne pas te perdre en route, commencer par une priorité. Enfin voilà, je ne sais pas trop si ça t'aide en fait...
Oui en effet. La priorité sera de construire une plateforme virtuelle avec Ecran, Souris, Clavier virtuels + cpu virtuel. Et donc un programme assembleur pourra réaliser le jeu snake par exemple. J'aimerais réussir à vous montrer une démo sur une page html, avec au moins un écran, et la possibilité d’exécuter le programme écrit en mnémoniques assembleur. Mais peut être aussi que j'attendrais d'avoir le langage lisible et utilisable, car là sur le cpu virtuel tel que je l'envisage le nombre d'instructions dispos sera particulièrement minimaliste ....
Avec les vacances, il risque d'y avoir du lag. Déjà que quand j'ai la possibilité potentielle de travailler 4h par jours, je tends à me perdre en activités d'évitements (comme de poster sur ce forum, en dehors de ce fil :-D )
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Assembleur virtuel avec une interface i/o avec sortie graphique et input avec pointage opto/mecanique????
C'est pas un peu chaud ?
C'est pas un peu chaud ?
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Ben non, ça sera émulé, et ça tournera sur ton navigateur pour les démosNolimit a écrit:Assembleur virtuel avec une interface i/o avec sortie graphique et input avec pointage opto/mecanique????
C'est pas un peu chaud ?
Grosso modo un ordinateur dans une page web.
Au niveau réalisation bah ... disons que mes premiers prototypes semblent pointer vers ça pose pas de problème.
Invité- Invité
Re: Un programme informatique pour me guérir de ma mélancolie.
Alors crois dans ce que tu pousses...
Invité- Invité
Sujets similaires
» Comment j'ai fais pour guérir ?
» Pistes concrètes pour guérir du sentiment de son infériorité..?
» cours informatique pour 14-16ans pendant vacances
» Cherche annales pour préparer un concours informatique
» Amis fans d'informatique, j'ai un défi pour vous !
» Pistes concrètes pour guérir du sentiment de son infériorité..?
» cours informatique pour 14-16ans pendant vacances
» Cherche annales pour préparer un concours informatique
» Amis fans d'informatique, j'ai un défi pour vous !
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum