programmiersprachen lernen


nibel

Active Member
Joined
Nov 17, 2005
Messages
520
Hi ich bin dabei Bash zu lernen, als nächstes dann c und python.
Wie sollte man am besten vorgehen beim erlernen von programmiersprachen?
Und welche Buecher koennt ihr empfehlen besonders zu C?
 
nibel said:
Hi ich bin dabei Bash zu lernen, als nächstes dann c und python.
Wie sollte man am besten vorgehen beim erlernen von programmiersprachen?
Und welche Buecher koennt ihr empfehlen besonders zu C?

Ein sehr gutes Buch zu C ist "Programmieren in C" von Brian W. Kernighan und Dennis M. Ritchie. Die Autoren von dem Buch sind übrigens die "Erfinder" von C. Man kann natürlich auch das englische Original "The C Programming Language" nehmen.
 
nibel said:
Hi ich bin dabei Bash zu lernen, als nächstes dann c und python.
Wie sollte man am besten vorgehen beim erlernen von programmiersprachen?
Und welche Buecher koennt ihr empfehlen besonders zu C?
Also bei C empfehle ich echt die C Bibel von Kernighan & Ritchie: http://tinyurl.com/dzztn (hab zwar die englische Version von dem Buch, aber angeblich soll die deutsche auch ganz ok sein). Man sollte allerdings schon ein wenig programmieren koennen, da man hier direkt reingeworfen wird und man sich nicht lange mit Variablendeklarationen, etc. aufhaelt.
Python ist vielleicht als Einstiegssprache gar nicht so schlecht, da man hier durch Einrueckungen die Code-Bloecke definiert, d.h. dass man gleich seinen Quellcode lesbar gestalten muss. Die Sprache ist ausserdem relativ leicht zu erlernen. Einen Buchtip hab ich da leider nicht fuer dich. Die Sprache hab ich durch einige Programmierbeispiele erlernt und auch nur ein paar Wochen lang mal fuer ein kleines Web-Projekt verwendet.
Wenn du gerne was mit objektorientierter Programmierung machen moechtest, dann wuerde ich dir C++ empfehlen (wird ja auch von den GP2x Devkits unterstuetzt). Da gibts das Buch "C++ - Lernen und professionell anwenden" von Peter Prinz und Ulla Kirch-Prinz. Das ist auch gut fuer Anfaenger geeignet und geht mit sehr vielen Programmierbeispielen Schritt fuer Schritt die Programmiersprache durch: http://tinyurl.com/a5p3q.
 
nibel said:
Hi ich bin dabei Bash zu lernen, als nächstes dann c und python.
Wie sollte man am besten vorgehen beim erlernen von programmiersprachen?
Und welche Buecher koennt ihr empfehlen besonders zu C?
Darf man trotzdem versuchen, dich zu Pascal zu bekehren? ^^
 
Was soll ich denn damit? ^^

Was mich gerade besonders interessiert ist die Entwicklung eines python-compiler.
Das wäre mal etwas wirklich geiles.
 
Ich programmiere seit ca. 5 Jahren in Python...

Und ich muss dich enttäuschen, einen (bzw. mehrere) Python Compiler gibt es schon :)

Dabei gibt es Version a) Alles in eine Datei quetschen, aber trotzdem Python Bytecode lassen (z.B. py2exe) oder auch b) Python-->C(++)-->Kompilat... (also richtige "EXE"s bzw. "ELF"s)

Und nun: Das Kompilat ist in den meisten Fällen langsamer oder nur geringfügig schneller als der Python Bytecode :)

Also: Nix kompilieren. Python ist gut so, wie es ist. Und es wird mit jeder Python Version schneller und komfortabler (ahhh decorators, ich liebe sie)

EDIT: Ich bin übrigens von Basic -> Pascal -> C -> C++ -> Java -> Perl (ganz kurz, HÄSSLICH) -> Python einen recht langen Weg gegangen. Erwähnenswert und relevant finde ich heute nur noch C++, Java und Python, jede hat ihren eigenen Zweck. C(++) und Python zu lernen halte ich deswegen für eine sehr gute Idee :)
 
von diesen dingern hab ich schon gehört.
ich meinte aber einen richtigen compiler der nativ python compiliert.
 
nibel said:
Was soll ich denn damit? ^^

Was mich gerade besonders interessiert ist die Entwicklung eines python-compiler.
Das wäre mal etwas wirklich geiles.
Iiiiiiiihhhhhh Compilerbau.... nicht mein Ding aber wers mag...
Wenn das dann so aussieht wie bei den Java Compilern (Java->Native Code), dass die JVM schneller als das erstellte Compilat ist, dann kann mans auch gleich lassen ;-).
Wenn du dich allerdings wirklich fuer Compilerbau interessieren solltest, dann kannst du dir zum Einstieg "Grundlagen und Techniken des Compilerbaus" von Nikolaus Wirth (jaja, der Erfinder von Pascal) anschauen. Da wird ein kleiner Oberon Compiler entwickelt.
Wenn du dann in die Tiefe einsteigen willst kommst du an den "Drachenbuechern" nicht vorbei.
 
Nativer als daraus C und dann executable zu machen, kommst du nicht.

Direkt nach ASM ist unmöglich bzw. viel zu zeitintensiv, als das auch eine große Gruppe das schaffen würde. Dafür hat Python viel zu viel Sprachkonstrukte, die schon in C fast unmöglich abzubilden sind.

z.B.:
Code:
''.join(map(lambda x:chr(random.randint(33,128)), xrange(0, 10)))
ist etwas, was lustig aussieht, öfters gebraucht wird und kaum in einen intermediate language code zu übersetzen ist :)

Ich bezweifele ernsthaft - und ich habe auch schon öfters danach gesucht - das es so etwas je geben kann.

Am nächsten kommt man deinem Ziel noch mit Psyco: http://psyco.sourceforge.net/introduction.html

Aber selbst da klappt dann auf einmal nicht mehr jeder Python Code...

(Eines der schwierigsten Sachen ist übrigens Reflections zu übersetzen - da müsste man in ASM alles nachkodieren und damit alles wieder langsam machen)
 
hmm es soll wirklich unmöglich sein in c einen python compiler zu schreiben!!??
hmm komisches gefühl...
ich meine wenn man einen interpreter realisieren kann dann doch auch einen compiler oder nicht?
 
Unmöglich definiere ich als "Nicht in sinnvoller Zeit mit entsprechend viel Arbeit zu realisieren".

Aber selbst wenn es ginge:

So etwas wie dynamische Typen z.B. gibt es nicht in Assembler. Das heisst man muss sie nachbilden. Was nix bringt, dann ist es wie oben geschrieben, eher langsamer (Code size, Cache hits, Optimized byte Code als Stichwörter).

Und davon abgesehen ist Python sowieso schon sauschnell. Ich erinnere an die offiziellen Benchmarks, wo Python Textaufgaben im unoptimierten Code (!) schneller löst als optimiertes C oder C++ (jaja, geiler Memory Manager) :)
 
naja normalerweise schreibt man heutzutage compiler (würde ich zumindestens machen) in c um ne portablität zu gewähren gcc ist ja auch in c geschriebn, er kann sich selber kompilieren.

Das ist fast wie mit dem Huhn und dem Ei *g*

Naja back to topic: lernen
 
Back
Top