Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

Wie funktioniert eine Progrmmiersprache?

Hallo, Leute! :)

Ich würde gern wissen wie eine Programmiersprache so zu sagen auf unserer Sprache zugeschnitten wird. Lnage Zeit habe ich mit Compilern rumgespielt und einfachere java Anweisungen ausgeführt ohen mich zu fragen wie zum Teufel kommt das, wenn ich z.B.

public static void main (String[] args) {

int zufall = (int)(Math.random()*21);

eingebe der Compiler weißt was ich von ihm will, wie funktioniert die "Kommunikation"?? Ich bin eigentlich CHemiker und nicht wirklich viel bewandert in diesem Berreich aber ich meine herausgelesen haben dass es anfangs so war dass halt in Nullen und Einsen kommuniziert und geschrieben wurde und auch solche wie Grace Hopper viel dazu beigetragen haben dass so zu sagen ein mathematisch-english Wörterbuch zu machen, keine Ahnun gwie man das gemacht hat, es interessiert mich halt ^^

6 Antworten

Bewertung
  • vor 5 Jahren
    Beste Antwort

    Am Ende ist alles Maschinensprache ... mehr oder weniger.

    Man sollte bei der Erklärung, wie ein Compiler funktioniert, nicht gleich bei C++ anfangen. Der simpelste "Compiler" ist ein simpler Assembler. Ein Assembler ist ein Programm, mit dem ein für Menschen besser zu lesender Code (Mnemoniks) in Maschinensprache also dem maschinenlesbaren Binärcode übersetzt wird. Leider ist es schon 46 Jahre her, daß ich direkt in Maschinencode mit peek und poke Befehlen gearbeitet habe. Du mußt dich deshalb mit einer allgemeinen Formulierung zufrieden geben.

    1. Stufe einer jeden Programmiersprache ist der Parser. Das ist ein Programm, daß den Progammtext einliest und ihn mit abgespeichertem Sprachelementen vergleicht. Den Parser kannst Du selber schreiben, Du kannst ihn aber auch mit einem Parsergenerator generieren. Der bekannteste dürfte wohl yacc ( = GNU bison) sein. Schreiben wir mal einen Parser für einen Assembler mit nur einem Befehl.

    char s[100];

    int input();

    while(input(s))

    {

    if (!strcmp( "MOV A,H") printf("Maschinencode von MOV A,H\n");

    else { printf(" syntaxerror\n"); exit(1); }

    }

    return 0;

    Bei höheren Programmiersprachen ist das etwas komplizierteter, weil Du da verschiedene Datentypen hast, die eine unterschiedliche Behandlung bedürfen. Beispiel eine Fließkommamultiplikation muß anderen Kode generieren als eine Integermultiplkation. Hier wird ein Zwischencode erzeugt, der mit einem Lexikalanalizer analysiert wird. Auch den kannst Du selber schreiben, aber auch da gibt es Programme für. Das bekannteste ist lex (GNU = flex).

    Mit dem Lexikalanalizer löst Du Ausdrücke wie z.B. (int)xa = (float)xb * (long)xc auf und gibst den korrekten Assemblercode aus.

  • vor 5 Jahren

    Es gibt verschiedene Programmiersprachen.

    Die einfachste ist die Maschinensprache, mit der der Prozessor arbeitet, alles muss letztendlich in diese übersetzt werden. Dann kam Assembler, Basic, Fortran, usw.

    Dies zu erklären

  • vor 5 Jahren

    An den Nullen und Einsen wird man auf der untersten Ebene auch nicht vorbei kommen. Ein Prozessor ist nun einmal nichts anderes als eine Ansammlung von Transistoren, die nur zwei Schaltzustände - "an" und "aus" - kennen. Darauf bauen auf Maschinenebene sämtliche logischen Operationen, Speicher und Stapelfunktionen auf.

    Auf Prozessorebene werden aber auch schon ganze Befehlssätze zur Vereinfachung und Verbesserung der Geschwindigkeit zusammengefasst.

    "Nahtstelle" auf Betriebssystemebene, teilweise auf Hardwarebene dazwischen ist der Maschinencode, eine Kette aus Hexadezimalzahlen. Allerdings kann man da keine saubere Trennung zwischen Hardwareimplementierung und Software/Betriebssystem ziehen, weil die Prozessoren intern schon mit spezialisierten Befehlssätzen daher kommen.

    Der Wikipediaartikel zur Maschinensprache hilft einem weiter, um das zu verstehen: https://de.wikipedia.org/wiki/Maschinensprache

    Die Grafik im Artikel ist recht übersichtlich: https://de.wikipedia.org/w/index.php?title=Datei:P...

  • Anonym
    vor 5 Jahren

    Da sieht man es mal wieder ... und ich dachte immer, als Chemiker müßte man schlau sein!

  • Wie finden Sie die Antworten? Melden Sie sich an, um über die Antwort abzustimmen.
  • vor 5 Jahren

    sie uebersetzt alles in maschinencode add+compare

  • Anonym
    vor 5 Jahren

    Das weiß Gott allein.

Haben Sie noch Fragen? Jetzt beantworten lassen.