Hirschhornsalz
Anmeldungsdatum: 5. April 2014
Beiträge: 24
|
Hallo, hier mal ein etwas weniger spezifisches Thema: Wenn man eine neue Programmiersprache entwickelt, wie mache ich den Computer klar, was die einzelnen Befehle bedeuten? Werden die mit anderen Programmiersprachen geschrieben? Welche ist dann die erste in der Kette und wie funktioniert das bei der?
Außerdem verstehe ich nicht, warum ich Programme nicht mit dem Texteditor öffnen kann; sind nicht alle Programme mit Satzzeichen geschrieben und müssten somit von Texteditoren gelesen werden können? Mir ist schonklar, dass das nicht so ist, sonst wäre ja alles Open-source, aber warum bzw. wie sind die Quellcodes geschrieben?
Ich hoffe ihr versteht, was ich meine. ☺ LG Hirschhornsalz
|
UrbanFlash
Anmeldungsdatum: 21. Februar 2006
Beiträge: 5549
Wohnort: Wien
|
Bitte lies das selber nach, es zahlt sich kaum aus das nochmal zu schreiben: https://de.wikipedia.org/wiki/Programmiersprache
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7658
|
Werden die mit anderen Programmiersprachen geschrieben?
Zunächst ja, aber sobald du mal ein funktionierendes Programm (Übersetzer) hast, das deine Sprache versteht, kannst du den Übersetzer ggf. auch nochmal neu in deiner eigenen Sprache schreiben. Go (Golang) ist z.B. noch eine recht junge Programmiersprache; deren Compiler ist derzeit noch in C geschrieben, soll aber in Go neu geschrieben werden. (Google mal nach Go Compiler Overhaul).
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6346
Wohnort: Hamburg
|
Werden die mit anderen Programmiersprachen geschrieben?
Ja, wenn man noch nichts anderes hat. Und wenn auch das nicht geht, bleibt nur noch die Befehlseingabe mittels Kodierschalter. Ein Kollege hatte seinerzeit auf einem Osborne 1 ein Basic Programm geschrieben, das dann die Binärcodes für einen Prozessrechner erzeugt hatte, die dann im ersten Anlauf per Kodierschalter eingegeben wurden (dauert Stunden).
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Hirschhornsalz schrieb:
Außerdem verstehe ich nicht, warum ich Programme nicht mit dem Texteditor öffnen kann; sind nicht alle Programme mit Satzzeichen geschrieben und müssten somit von Texteditoren gelesen werden können?
Die meisten werden in lesbarer Sprache geschrieben. Manche werden auch so ausgeliefert (Basic, Python, Javascript, ...), andere werden kompiliert, also in Maschinensprache (C, C++) oder eine Zwischensprache (Java, Scala) übersetzt, die nicht mehr lesbar ist, und evtl. ohne Sourcecode ausgeliefert. Ob mit Open-Source nur gemeint ist, dass der Quellcode einsehbar ist oder eine freie Lizenz, die das Ändern und Weiterverbreiten erlaubt ist noch ein wichtiger Unterschied. Der unmissverständliche Ausdruck Free-and-Open-Source-Software FOSS ist aber unhandlich lang.
|
djcj
Anmeldungsdatum: 28. August 2013
Beiträge: 240
|
Werden die mit anderen Programmiersprachen geschrieben? Welche ist dann die erste in der Kette und wie funktioniert das bei der?
Das Video könnte vielleicht ganz interessant sein für dich:
https://www.youtube.com/watch?v=nslY1s0U9_c Aber Vorsicht, schottischer Akzent! 😀
|
Hirschhornsalz
(Themenstarter)
Anmeldungsdatum: 5. April 2014
Beiträge: 24
|
Danke, ihr habt mir etwas geholfen, aber was ist ein "Kodierschalter"?
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Hirschhornsalz schrieb: ... aber was ist ein "Kodierschalter"?
Sowas hier. Damit wurde früher™ tatsächlich Wort für Wort einzeln der Machinencode eingegeben. Hier siehst Du links so eine Eingabetafel für den Bootcode bei einem Univac-Rechner. Auch noch die PDP11, das "Arbeitspferd der Rechentechnik" zu Beginn meines Studiums, hatte solche Register-Eigabeschalter. LG, track (zu dessen Schulzeit die Rechner tatsächlich noch so aussahen ...) 🤓
|
Hirschhornsalz
(Themenstarter)
Anmeldungsdatum: 5. April 2014
Beiträge: 24
|
Da kann man ja nur froh sein, dass ich das nicht kenne ☺ Danke euch
LG Hirschhornsalz
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6346
Wohnort: Hamburg
|
Da kann man ja nur froh sein, dass ich das nicht kenne
Soo schlimm war das gar nicht, und die Größe des Erfolgserlebnisses steigt ja mit dem Schwierigkeitsgrad 😉
|
Krümelomat
Anmeldungsdatum: 18. Oktober 2010
Beiträge: 1077
|
Ganz einfach, du musst zuerst wissen wie Siliziumchips arbeiten, die haben Schalter die man 1 und 0 schalten kann. Jetzt kommt die Software ins Spiel, die Schaltet diese Schalter ein und aus. Daraus lassen sich dann Daten manipulieren. Schau mal nach Logikgatter. Da gibst du 1 1 0 0 ein und bekommst 0 0 1 0 zurück. Das ist dann maschinennahes Schreiben von Programmen. Aber das ist sehr mühsam, deshalb hat man Programmiersprachen entwickelt die diese Funktionen in Codesystemen ausdrücken. Der Compiler nimmt diesen Code und wandelt ihn wieder in Maschinensprache. Das ist natürlich wenig effizient und der dadurch entstandene Code ist groß und wenig auf die Maschine hin optimiert. Aber es ist ein Kompromiss zwischen Computer und Mensch. Kuck dir Java an, oder neue Spiele, die sind dermaßen aufgebläht dass du nen i7 brauchst. Dagegen kann man in Assemblersprache Dinge schreiben, die man sonst nicht für möglich gehalten hätte.
|
Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Hirschhornsalz schrieb: Da kann man ja nur froh sein, dass ich das nicht kenne ☺
Ich kann nur empfehlen, sich das einmal anzusehen. Es gäbe da zum Beispiel Bausätze für Altair 8800 Replikate ☺ Krümelomat schrieb: Der Compiler nimmt diesen Code und wandelt ihn wieder in Maschinensprache. Das ist natürlich wenig effizient und der dadurch entstandene Code ist groß und wenig auf die Maschine hin optimiert. Aber es ist ein Kompromiss zwischen Computer und Mensch. Kuck dir Java an, oder neue Spiele, die sind dermaßen aufgebläht dass du nen i7 brauchst. Dagegen kann man in Assemblersprache Dinge schreiben, die man sonst nicht für möglich gehalten hätte.
Ich kenne mich weder in C, Java noch in Assembler genug aus um hierüber eine ausreichend fachliche Meinung haben zu können, allerdings bezweilfe ich das bei dir ebenso: Compiler sollten so effizient wie möglich sein und zumindest für den avr-gcc würde ich behaupten, dass das der Fall ist Der „Code“ ist nicht groß. Erstens handelt es sich nicht um Code sondern um ein Kompilat; Zweitens ist das Kompilat nicht wirklich groß. Sieh dir mal an, was gcc so macht und versuch das Ding zu trimmen, da kommt man für ein Hello World auf wenige Bytes runter, da kommt man auch mit Assembler nicht wirklich besser hin. Gab hierzu auch mal einen Thread. Das Kompilat ist selbstverständlich auf die Maschine hin optimiert, sonst könnte man ja gleich einen Interpreter nehmen und auf das Kompilieren verzichten. Beim Raspberry Pi konnte man das in der Vergangenheit übrigens schön beobachten wie viel Optimierungen bringen Dass man bei Spielen einen „i7“ braucht hat auch nur wenig damit zu tun, dass die Spiele aufgebläht sind. Spiele werden nur immer komplexer, darum braucht man logischerweise auch mehr Leistung. Mittlerweile hat man mehrere hundert NPCs die gleichzeitig berechnet werden müssen, ihre KI, ihre Bewegungssteuerung, die Animation (teilweise über IK). Es gibt Logikthreads, Renderthreads, etc. Das ist nichts, was ein älterer Singlecore einfach so bewerkstelligen könnte, da kann man auch noch so versuchen das Ding zu optimieren, es geht einfach nicht
Trotzdem muss man allerdings am letzten Punkt noch anmerken, dass Spiele auf Konsolen aufgrund der einheitlichen Hardware besser optimiert werden können als PC-Spiele.
|
elostio
Anmeldungsdatum: 2. Februar 2006
Beiträge: 424
Wohnort: Guayaquil
|
|
Hirschhornsalz
(Themenstarter)
Anmeldungsdatum: 5. April 2014
Beiträge: 24
|
|