programmieren lernen

comes

Newbie
Registriert
Jan. 2018
Beiträge
5
hallo zusammen ;)ich habe eine frage und zwar ich möchte programmieren lernen und einen eigenen compiler erstellen doch ich weis noch nicht ganz genau wie das alles geht

was brauch ich dazu und was muss ich wissen wäre super wenn mir einer helfen kann

mfg comes
 
Einen Compiler erstellen ist mit das schwierigste, was man machen kann. Da musst du Assembler können und was von Mikroarchitekturen verstehen. Kannst du komplett knicken. Nicht umsonst gibt es dutzende Programmiersprachen und Programmiertools, aber gerade mal 3 große Compilersuiten (GCC, Clang/LLVM, VS)

Erstmal überhaupt Programmieren lernen.

/edit: Wenn du in 10 Jahren oder so Compiler programmieren willst, sollte es eine hardwarenahe Programmiersprache sein. GCC und Clang sind zum Beispiel in C++ geschrieben, der Microsoftcompiler wahrscheinlich auch. C++ wäre also ein guter, direkter, aber auch schwieriger Einstieg. Ein bisschen Frustrationstoleranz solltest du dafür mitbringen. Da siehst du auch direkt, was Compiler können müssen.
 
Zuletzt bearbeitet:
Dein Wunsch ist ja okay, aber unpräziser hättest du dich eigentlich kaum ausdrücken können.

Der einzige Fachbegriff deines Textes ist Compiler. Und an dieser Stelle würde ich dir raten, den Wunsch, einen eigenen Compiler zu schreiben zumindest so weit nach hinten zu stellen, bis du einigermaßen in einer Programmiersprache deiner Wahl programmieren kannst. Für Compilerbau braucht man nämlich vor allem eins: Viel Verständnis für die Theorie!

Ich würde dir also raten: Fang klein an. Lerne eine populäre Programmiersprache, z.B. Java. Steck dir ein kleineres Ziel, z.B. einen Taschenrechner. Und dann, wenn du ein paar grundlegende Konzepte verstanden hast, arbeite dich weiter vor.

Für ein Vorhaben dieser Art ist das Netz voll mit Anleitungen, Tutorials, und es gibt dafür auch super Bücher. Die beschreiben dir auch im Zweifelsfall im einzelnen, wie du deinen PC konfigurieren musst, damit alles läuft, was du programmieren willst. usw.
 
hört sich nach nem schnellschuss an...

falls ernst gemeint fang mit C and und dann richtung Compilersuiten...

plan aber für dein vorhaben 5 jahre ein :D
 
Achja, wie gut sprichst du Englisch? Wenn für dich englische Seiten und Bücher in Frage kommen, kannst du aus einem viel größeren Fundus die Lernmaterialien auswählen.
 
Computer zusammenstellen und Programmieren lernen sind 2 Paar Schuhe. Ersteres ist recht einfach, letzteres nicht sooooo einfach. Das Internet und auch dieses Forum ist voll von Threads und Beiträgen wo Leute nach Hilfe zum Programmieren lernen fragen, vlt. findest du ja was mit der Suchfunktion hier. ;)
Als Anfang kannst du ja selfhtml googlen und dich damit beschäftigen, sollte höchstens ne Woche dauern.

Direkt in dem Forumbereich wo du deinen Thread erstellt hast:

Nützliche Links für Programmier-Anfänger


https://www.computerbase.de/forum/threads/programmieren-lernen-wie-wo-und-selfmade-moeglich.1672804/
https://www.computerbase.de/forum/threads/erlernen-von-neuen-programmiersprachen.1713088/
https://www.computerbase.de/forum/threads/richtig-programmieren-lernen-tipps.1661969/
https://www.computerbase.de/forum/threads/programmierambitionen-ohne-wirkliche-leitfaeden.1645809/
https://www.computerbase.de/forum/threads/programmieren-lernen-wo-soll-ich-anfangen.1564126/
https://www.computerbase.de/forum/threads/programmieren-lernen.466088/


Wenn dir das (Suchen und Einlesen und viel probieren und Mathe...) schon zu viel Aufwand ist dann wird es schwierig.

Edit: Siehe auch über mir, jaaaaaa, Englisch sollte man auch können. ^^
 
Fortatus schrieb:
Einen Compiler erstellen ist mit das schwierigste, was man machen kann. Da musst du Assembler können und was von Mikroarchitekturen verstehen. Kannst du komplett knicken. Nicht umsonst gibt es dutzende Programmiersprachen und Programmiertools, aber gerade mal 3 große Compilersuiten (GCC, Clang/LLVM, VS)

