Question

Je veux revenir en arrière et en apprendre davantage sur la façon dont les compilateurs, les processeurs et la mémoire fonctionnent sur mes programmes. Je suis également intéressé par la physique sur laquelle tout cela dépend. Toutes les bonnes références ou les livres seraient appréciés ...

Était-ce utile?

La solution

Ma première suggestion allait être code qui a été déjà suggéré . Une meilleure, mais plus dur, livre sur le sujet des processeurs est Organisation & Design Computer par Hennessey & Patterson. Vous pouvez chercher une ancienne édition sur Amazon ou Half.com. Ils seront beaucoup moins cher et ont essentiellement les mêmes informations.

Ceux-ci seront à la fois vous enseigner les rudiments de la façon dont un processeur fonctionne, langage assembleur, etc. Cela vous aidera à comprendre comment votre programme sera interprété et donc, quelle sorte de goulots d'étranglement pourraient exister en fonction de votre conception.

Autres conseils

Pour les compilateurs, le livre ultime est dragon Livre , alias les principes de la conception du compilateur. Il est un peu lourd va au début, mais il devient plus facile avec chaque vous passez faire dans ce domaine. Il est un classique et devrait être lu par tous les étudiants sérieux de la science programmation / informatique.

Il me semble que vous voulez obtenir un diplôme en informatique. : -)

Je ne pense pas normalement de la physique et des compilateurs en même temps.

Ce lien pourrait vous faire réfléchir.

Ecrire un émulateur simple pour quelque chose comme C64. En pensant à la façon d'imiter la CPU, la mémoire et d'autres puces, vous apprendrez comment ces machines simples ont travaillé. Les ordinateurs d'aujourd'hui fonctionnent à peu près de la même manière avec beaucoup plus de complexité, mais l'idée de base est le même.

Votre émulateur n'a pas à être super rapide - essayer d'obtenir le message de bienvenue C64 et si vous avez fait votre droit de code - vous devriez être en mesure Poke et écrire des programmes de base et les faire travailler:)

10 PRINT "DONT LISTEN TO ME - APPLE //E's RULE"

20 GOTO 10

Je propose l'apprentissage assez assembleur pour pouvoir écrire simple Bonjour tout le monde programme en assembleur.

Cela vous apprendra exactement comment fonctionne la CPU au niveau du registre et de la mémoire.

Il vous donnera également une bonne introduction sur la façon dont le code source est converti en fichiers objet et comment les fichiers éditeur de liens rassemble tous ces objets ensemble pour créer un programme de travail.

Ramassez l'un des livres Hennessy & Patterson. - Une approche quantitative ou Organisation & design - Le matériel Interface

Feynman a un joli peu sur le Physique de calcul :

qui porte sur la deuxième partie de votre question.

Choisissez un livre sur « l'organisation informatique » ou « Computer Architecture » sur Amazon. T son est ce que nous avons utilisé quand j'étais au collège. Il est pas trop épais, et vous donnera les bases, à partir du niveau de la porte tout le chemin jusqu'à la façon dont la mémoire est organisée et les programmes sont écrits. Si, après cela, vous voulez regarder plus profondément dans la physique, alors vous aurez envie de prendre un livre sur la physique des semi-conducteurs. (Mais si je vous je venais de commencer en recherchant « porte logique », « diode » et « transistor » sur wikipedia!)

Si vous voulez vraiment entrer dans la physique des processeurs / IC, vous devez avoir un solide électromagnétisme / fond d'analyse du circuit. Il est certainement pas des choses faciles, et vous fera pas vraiment un meilleur programmeur. Si vous êtes vraiment intéressé, emprunter des livres d'un ami EE!

Une abstraction à partir de c'est le niveau de la porte, que les programmeurs peuvent généralement grok car il est tout au sujet de la logique.

J'ai fait une résolution similaire après avoir lu la recommandation de Steve Yegge pour en savoir plus sur les compilateurs. J'ai vraiment jouissais Nisan et Schocken de Les éléments des systèmes informatiques: Création d'un ordinateur moderne de Principes qui est d'abord un manuel, en second lieu, un cours d'un semestre pour étudiants de première année ou les personnes âgées, et troisième, un site web fournissant les conférences et les logiciels d'émulation simulation multi-plateforme: http://www1.idc.ac. il / TEC / (TECS)

Les sujets vont de NAND (programmation des circuits logiques numériques HDL), à travers des tongs, et UMM registres, assembleurs, analyse syntaxique et compilateurs, systèmes d'exploitation, et des interfaces graphiques. Vous, l'étudiant, met en œuvre chacun de ces sujets sur le simulateur de matériel ou émulateur logiciel fourni sur le site. Pour moi, il est une célébration de l'ingéniosité humaine que cette gamme d'idées peut être si profondément couvert de 3--4 mois par undergrads. L'un des auteurs / professeurs a donné un Google Tech Talk sur le sujet qui vaut la peine de vérifier si vous avez une heure pour épargner loin de leur cours.

Je ne peux pas recommander une ressource tout aussi convaincant pour la physique de calcul, mais je peux perfunctorily dire que mes cours département de génie électrique de deux premiers noyau EE élèves pourraient prendre (en même temps s'ils ont choisi) étaient circuits 1 et semi-conducteurs 1. l'ancien traité tension, courant, inductances, condensateurs, amplis op, etc .--- tandis que le second traité la mécanique quantique, cristaux, dopage, porteurs de charge, etc., et plus directement parlé à la physique de traitement et de stockage numérique dispositifs. Il est difficile pour moi d'imaginer un environnement pratique de simulation comme pour TECS un tel sujet, cependant, le rendant plus approprié pour que l'étude universitaire amateur / professionnel?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top