Domanda

Voglio andare avanti e imparare di più su come compilatori, processori e memoria operano sui miei programmi. Sono interessato nella fisica su cui tutto questo dipende anche. Tutti i buoni riferimenti o libri sarebbe apprezzato ...

È stato utile?

Soluzione

Il mio primo suggerimento sarebbe stato Codice che è stato suggerito già . Una migliore, ma più difficile, libro sul tema di processori è Computer Organization & Design by Hennessey & Patterson. Si potrebbe cercare un vecchia edizione su Amazon o Half.com. Saranno molto meno costosi e hanno sostanzialmente le stesse informazioni.

Questi saranno entrambi vi insegnerà le basi di come funziona un processore, linguaggio assembly, ecc Questo vi aiuterà a capire come il programma sarà interpretato e, quindi, che tipo di colli di bottiglia delle prestazioni potrebbero esistere in base al disegno.

Altri suggerimenti

Per compilatori, il libro finale è la Drago Libro , alias Principi di Compiler Design. E 'un po' pesante andare in un primo momento, ma diventa più facile ad ogni passaggio si effettua a esso. Si tratta di un classico e dovrebbe essere letto da tutti gli studenti seri della scienza programmazione / computer.

Sembra a me come si vuole ottenere una laurea in Informatica. : -)

Di solito non penso di fisica e compilatori allo stesso tempo.

Questo link potrebbe farti pensare.

Scrivere un semplice emulatore per qualcosa come C64. Pensando a come emulare la CPU, di memoria e di altri chip imparerete come queste macchine semplici lavorato. I computer di oggi praticamente funzionano nello stesso modo con molta più complessità, ma l'idea di base è la stessa.

Il tuo emulatore doesnt deve essere super veloce - cercare di ottenere il messaggio di benvenuto C64 e se avete fatto il vostro codice di destra - si dovrebbe essere in grado di colpire e scrivere programmi di base e farli funzionare:)

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

20 GOTO 10

Vorrei suggerire di apprendimento abbastanza assembler per essere in grado di scrivere un semplice Ciao Mondo programma in assembler.

Questo vi insegnerà esattamente come funziona la CPU a livello di registro e di memoria.

E vi darà anche una buona introduzione sul modo in cui il codice sorgente viene convertito in file oggetto e come il linker riunisce file insieme tutti questi oggetti per creare un programma di lavoro.

Feynman ha un bel po 'sul Fisica della computazione :

che affronta la seconda parte della tua domanda.

Prendete un libro sul tema "Organizzazione del computer" o "Computer Architecture" su Amazon. T il suo è quello che abbiamo usato quando ero al college. Non è troppo spessa, e vi darà le basi, dalla porta a livello di tutta la strada fino al modo in cui è organizzata la memoria e programmi sono scritti. Se, dopo questo, si vuole guardare più in profondità la fisica, allora ti consigliamo di prendere un libro sulla fisica dei semiconduttori. (Ma se fossi in te avevo appena iniziare a guardare in su "porta logica", "diodo", e "transistor" su wikipedia!)

Se si vuole veramente arrivare nella fisica dei processori / IC, è necessario disporre di una solida elettromagnetismo / circuito analisi di sfondo. Non è certamente roba facile, e non sarà davvero fare di te un programmatore migliore. Se siete veramente interessati, prendere in prestito alcuni libri da un amico EE!

Un'astrazione da quel è il livello cancello, che i programmatori di solito può Grok dal momento che è tutta una questione di logica.

Ho fatto una risoluzione simile dopo aver letto la raccomandazione di Steve Yegge per conoscere compilatori. Sono stato davvero godendo Nisan e Schocken di The Elements of Computing Systems: costruzione di un computer moderno da principi primi , che è innanzitutto un libro di testo, secondo, un corso semestrale per le matricole o anziani, e il terzo, un sito che fornisce il conferenze e multi-piattaforma di emulazione-software di simulazione: http://www1.idc.ac. Il / TEC / (TECS)

Gli argomenti vanno da NAND (programmazione circuiti logici digitali in HDL), attraverso flip-flop, ALU e registri, assemblatori, parsing e compilatori, sistemi operativi, e interfacce grafiche. Si, lo studente, implementa ognuno di questi temi sul simulatore di hardware o software di emulazione fornite sul sito web. Per me, si tratta di una celebrazione dell'ingegno umano che questa gamma di idee può essere così profondamente coperto in 3--4 mesi dalla undergrads. Uno degli autori / professori ha dato un Google Tech Talk sul tema che vale la pena di verificare se avete un'ora di ricambio di distanza dal loro corso.

Non posso raccomandare una risorsa altrettanto-interessante per la fisica della computazione, ma posso sommariamente dire che i primi due corsi di studenti nucleo EE mia elettrica del dipartimento di ingegneria potrebbero prendere (contemporaneamente se hanno scelto) erano circuiti 1 e semiconduttori 1. il primo trattato di tensione, corrente, induttori, condensatori, amplificatori operazionali, ecc .--- mentre il secondo affrontato meccanica quantistica, cristalli, doping, portatori di carica, ecc, e più direttamente parlato alla fisica di elaborazione digitale e memorizzazione dispositivi. E 'difficile per me immaginare un hands-on ambiente di simulazione come TECS per un tale argomento, però, che lo rende più adatto per accademico di hobbisti studio / professionale?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top