Erstmal überhaupt Programmieren lernen.

/edit: Wenn du in 10 Jahren oder so Compiler programmieren willst, sollte es eine hardwarenahe Programmiersprache sein. GCC und Clang sind zum Beispiel in C++ geschrieben, der Microsoftcompiler wahrscheinlich auch. C++ wäre also ein guter, direkter, aber auch schwieriger Einstieg. Ein bisschen Frustrationstoleranz solltest du dafür mitbringen. Da siehst du auch direkt, was Compiler können müssen.




danke c++ kenne ich schon ein bisschen; mein ziel ist alles zu erstellen was ich brauch ich möchte lernen wie das alles funktioniert selber bauen selber schreiben einfach alles selber machen ich habe eine idee und möchte sie gerne umsetzen aber dafür muss ich alles lernen das gute ist ich bin lernfähig und möchte es auch und das es nicht einfach ist weis ich jeder anfang ist schwer
Ergänzung ()

danke dir
:p
 
Zumindest eine Angst kann man dir als Anfänger schon nehmen:

Es ist am Anfang gar nicht so wichtig, mit welcher Sprache du anfängst zu programmieren. Sofern es nichts zu exotisches ist (und von denen hast du wahrscheinlich eh noch nie was gehört), besitzen eigentlich alle Konzepte, die man auch bei anderen Sprachen wiederfindet. Von daher ist der Einstieg wichtiger als sich Gedanken zu machen, welches die richtige Sprache ist. Wenn du einmal eine Sprache kannst, ist es nicht schwer für dich, weitere zu lernen.

Man kann sich natürlich den Einstieg etwas erleichtern, indem man eine Sprache wählt, die viele Konzepte vereint und nicht so sehr vom System abhängig ist, auf dem sie läuft. Daher mein Tipp Java, aber das ist kein muss.

edit: Soso, lernfähig. Dann weißt du sicher als angehender Programmierer, wie wichtig das richtige Setzen von Sonderzeichen wie Punkten und Kommata ist, nicht wahr? ;)
 
Zuletzt bearbeitet:
ich weis des dauert alles aber des wird schon gib nicht auf
und werde mir alle tipps zu herzen nehmen
Ergänzung ()

hahahah:p
keine sorge das weis ich schon nur finde ich es in einem forum nicht wichtig ein punkt und komma zu setzen:freak:
danke dir für deine antwort:D
 
Zuletzt bearbeitet:
Hmmm, ich hab Computer erstellen (zusammenstellen) und nicht Compiler erstellen gelesen. :rolleyes:
Bei dem Infokrams den ich lernen musste vor fast ner Dekade haben wir seeehr lange Unterricht gehabt über die ganze Computertechnik (einfache Modelle für simple Speicherlogik, einfache Prozessoren, Elektronik, vereinfacht auch wie Betriebssysteme funktionieren etc. etc. und wie der ganze Kram halt funktioniert). Das selbst zu machen bzw. zu lernen kann Wochen dauern, parallel dazu haben wir Zahlensysteme (Hex, Binär), Boolsche Operatoren/Logik und so weiter gehabt und dazu kam dann auch noch Java, später etwas Assembler (Maschinenprogrammierzeugs) :freak:
Hab alles vergessen weil nie benutzt °_°
 
danke dir für dein wissen ;)war hilfreich
Ergänzung ()

ohje des hört sich ja echt kompliziert an aber hab ja noch paar jahre zeit des zu lernen muss ja net schnell gehen danke dir
 
comes schrieb:
und zwar ich möchte programmieren lernen und einen eigenen compiler erstellen doch ich weis noch nicht ganz genau wie das alles geht

Eine passende Analogie dazu wäre wohl:
Ich möchte gerne lernen wie man mauert und nen zweiten Hoover-Staudamm hochziehen doch ich weiß noch nicht ganz genau wie das alles geht.
Haben andere ja schon angedeutet, aber das passende Beispiel hat noch gefehlt :D

Fang erstmal klein an. Mit C# oder Java um die Grundlagen zu lernen, Für diese Sprachen gibt es sehr gute IDEs mit Codevervollständigung, guter verständlicher Dokumentation und extrem vielen Tutorials. Systemnah programmieren mit C++, C und Assembler kann man dann immer noch dranhängen.

