Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
+2
chocolat
prométhéus
6 participants
Page 1 sur 1
Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
J'aimerais vous présenter ce bijou pédagogique extraordinaire, en provenance de deux professeurs du MIT.
Le projet se nomme nand2tetris, une reconstruction de l'ordinateur de son cœur (un ensemble de porte logique ) au système d'exploitation pouvant faire tourner un petit jeu, un ordinateur certes aux capacités modestes, en cela on serait plus proche de l'architecture d'une game boy, il est possible d'ultérieurement faire son propre hardware et d'implémenter à son goût le software.
Le cours se compose de chapitres et de slide , un ensemble d'outils est à télécharger (programme java) pour faciliter le travail et tester son travail.
Chapitre 1: Logique booléenne
Chapitre 2: Arithmétique booléenne (additionneur, multiplexeur,démultiplexeur, ALU)
Chapitre 3: Logique séquentielle (bit, registre, Ram, ROM, compteur de programmes
Chapitre 4: Langage Machine
Chapitre 5: Mémoire ( mappage ), CPU , ordinateur complet
Chapitre 6: Réalisation de l'assembleur
Chapitre 7: Langage intermédiaire à machine virtuelle, traducteur (langage assembleur -> langage intermédiaire)
Chapitre 8: idem (se concentre sur la notion de sous programme )
Chapitre 9: Prise en main du Java.like nommé Jack
Chapitre 10: Réalisation du compilateur de jack
Chapitre 11: idem
Chapitre 12: Creation de l'OS
http://www.nand2tetris.org/
Le projet se nomme nand2tetris, une reconstruction de l'ordinateur de son cœur (un ensemble de porte logique ) au système d'exploitation pouvant faire tourner un petit jeu, un ordinateur certes aux capacités modestes, en cela on serait plus proche de l'architecture d'une game boy, il est possible d'ultérieurement faire son propre hardware et d'implémenter à son goût le software.
Le cours se compose de chapitres et de slide , un ensemble d'outils est à télécharger (programme java) pour faciliter le travail et tester son travail.
Chapitre 1: Logique booléenne
Chapitre 2: Arithmétique booléenne (additionneur, multiplexeur,démultiplexeur, ALU)
Chapitre 3: Logique séquentielle (bit, registre, Ram, ROM, compteur de programmes
Chapitre 4: Langage Machine
Chapitre 5: Mémoire ( mappage ), CPU , ordinateur complet
Chapitre 6: Réalisation de l'assembleur
Chapitre 7: Langage intermédiaire à machine virtuelle, traducteur (langage assembleur -> langage intermédiaire)
Chapitre 8: idem (se concentre sur la notion de sous programme )
Chapitre 9: Prise en main du Java.like nommé Jack
Chapitre 10: Réalisation du compilateur de jack
Chapitre 11: idem
Chapitre 12: Creation de l'OS
http://www.nand2tetris.org/
prométhéus- Messages : 361
Date d'inscription : 26/04/2015
Age : 43
Localisation : troisième planète du système solaire
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Pour les gens qui serait intéressés par cette aventure, mais qui sont un peu effrayés ...
Ce fil peut tout à fait servir d'aide pour ceux qui seraient attirés par cette aventure mais bloqueraient à certaines parties.
Pour ma part je suis actuellement dans l'élaboration du compilateur de jack.
J'ai utilisé l'éditeur vim, ce qui m'a posé le plus de problème pour le moment est le câblage du CPU, et l'implémentation de la structure programme sous-programme dans le traducteur machine virtuelle -> assembleur.
Je me suis beaucoup servi des expressions régulières, ce qui a beaucoup simplifié les choses, j'ai codé en python 2.
Je me suis parfois dangereusement écarté des recommandations .
C'est vraiment sympa, on voit de visu cette notion d'informatique construit comme un oignon.
Ce fil peut tout à fait servir d'aide pour ceux qui seraient attirés par cette aventure mais bloqueraient à certaines parties.
Pour ma part je suis actuellement dans l'élaboration du compilateur de jack.
J'ai utilisé l'éditeur vim, ce qui m'a posé le plus de problème pour le moment est le câblage du CPU, et l'implémentation de la structure programme sous-programme dans le traducteur machine virtuelle -> assembleur.
Je me suis beaucoup servi des expressions régulières, ce qui a beaucoup simplifié les choses, j'ai codé en python 2.
Je me suis parfois dangereusement écarté des recommandations .
C'est vraiment sympa, on voit de visu cette notion d'informatique construit comme un oignon.
prométhéus- Messages : 361
Date d'inscription : 26/04/2015
Age : 43
Localisation : troisième planète du système solaire
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Merci pour le lien!
chocolat- Messages : 144
Date d'inscription : 22/01/2014
Localisation : IDF
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Je connais depuis un moment ce cours (j'avais même acheté le bouquin, que j'ai perdu depuis), mais je n'ai jamais eu le courage de tout faire. ( ou même en fait, de faire quoi que ce soit ...)
Ca doit demander un investissement assez conséquent. Tu partages ce que tu fais (sur un blog ou autre) ?
Ca doit demander un investissement assez conséquent. Tu partages ce que tu fais (sur un blog ou autre) ?
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
C'est l'impression que cela m'en a donné quand j'ai balayé les objectifs, mais c'est une aide savamment dosée, ni trop peu pour ne pas être perdu, ni trop et finalement ne faire que du recopiage :/ , les outils à disposition aide aussi beaucoup.Stauk a écrit:
Ca doit demander un investissement assez conséquent.
(Bon faudrait que je m'y remette )
Je le mettrais sur mon blog, quand je créerais un blog.Stauk a écrit:
Tu partages ce que tu fais (sur un blog ou autre) ?
Bon sinon je peux partager mon "travail", bien que je ne pense pas que cela soit particulièrement une référence.
prométhéus- Messages : 361
Date d'inscription : 26/04/2015
Age : 43
Localisation : troisième planète du système solaire
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
prométhéus a écrit:
Bon sinon je peux partager mon "travail", bien que je ne pense pas que cela soit particulièrement une référence.
Ben si c'est ici, ça fera de mal à personne. Si ça intéresse pas, les gens regarderont pas. Et puis si ça intéresse, ça fait un truc à suivre en temps réel, avec un peu plus d'émotion que si c'était ailleurs.
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Je remonte le topique, un peu ancien mais toujours d'actualité !
Je me suis inscrit, se sera mon premier MOOC !
Merci énormément pour le lien, c'est exactement ce que je cherchais sans complétement y croire... Merci encore !
Je me suis inscrit, se sera mon premier MOOC !
Merci énormément pour le lien, c'est exactement ce que je cherchais sans complétement y croire... Merci encore !
Pango- Messages : 384
Date d'inscription : 10/04/2017
Age : 35
Localisation : Châtellerault, là où les rêves........ viennent pour crever
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Merci pour le lien! Je n'aurais pas le temps de faire ça pour l'instant, mais ça m'intéresse complètement. Vous en êtes où du coup depuis le premier post les uns, les autres?
Jora- Messages : 82
Date d'inscription : 13/09/2017
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Pango a écrit:Je remonte le topique, un peu ancien mais toujours d'actualité !
Je me suis inscrit, se sera mon premier MOOC !
Merci énormément pour le lien, c'est exactement ce que je cherchais sans complétement y croire... Merci encore !
Difficile de ne pas vouloir faire partager, ce superbe projet, bon l'ensemble est bien rôdé, la difficulté augmente crescendo et l'aide apportée par les chapitres du livre cesse au chapitre 10, y a comme un goulot d'engorgement, donc au 3/4 du chemin soit tu t'arrêtes brutalement soit tu achètes le livre.
Mais en cherchant un peu mieux sur internet, on trouve assez facilement le reste des chapitres ...
Jora a écrit:
Merci pour le lien! Je n'aurais pas le temps de faire ça pour l'instant, mais ça m'intéresse complètement. Vous en êtes où du coup depuis le premier post les uns, les autres?
J'avais un peu laissé tombé, j'ai récemment tout refait, en faisant un code plus clair et plus court.
Je suis actuellement au chapitre 10, la mission est de transformer le code écrit en jack vers un code XML structuré, la tâche se découpe en deux parties, d'abord
discriminer les mots dans le texte (tokeniser) puis une phase de hiérarchisation (le parser) et donc rendre un code écrit en XML, qui sera dans le chapitre suivant traduit dans un langage compréhensible par la machine virtuelle (qui a été créée au chapitre 8 )
Je suis précisément en train de faire le parser.
Le tokeniser est lui fini.
Le programme hello.jack
- Code:
class Main
{
function void main()
{
/*commentaire à supprimer!
*/
do Output.printString("Hello World!"); // test3
//test 4
do Output.println();
return;
}
/* rab de commentaire inutile
*/
}
Le tokeniser sort un truc comme çà:
- Code:
<tokens>
<KEYWORD> class </KEYWORD>
<IDENTIFIER> Main </IDENTIFIER>
<SYMBOL> { </SYMBOL>
<KEYWORD> function </KEYWORD>
<KEYWORD> void </KEYWORD>
<IDENTIFIER> main </IDENTIFIER>
<SYMBOL> ( </SYMBOL>
<SYMBOL> ) </SYMBOL>
<SYMBOL> { </SYMBOL>
<KEYWORD> do </KEYWORD>
<IDENTIFIER> Output </IDENTIFIER>
<SYMBOL> . </SYMBOL>
<IDENTIFIER> printString </IDENTIFIER>
<SYMBOL> ( </SYMBOL>
<STRING_CONST> Hello World! </STRING_CONST>
<SYMBOL> ) </SYMBOL>
<SYMBOL> ; </SYMBOL>
<KEYWORD> do </KEYWORD>
<IDENTIFIER> Output </IDENTIFIER>
<SYMBOL> . </SYMBOL>
<IDENTIFIER> println </IDENTIFIER>
<SYMBOL> ( </SYMBOL>
<SYMBOL> ) </SYMBOL>
<SYMBOL> ; </SYMBOL>
<KEYWORD> return </KEYWORD>
<SYMBOL> ; </SYMBOL>
<SYMBOL> } </SYMBOL>
<SYMBOL> } </SYMBOL>
</tokens>
Dernière édition par prométhéus le Mar 26 Sep 2017 - 18:22, édité 2 fois
prométhéus- Messages : 361
Date d'inscription : 26/04/2015
Age : 43
Localisation : troisième planète du système solaire
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Le Jack m'est familier à la vue, ça me rappel le Java (j'avais débuté un MOOC, sans réussir à le finir). Par contre le tokeniser... c'est illisible pour moi pour l'instant.
Jora- Messages : 82
Date d'inscription : 13/09/2017
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Enlève tout ce qui est entre <> et tu comprendra qu'on a juste encadré les "morceaux" de langage classique de token ( balises si tu préfère) mais l'utilisateur du code tokenisé n'est pas destiné à être lu par l'humain, il va être interprété et/ou transformé par un programme
Fab. Fabrice- Messages : 1328
Date d'inscription : 13/06/2015
Age : 55
Localisation : Entre Moules-Frites et Huitres-Melon
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Il m'a fallu un petit temps d'adaptation pour bien me mettre dans la logique requise ensuite c'est passé très vite.
Je conseils les chapitres 1 à 3 à tous les curieux appréciant les problèmes de logiques en général.
Cet assemblage d'un seul type de porte logique en un tout aussi complexe et cohérent me donne le vertige...
Je vois mon ordinateur différemment, maintenant, je devrais lui vouer un culte.
J'ai laissé de côté un petit moment pour pouvoir apprendre à programmer en Python et ainsi réaliser l'assembleur (chapitre 6) je devrais bientôt mis remettre, j'ai hâte.
Je conseils les chapitres 1 à 3 à tous les curieux appréciant les problèmes de logiques en général.
Cet assemblage d'un seul type de porte logique en un tout aussi complexe et cohérent me donne le vertige...
Je vois mon ordinateur différemment, maintenant, je devrais lui vouer un culte.
J'ai laissé de côté un petit moment pour pouvoir apprendre à programmer en Python et ainsi réaliser l'assembleur (chapitre 6) je devrais bientôt mis remettre, j'ai hâte.
Dernière édition par Pango le Mer 8 Jan 2020 - 19:38, édité 1 fois
Pango- Messages : 384
Date d'inscription : 10/04/2017
Age : 35
Localisation : Châtellerault, là où les rêves........ viennent pour crever
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Comme l'a très bien expliqué Fab.fabrice, ce n'est qu'un intermédiaire,Jora a écrit:Le Jack m'est familier à la vue, ça me rappel le Java (j'avais débuté un MOOC, sans réussir à le finir). Par contre le tokeniser... c'est illisible pour moi pour l'instant.
Ces balises servent à dire : ce mot est de tel type .
ainsi si l'on prenait la phrase : Le chat joue avec la pelote de laine
cela donnerait un truc comme çà:
- Code:
<article> le </article>
<nom> chat </nom>
<verbe> joue </verbe>
<preposition> avec </preposition>
<article> la </article>
<nom> pelote </nom>
<preposition> de </preposition>
<nom> laine </nom>
@pango
Oui un changement de perception au moment de traverser la couche d'abstraction.
Une totale impossibilité d'apprécier l'ensemble en se plaçant dans les couches inférieures, car l'ensemble semble à ce niveau n'être qu'une étendue informe et illimitée, voyage grisant et déroutant.
Sinon pour l'écriture de l'assembleur, la bibliothèque re m'a beaucoup simplifié la vie, sans elle, cela aurait été particulièrement fastidieux.
Pour python, il existe cette incontournable ressource:
C'est un noob to pro
http://www.diveintopython.net/
prométhéus- Messages : 361
Date d'inscription : 26/04/2015
Age : 43
Localisation : troisième planète du système solaire
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Merci Fab.Fabrice et Prométhéus, c'est plus clair maintenant!
Jora- Messages : 82
Date d'inscription : 13/09/2017
Re: Vous voulez en savoir plus sur le fonctionnement d'un ordinateur ...
Les passions se partagent aisément
Fab. Fabrice- Messages : 1328
Date d'inscription : 13/06/2015
Age : 55
Localisation : Entre Moules-Frites et Huitres-Melon
Sujets similaires
» Ces choses que vous ne saviez pas, qui vous ont étonnés et que vous voulez partager!
» Ces vidéos qui vous font du bien (ou que vous voulez tout simplement partager)
» Voulez-vous que je lise un livre pour vous...
» Savoir si il vous aime
» PROJET POUR FORMER UNE ÉQUIPE EFFICACE DE 'SUPER-TALENTS' COMPLÉMENTAIRES.
» Ces vidéos qui vous font du bien (ou que vous voulez tout simplement partager)
» Voulez-vous que je lise un livre pour vous...
» Savoir si il vous aime
» PROJET POUR FORMER UNE ÉQUIPE EFFICACE DE 'SUPER-TALENTS' COMPLÉMENTAIRES.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum