2009-04-02 1 views
0

Ich bin ein Elektronik-Student und ich habe meist in Assembly programmiert. Letzte Nacht habe ich einen erstaunlichen Artikel gesehen, in dem es darum ging, einen Compiler in Ruby zu schreiben. Was der Autor getan hat, war GCC zu verwenden, um zu sehen, wie das C zu Assembly übersetzt. Das hat mir sehr gefallen. Ich konnte endlich sehen, wie das C-Programm in Assembly übersetzt wurde. Meine Frage/Anfrage an die Community lautet hier: Könnten Sie mir Ressourcen zeigen, die den Zusammenhang zwischen diesen beiden besser diskutieren? Sollte ich über Compiler lesen? Sollte ich Systemprogrammierung lernen? Ich weiß nicht, was ich tun soll. Ich möchte wirklich besser programmieren und das besser lernen. Danke für Ihre Hilfe.Brauchen Sie Hilfe Understanding Compiler/HLL-> Assembly

Verwandte:

und andere ...

+0

Dies wurde so oft diskutiert Ich bin versucht, es zu behandeln ist ein dup ... – dmckee

Antwort

5

Es gibt wirklich ein paar Dinge hier los. Das erste, was Sie betrachten sollten, ist so etwas wie ein Compiler-Buch. Es gibt einige alte, wie die berühmte Dragon book, die sehr gut sind. Ich habe gerade einen anderen heute entdeckt, von demselben Typen, der die Art of Assembly Language Programming geschrieben hat, unter . Ich habe nur die Beispielkapitel bis jetzt gelesen, aber es sieht sehr gut aus und scheint auch gerade zu adressieren, was Sie wollen, ohne sofort in die Wunder von LALR (1) Grammatiken und so weiter zu fallen.

"Systems Programmierung" ist mehr, na ja, Programmiersysteme. In einer Systemprogrammierung erfahren Sie, wie Sie verschiedene Systemaufrufe und andere Dinge verwenden, um nützliche Programme zu erstellen. Sie müssen das auch wissen, aber es ist ein anderer Track als "wie es passiert."

Ein Computer-Organisationsbuch, wie das, auf das sich aaronis bezieht, handelt mehr davon, wie das Programm von der Sprache der Assemblersprache zu tatsächlichen Gattern und so weiter gelangt. Es wird auch "Computerarchitektur" genannt, wie der Satz verwendet wurde, als Amdahl, Blaauw und Brooks den Begriff erfanden: Befehlssätze, wie sie implementiert werden und wie man quantitative Entscheidungen bei der Gestaltung der Dinge trifft.

+0

Vielen Dank Sir. Wie man großen Code vol2 schreibt, war genau die Art von Information, die ich suchte.Welche Bücher schlägst du jemandem vor, der in der Versammlung gut ist und einen Wechsel zu HLL anstrebt? – unj2

+0

Es gibt viele Bücher herum. Die C-Programmiersprache ist nicht schlecht, und es ist ein Klassiker. Ich bin begeistert von dem neuen Lernprogramm von den Pragmatischen Programmierern: http://www.pragprog.com/titles/ltp2/learn-to-program-2nd-edition –

0

Wenn ich einen Computer-Organisation Klasse nahm sie durch die niedrigen Niveau Details ging wie Prozessoren gekommen sind zu sein, wie sie Anweisungen verarbeiten und wie die Baugruppe in Maschinencode übersetzt wird. Vielleicht ein bisschen niedriger als das, wonach Sie suchen, aber ich denke, es ist wirklich nett, einen Blick darauf zu werfen, wie diese Art von Übersetzung von einer höheren zu einer niedrigeren Sprache erfolgt. Ich denke, wir haben dieses Buch oder ein ähnliches verwendet: http://www.amazon.com/Computer-Organization-Design-Interface-Architecture/dp/1558606041

+0

Ich habe über die Low-Level-Details gelesen, aber ich kann nicht scheinen, die höheren Ebenen und wie sie verknüpfen. Ich habe diese große Wissenslücke. – unj2