Wenn die Grundlagen sitzen könntest du dir auch mal den Quellcode von einem quelloffenen Compiler anschauen und sehen ob du erlerntes wiedererkennst. Wäre ja schonmal ein Anfang.
 
Najaaaaaaaaaaaaaaaaaaa.....


Kommt immer darauf an, was man an dieser Stelle mit "Compiler" meint. Soo schwierig ist Compilerbau nicht, wenn man einen Compiler erstmal als Applikation versteht, welche "eine Eingabe" in "eine Ausgabe" übersetzt. Rein formal, wenn man das so möchte, spielt man schon selber Compiler, indem man hergeht und Deutsch in Englisch oder Französisch übersetzt.

Wenn man also wirklich für sowas Interesse hat, kann man auch im Compilerbau ganz klein anfangen.

Aber das heißt natürlich nicht, daß nicht jeder einzelne Einwand, der bereits gemacht wurde, irgendwie "falsch" ist - ganz im Gegenteil.

- Für Compilerbau, wenn man das verfolgen will, muß man zwingend theoretisches Verständnis mitbringen. Außerdem, und hier wird es interessant: man muß mit Sprachen genausoviel anfangen können wie mit Mathematik; das sind Dinge, die sich üblicherweise eher ausschließen.

Grammatik ist alles. Wer Grammatik nicht leiden kann, wird mit Programmieren nicht weit kommen und am Compilerbau scheitern.


Wenn ein Studium vorgesehen ist: dort kann man ggf die Fachrichtung Compilerbau wählen. Ja, das ist ein komplettes Fach, was man als solches studieren kann, genauso wie Künstliche Intelligenz oder Mustererkennung oder Softwareentwicklung oder dergleichen.


Anfangen würde ich an der Stelle mit Parsern. Das kann man auch als ganz blutiger Anfänger. Ein Parser ist einfach nur eine Software, welche in der Lage ist, eine eingegebene Zeichenfolge -- das "Programm" bzw dessen "Quellcode" einzulesen und in seine Elemente auseinanderzunehmen. So ziemlich jeder Compiler verwendet einen, denn diese Elemente müssen dann weiterverarbeitet werden und dazu muß man die erstmal haben.


Das geht aber zB auch mit HTML oder PDF. Beides sind Sprachen im weiteren Sinne, die von einem Interpreter (Browser bzw dem Reader) gelesen und verstanden werden müssen. Einem simplen Parser könnte man also ein HTML-Tag füttern (mit Attributen und Werten und einem Taginhalt) und diesen Parser so basteln, daß er hinten nur sagt, was er als was gefunden hat.

Wenn man dann noch nicht die Lust verloren hat, kann man sich einen PDF-Reader basteln. Die Spezifikation ist offen --- gibt's bei ISO für 100 Euro zu lizensieren, Adobe stellt die aber bei sich frei für jeden zur Verfügung (die 100 bezahlt man nur, wenn man das offizielle ISO-Logo braucht; privat tut das niemand).

PDF muß man ebenfalls nicht vollständig implementieren. Rein von der Sache her braucht man nur die Seite, ein paar grundlegende Eigenschaften dazu und Text, den man auf dieser Seite setzt. (Mehr geht natürlich immer,muß aber nicht.) Wenn ich mich recht entsinne müßte irgendwo im Netz eine Kopie von aspdf herumfliegen --- das ist eine Implementierung von PDF in JavaScript. Die ist ebenfalls frei verfügbar, und da das JavaScript ist, kann man da reingucken was der da gemacht hat, ggf mit der Spezifikation daneben im zweiten Fenster offen. Also in etwa so,wie man ggf auch Fremdsprachen lernen könnte (Herr der Ringe links, Lord of the Rings rechts, dann versteht man das schon irgendwann irgendwie).


Wie sich sicherlich erkennen läßt: Compilerbau ist nicht einfach und wie bereits mehrfach angemerkt, Compilersuiten mit allen möglichen Optimierungen gehören zur Königsdisziplin der Informationstechnik. Da geht es dann nämlich nicht mehr hauptsächlich darum,den Quellcode zu lesen, sondern es geht darum, den bescheuerten Programmierer vor sich selber zu beschützen, indem man als Compiler diese albernen Entschuldigungen von sogenanntem Quellcode einliest und dann -- automatisch! --- zu einem ECHTEN Programm übersetzt, was den Namen auch verdient, allen Mühen des Programmierers zum Trotz.

Um sowas dann bauen zu können muß man besser sein als alle anderen.
 
Zurück
Oben